Skip to main content
Coda gives engineering teams a Slack-based companion for work that spans source code, pull requests, and issues. Engineers spend much of their time tracing code, reviewing changes, diagnosing failures, and deciding what to tackle next. Coda brings that work into the Slack threads where the team is already coordinating. Coda uses an Agno team to route each request to a specialist, carries stored conventions into later runs with the Learning Machine, and runs scheduled repo syncs and digests through AgentOS. Start it against one repository, then ask where authentication is implemented or request a review of an open PR. The code is public at agno-agi/coda.

Run locally

The Coda README walks through this in more detail.
OPENAI_API_KEY comes from platform.openai.com. For GITHUB_ACCESS_TOKEN, create a fine-grained Personal Access Token with Contents (read and write), Pull requests (read and write), Issues (read and write), and Metadata (read). The full walkthrough is in docs/GITHUB_ACCESS.md. PARALLEL_API_KEY (from parallel.ai) adds the optional Researcher agent. Tell Coda which repos to learn by editing repos.yaml:
Use the Agno repository as a test target if you need one. Then start Coda (Docker needs to be running):
Confirm it’s up at localhost:8000/docs.

Connect to the AgentOS UI

  1. Open os.agno.com and sign in.
  2. Click Connect OSLocal and enter http://localhost:8000.
This gives you a web UI to chat with Coda directly, plus sessions, traces, metrics, memory, and evaluations.

How it works

Coda coordinates four core specialists and an optional Researcher: Coda’s instructions direct the Coder to use git worktrees on coda/* branches. Its git tool refuses to push any other branch, and a human merges the resulting PR. Worktree use for local edits remains an agent instruction, so review each diff and PR before merging. Coda runs in your infrastructure and connects to services you configure. These can include your model provider, GitHub, Slack, and Parallel for optional web research. Review those services’ data-handling settings before connecting private repositories.

Scheduled tasks

Coda also shows up on its own. Two background tasks register at startup: Repo sync always runs. The daily digest only registers when both DIGEST_CHANNEL and SLACK_TOKEN are set in .env. Set DIGEST_CHANNEL to the Slack channel ID the summary should post to (right-click a channel in Slack, then View details to copy the ID).

Self-learning

Each specialist uses Agno’s Learning Machine to store reusable conventions and add them to later context. These learnings can cover service-layer patterns, error handling, and naming rules. Review stored learnings as you would other generated project knowledge.

Deploy to Railway

You’ll need the Railway CLI installed and railway login completed.
railway_up.sh provisions a pgvector database, creates the coda service with the variables from your .env, deploys, and creates a public domain. The domain can take about 5 minutes; check progress with railway logs --service coda. See railway.json to adjust CPU, memory, and replica settings. Production runs with RBAC on (RUNTIME_ENV=prd is the default) and rejects every request until you give it a verification key:
  1. Open os.agno.com, click Connect OSLive, and enter your Railway domain.
  2. Go to Settings and generate a key pair.
  3. Add the public key to .env as JWT_VERIFICATION_KEY (paste the full PEM block).
  4. Push it and redeploy:
railway_env.sh handles multiline values, so the PEM key syncs correctly.

Connect to Slack

With Coda running, follow the Slack setup guide to create your Slack app, then add the credentials to .env:
Restart to pick up the credentials:
There are two ways to talk to Coda: Each thread is its own conversation. Follow-ups in the same thread don’t need to @mention Coda again. If Coda is deployed, point your Slack app’s Event Subscriptions Request URL at https://<your-domain>/slack/events and wait for Slack to verify it.

Example prompts

Try these once your repos are configured:

Run evals

Five eval categories cover the team’s behavior: Evals call the real team, so set up a virtual environment and start the database first:

Source

Coda is open source at agno-agi/coda. The in-repo docs cover GitHub access and Slack setup in detail.