# Takopi documentation
> Telegram bridge for coding agents (Codex, Claude Code, OpenCode, Pi).
Takopi lets you run an engine CLI in a local repo while controlling it from Telegram: send a task, stream updates, and continue safely (reply-to-continue, topics, or sessions).
## Workflows
- :lucide-message-circle:{ .lg } **Solo chat workflow**
---
For a single developer in a private chat.
- [Conversation modes](tutorials/conversation-modes.md)
- [First run](tutorials/first-run.md)
- :lucide-users:{ .lg } **Team topics workflow**
---
For teams using forum topics and per-topic defaults.
- [Topics](how-to/topics.md)
- [Projects and branches](tutorials/projects-and-branches.md)
## Choose your path
- :lucide-sparkles:{ .lg } **I’m new / I want to get it running**
---
Start with [Tutorials](tutorials/index.md).
- [Install & onboard](tutorials/install-and-onboard.md)
- [Conversation modes](tutorials/conversation-modes.md)
- [First run](tutorials/first-run.md)
- :lucide-compass:{ .lg } **I know what I want to do**
---
Use [How-to guides](how-to/index.md).
- [Projects](how-to/projects.md) and [Worktrees](how-to/worktrees.md)
- [Topics](how-to/topics.md) and [Route by chat](how-to/route-by-chat.md)
- [File transfer](how-to/file-transfer.md) and [Voice notes](how-to/voice-notes.md)
- :lucide-book:{ .lg } **I need exact knobs, defaults, and contracts**
---
Go straight to [Reference](reference/index.md).
- [Commands & directives](reference/commands-and-directives.md)
- [Configuration](reference/config.md)
- [Specification](reference/specification.md) (normative behavior)
- :lucide-lightbulb:{ .lg } **I'm trying to understand the design**
---
Read [Explanation](explanation/index.md).
- [Architecture](explanation/architecture.md)
- [Routing & sessions](explanation/routing-and-sessions.md)
- [Plugin system](explanation/plugin-system.md)
## Quick start
If you just want to see it work end-to-end:
```bash
# Install
uv tool install -U takopi
# Configure Telegram + defaults
takopi --onboard
# Run in a repo
cd /path/to/your/repo
takopi
```
Then open Telegram and send a task to your bot.
## Core concepts
* **Engine**: the CLI that actually does the work (e.g. `codex`, `claude`, `opencode`, `pi`).
* **Project**: a named alias for a repo path (so you can run from anywhere).
* **Worktree / branch selection**: pick where work should happen (`@branch`).
* **Continuation**: how Takopi safely “continues” a run:
* reply-to-continue (always available)
* forum topics (thread-bound continuation)
* chat sessions (auto-resume)
* **Contract**: the stable rules (resume lines, event ordering, rendering expectations) in the
[Specification](reference/specification.md) and runner contract tests.
## For plugin authors
Start here:
* [Plugin API](reference/plugin-api.md) — **stable** `takopi.api` surface for plugins
* [Write a plugin](how-to/write-a-plugin.md)
* [Add a runner](how-to/add-a-runner.md)
If you’re contributing to core:
* [Dev setup](how-to/dev-setup.md)
* [Module map](explanation/module-map.md)
## For LLM agents
In the docs, start here:
* [Reference: For agents](reference/agents/index.md)
* [Repo map](reference/agents/repo-map.md)
* [Invariants](reference/agents/invariants.md)
## Where to look when something feels “off”
* “Why didn’t it route to the right repo/branch?” → [Context resolution](reference/context-resolution.md)
* “Why didn’t it continue where I left off?” → [Commands & directives](reference/commands-and-directives.md) and [Specification](reference/specification.md)
* “Why did Telegram messages behave weirdly?” → [Telegram transport](reference/transports/telegram.md)
* “Why is it built this way?” → [Architecture](explanation/architecture.md)
## Legacy portals
These pages remain as curated pointers to preserve old links:
- [User guide](user-guide.md)
- [Plugins](plugins.md)
- [Developing](developing.md)