🤖 Citio
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**Your own AI engineering teammate, self-hosted, living in Slack.**
@mention it or DM it and ask for real engineering work (investigate a bug, dig through CloudWatch logs, fix code, open a PR) and Citio runs **Claude Code** or **OpenAI Codex** inside your own infrastructure to do it. Slack is the interface, a controlled MCP tool layer is the safety boundary, and every credential stays in your own infrastructure.
**No Team or Enterprise plan required.** Citio runs on an individual **Claude Max/Pro** or **ChatGPT Go/Plus/Pro (Codex)** subscription, the agent you already pay for, now working from Slack.
**Quickstart** · **How it works** · **Compare** · **Configuration** · **Customize** · **Architecture** · **Contributing** · **Security**
*A Slack message becomes an investigated, tested pull request, without leaving the thread.*
---
✨ Why Citio
Most teams can already chat with an LLM. The harder problem is letting a team ask for **real engineering work** from Slack without handing a raw shell and a pile of credentials directly to the model.
Citio closes that gap:
- 💬 **Slack is the user interface**: DM the bot or @mention it in a channel.
- 🧠 **Claude Code or Codex is the execution engine**: the provider CLI does the reasoning and planning.
- 🛡️ **Citio is the control plane**: it owns orchestration, session handling, repo setup, AWS/GitHub access, and a controlled MCP tool layer so the agent never touches raw credentials.
- 🏠 **Everything runs in your infra**: your container, your cloud account, your keys.
The result is something that can investigate bugs, inspect logs, edit code, and open pull requests, without a human sitting in the middle of every request.
> **Where it runs.** Citio is a self-hosted **container**. This first version ships a native **one-command AWS Fargate** deploy (on **Fargate Spot** by default, ~$5–11/month, or citio pause to $0 when idle). Running on other hosts (a **cheap VPS, Fly.io / Railway, or your own homelab**) and a **pay-per-use serverless** mode are on the roadmap.
🆚 Citio vs. hosted Slack agents
Anthropic's Claude Tag (June 2026) popularized exactly this idea (@mention an AI teammate in Slack and it does the work in-thread), but it's an Anthropic-hosted service gated to **Claude Team and Enterprise** plans, Claude-only. Citio takes the self-hosted, bring-your-own-subscription path:
| | **Citio** | **Claude Tag** |
| ------------------ | -------------------------------------------------- | ------------------------------------ |
| **Hosting** | Your AWS account, your infra | Anthropic-hosted SaaS |
| **Plan required** | Individual **Claude Max/Pro** *or* **ChatGPT Go/Plus/Pro** | **Claude Team or Enterprise** |
| **Providers** | Claude Code **or** OpenAI Codex | Claude only |
| **Credentials** | Stay with you, behind an MCP allowlist | Managed by the vendor |
| **Best for** | Solo devs & small teams who self-host | Orgs already on Team/Enterprise |
If you already pay for a Claude or ChatGPT subscription, Citio puts that same agent to work from Slack, no per-seat enterprise upgrade, no handing your code and credentials to someone else's cloud.
🧩 Features
- 🤝 **Bring your own agent**: Claude Code or OpenAI Codex, your subscription or API key.
- 🧰 **Controlled MCP tools**: investigate_codebase, read_file, write_file, create_branch, create_pr, run_command (allowlisted), check_ci_status, query_logs, recall_context, and more.
- 🔐 **Credential boundary**: the agent calls MCP tools; secrets live with Citio, not the model. Command execution is allowlisted and shell-metacharacter-rejected.
- 🧵 **Slack-native**: DMs and channel mentions, streamed progress, redacted output.
- 💾 **Persistent workspace & memory**: optional AWS EFS keeps repos, sessions, and provider auth across redeploys.
- 🪄 **One-command installer**: interactive setup wires up Slack, GitHub, provider auth, and deploys to ECS.
🏗️ How it works
Runtime shape:
1. A Slack request is normalized by the **Slack adapter**.
2. **AgentRunner** serializes work and manages provider sessions (one active task per container).
3. It spawns the **Claude Code / Codex CLI** as the agent, wired to Citio's **MCP server** via --mcp-config.