Next Steps
Add repos, schedule digests, write code in worktrees.
Coda is most useful when it shows up on its own. Posting digests, triaging issues, flagging stale PRs. The Coda repo has canonical setup docs for each piece below.
Add more repos
Edit repos.yaml to add the repos you want Coda to know about:
1repos:2 - url: https://github.com/your-org/repo-a3 branch: main4 - url: https://github.com/your-org/repo-b5 branch: developTwo requirements that bite people:
- The repo must be in your GitHub token's "Only select repositories" list. Without that, Coda can't clone it.
- The token needs Contents R/W, Pull requests R/W, Issues R/W, Metadata R. Anything missing fails silently.
Full GitHub token setup (with the Fine-grained PAT walkthrough): GITHUB_ACCESS.md.
After editing repos.yaml, restart to clone the new repos:
1docker compose up -dTurn on scheduled tasks
Coda ships three scheduled tasks. Two are gated on env vars:
| Task | Schedule | What it does | How to enable |
|---|---|---|---|
| Repo Sync | Every 5 minutes | Pulls latest changes from every configured repo | On by default |
| Daily Digest | Each morning | Posts what merged yesterday, what PRs are waiting, what issues opened, what's gone stale | Set DIGEST_CHANNEL |
| Issue Triage | Daily | Reviews open issues against the actual codebase, labels them, flags AI-generated slop, posts a summary | Set TRIAGE_CHANNEL |
For maintainers of popular open-source repos, the volume of low-quality, AI-generated issues has exploded: vague titles, generic descriptions, "improve error handling" with zero specifics. The Triager checks each issue against the actual code and tags the slop, so a maintainer can scan the digest in 10 seconds and know what's worth attention.
Channel IDs come from Slack: right-click the channel → View details → copy the ID at the bottom (looks like C0123456789).
1# .env2DIGEST_CHANNEL=C01234567893TRIAGE_CHANNEL=C0987654321Restart, and the schedules pick up. You can also trigger triage on-demand with POST /triage-issues.
How the code-writing flow stays out of main
When you ask Coda to write code, the Coder works in a git worktree off main:
1@Coda add rate limiting to /api/v1/users using the same pattern as /orders2@Coda fix the NoResultFound bug in payment_service3@Coda write integration tests for the export endpointThe flow:
- Coder creates a
coda/<branch-name>worktree off main. - Reads the relevant code, plans the change, writes it.
- Runs whatever validation it has access to.
- Pushes the branch and opens a PR.
- A human reviews and merges. Coda never merges.
Your main branch is never touched. Worktrees clean up on restart.
Build your own scheduled tasks
Coda's tasks live in tasks/. Each is a function registered with the AgentOS scheduler in app/main.py. The same pattern works for anything you want Coda to do on a cadence:
- Auto PR review when new PRs are opened
- Stale branch alerts for branches with no commits in N days
- Convention drift detection comparing recent merges against your style guide
- Weekly summaries beyond the daily digest
The Scheduling page has the API reference for the runtime side.
Going deeper
| To learn | See |
|---|---|
| The team architecture | coda/team.py and coda/agents/ |
| Run evals | python -m evals.run --category security |
| Use Parallel for premium web research | Set PARALLEL_API_KEY from parallel.ai |
| Run local + production in parallel (separate Slack apps) | Deploy to Railway |
| Comparable templates | Scout, Dash |
| Building a fully custom AgentOS app | AgentOS Runtime |