🐙 Istota

A cybernetic emissary that lives in your Nextcloud instance.

What it this?

Istota is an AI agent that runs on your own infrastructure (except for inference, for now). It joins your Nextcloud instance as a regular user with its own account, collaborates on files, manages your calendars, and does pretty much anything Claude Code can do (and more) through Nextcloud Talk.

Your data stays on your stack, you don’t rely on a third-party messenger, and you have full control over what your agent can and can’t access via Nextcloud’s built-in sharing and permissions.

Quick start

Docker (standalone evaluation — spins up its own Nextcloud):

git clone https://github.com/muinyc/istota.git && cd istota/docker
cp .env.example .env # set CLAUDE_CODE_OAUTH_TOKEN + passwords
docker compose up -d

Bare metal (connects to your existing Nextcloud):

curl -fsSL https://raw.githubusercontent.com/muinyc/istota/main/deploy/install.sh -o install.sh
sudo bash install.sh

How it works

Istota’s primary interaction surface is Nextcloud Talk (basically an open-source Slack that’s fully-integrated with Nextcloud). You can chat with it directly via DM or invite it to a room — Talk has solid iOS and Android mobile apps for when you’re on the move. Email works too.

Istota handles tasks asynchronously; a foreground/background queue means a long-running job doesn’t block your next message. Each runs in a bubblewrap sandbox with restricted filesystem access, credential isolation, and network-level domain allowlisting.

Skills extend what it can do. Istota ships with web browsing (via a Dockerized Playwright browser), calendar management, RSS feeds, accounting with invoicing, bookmark management, voice transcription, GPS location tracking, Garmin fitness data, and more. Rather than a marketplace of community-built plugins of highly variable quality and security posture, the goal is a well-maintained standard library: curated, tested, known attack surface.

A development skill wraps Claude Code into a full git workflow — clone repos, create branches, write and test code, open pull requests — all from Nextcloud Talk. No messing about with SSH sessions on your phone. Message it from anywhere, get a PR link back. Both GitLab and GitHub work.

Multi-user support is baked in. Each user gets their own queue, file access, and memory — with shared rooms for collaboration. Istota uses the Cowboy Bebop trust model for multi-user environments: you don’t have to trust everyone absolutely, but if someone is going to live aboard your ship, you at least want to know they won’t randomly fiddle with the airlock.

For a full picture, see [ARCHITECTURE.md] and [DEVLOG.md].

Constitution

Istota ships with an Emissaries-based constitution — a document that defines how your agent reasons about your data, how it handles the boundary between private and public action, and what it owes to people beyond its principal.

It’s a complete framework for what it means to act as someone’s emissary rather than just executing instructions (or living the YOLO life) — grounded in humanist principles with a sprinkle of Iain M. Banks’ Culture.

You can override it.

Why not OpenClaw (and friends)?

OpenClaw is great: give it access, let it go, and hope it doesn’t start harassing open-source maintainers (or drain your bank accounts and SCP itself to a no-extradition jurisdiction while you sleep).

Istota is for when you want a bit more structure: granular permissions, secure-ish defaults, and an agent that’s a good citizen in your existing Nextcloud ecosystem. It sees exactly what you share with it, nothing more. Your existing permissions model is the trust boundary.

There are also some major architectural differences. Read [ARCHITECTURE.md] for details.

Technical details
  • Runtime: Python, Claude Code
  • Deployment: Docker Compose (standalone) or bare metal with install script / Ansible
  • Messaging: Nextcloud Talk — direct messages and multi-user rooms
  • Sandboxing: bubblewrap — isolated namespace per invocation, restricted filesystem mounts, credential isolation, network-level domain allowlisting via CONNECT proxy
  • Task queue: configurable per-user foreground/background workers — chat tasks never block background jobs
  • Memory: hybrid BM25 + semantic search (sqlite-vec + MiniLM) across conversation history and memory files
  • Skills: web browsing, CalDAV calendar, RSS/Atom/Tumblr/Are.na feeds, beancount accounting with invoicing, Karakeep bookmarks, voice transcription (Whisper), OCR (Tesseract), GPS location tracking (Overland), Garmin Connect fitness data, git/GitLab/GitHub development, and more.
  • Storage: SQLite + Nextcloud filesystem — no external databases
  • Auth: Nextcloud user accounts
Current status

Early release. The core system is running in production — the original instance (hi Zorg!) has been up since late January 2026. It’s used daily for its own development, calendar management, notes, feeds, bookmarks, personal accounting, and everything you’d normally use Claude Code for.

[Source on GitHub →]

 

Istota is built by Stefan Kubicki & Zorg.
♻️ Powered by 100% renewable energy.

Image
Istota