colibri/docs/guide/install/requirements.md
Sam & Claude ca087846ec
Some checks are pending
CI / rust (pull_request) Waiting to run
CI / markdown (pull_request) Waiting to run
CI / port (pull_request) Waiting to run
CI / agent-jail-pkgs (pull_request) Waiting to run
docs(sl): add glossary of abbreviations + link from all pages
- New page: docs/guide/sl/reference/okrajsave.md (15 abbreviations
  explained in plain Slovenian — LLM, JSON, JSONL, ACL, PF, NAT,
  ZFS, API, HTTPS, TCP, SHA, BCP, ISO, UI, VPS)
- Linked from reference index
- First occurrence of each abbreviation in every Slovenian page
  now links to the glossary
- Fix broken ./install/ link (English + Slovenian)
- requirements title: 'Zahteve' → 'Osnovne zahteve'
- prettier-clean
2026-06-26 10:29:23 +02:00

2.8 KiB

title description
Requirements Host, runtime, and toolchain requirements for Clawdie.

What you need on the host before installing Clawdie. The ISO installer provisions most of this automatically; existing-host installs should verify these requirements before running just install.

Host

  • OS: FreeBSD 15.x (jails are the only supported runtime).
  • Privileges: root or a user with sudo and ZFS access.
  • ZFS: required for Bastille jails. Snapshots are taken at install milestones if zroot/bastille exists; skipped silently otherwise.
  • Network: outbound HTTPS for package install, LLM provider, and Telegram. PF egress NAT is configured by the installer.

Toolchain

  • Rust via rustup, installed under /opt/clawdie/rustup. Required for native dependencies (SWC, tree-sitter). The ISO installs this; existing-host installs run it from Install orchestrator.
  • Node.js + tsx for the install scripts and runtime.
  • Bastille for jail management.

Runtime philosophy

Clawdie is a single Node.js process that orchestrates jailed agents. The design commitments that shape what you need:

  • Security through OS-level isolation. Agents run inside FreeBSD jails. Bash access is safe because it executes inside the jail, not on the host. Filesystem access is limited to explicitly mounted paths.
  • Small enough to read. No microservices, no message queues, no abstraction layers. One process, a handful of source files.
  • AI-native operations. The codebase assumes you have an AI collaborator. Operator-facing tools (dashboard, monitoring) are thin; the assistant fills in by answering questions about logs, state, and configuration directly.
  • Customization = code changes. Trigger word and a few core settings live in .env. Anything else: edit the code. The codebase is small enough that this is safe.

Integration surfaces

  • Telegram via the Bot API (grammy). The primary I/O channel.
  • PostgreSQL for operations, memory, and built-in knowledge databases. The default is host runtime (DB_RUNTIME=host); set DB_RUNTIME=jail to provision a dedicated db jail instead.
  • LLM provider of your choice. OpenRouter is the recommended bootstrap path; switch post-install to direct provider keys (zAI, Anthropic, OpenAI, Gemini), or local Ollama by editing .env. See Provider Fallback for the cap-detection and fallback behavior.

Skills extension model

Skills are how operators add capabilities without forking core. Common skill shapes:

  • Communication channels (/add-slack, /add-discord, etc.) to extend beyond Telegram.
  • Browser automation via agent-browser running inside a jail.
  • Scheduled tasks registered against the per-group context.

Skills install into data/skills/ and are loaded at startup.