An AI agent you drop into any folder. It attaches to that folder, takes instructions via Telegram, and can do anything inside — but nothing outside.
cd /path/to/your/project
npx Frostist/Symbiote
Symbiote locks its sandbox to the current directory at startup. Every file operation and shell command is validated against that path.
On first run a setup wizard asks:
- Which AI provider — Claude, Codex (OpenAI), or Gemini. Detects installed CLIs automatically.
- CLI or API key mode — use an installed CLI tool or enter an API key directly.
- Telegram Bot Token — create a bot at @BotFather in Telegram.
Config is saved globally to ~/.symbiote/config.json. Run setup again by deleting that file.
- Open Telegram, search for @BotFather
- Send
/newbotand follow the prompts - Copy the token and paste it when Symbiote asks
- After Symbiote starts, open your bot in Telegram and send
/start - The first
/startmessage authorises that chat — only that chat can control Symbiote
| Command | Description |
|---|---|
/start |
Activate Symbiote (first use) or show status |
/sandbox |
Show the current sandbox path |
/provider |
Show the active provider and mode |
| (any text) | Send an instruction to the agent |
- File ops — all paths are resolved and checked to be inside the sandbox root before execution
- Shell commands — every command runs with
cwdset to the sandbox root - A small denylist blocks obviously destructive commands (
sudo,rm -rf /, etc.) - The sandbox path is set once at startup and never changes
| Provider | CLI mode | API key mode |
|---|---|---|
| Claude (Anthropic) | claude -p "…" |
claude-3-5-sonnet-20241022 |
| Codex (OpenAI) | codex --full-auto "…" |
gpt-4o |
| Gemini (Google) | gemini -p "…" |
gemini-1.5-pro |
CLI mode note: In CLI mode the underlying tool runs in the sandbox directory but has its own permissions model. API mode gives Symbiote full control over the tool loop with hard sandbox enforcement.
npm install
npm run dev # run with ts-node (no build step)
npm run build # compile to dist/
npm start # run compiled output~/.symbiote/config.json
{
"telegramToken": "123456:ABC...",
"authorizedChatId": 987654321,
"provider": "claude",
"useCLI": false,
"apiKey": "sk-ant-..."
}Symbiote is built on the shoulders of these open-source packages:
| Package | Description |
|---|---|
| grammy | Telegram Bot framework for Node.js |
| @anthropic-ai/sdk | Official Anthropic SDK for Claude API access |
| openai | Official OpenAI SDK for GPT / Codex API access |
| @google/generative-ai | Official Google SDK for Gemini API access |
| prompts | Lightweight, interactive CLI prompt library |
| ts-node | TypeScript execution engine for Node.js |
| typescript | Typed superset of JavaScript |