Ode is a agent tool that bridges your coding agents (OpenCode, Claude Code, Codex and much more) to your favorite chat apps (Slack, Discord, and Lark). Perfect for personal or team developers working on the go.
- 🏖️ Coding from anywhere, just chat and get response in slack or discord.
- 🖇️ Map coding sessions 1 - 1 to chat threads, and use worktree to get isolated, parallel coding is so easy.
- 👬 Anyone in the channel can join coding without any extra setup, pay one account for all team members.
- 📝 Message live message updates, you don't wait for response without any information, you can monitor from real-time text updates.
- 📎 Image and file input, attach screenshots, documents, or source files in Slack, Discord, or Lark and Ode forwards structured content to the coding agent.
- 🐙 Per user git config, who start the thread becomes corresponding git commit author. (Run @bot /setting)
Ode prefers each agent's structured integration surface: Codex App Server, Claude Agent SDK streaming input, OpenCode SDK, and ACP for Kimi, Kilo, and Goose. Other agents continue to use their supported streaming CLI format. Agent credentials remain owned by the local CLI; Ode does not store API keys.
- OpenClaw is greate, but Ode utilize thread based messaging to organize things better, making it easy to port sessions in coding agents directly to chat apps. Just work on one thing in one thread.
- Ode provide live message updates, you can monitor from real-time text updates for more confident.
- Channel based settings lets you configure multiple work directories easily in one machine and one slack workspace.
- Work in parallel, multiple threads can work together and isolated by worktree, multiple channels can also work together, just send messages.
- Team focused, just allow people to join channel to give them permissions to work together.
- Ode supports multiple chat tools including Slack, Discord, and Lark.
- Configured OpenCode / Claude Code / Codex / Kimi Code... at least 1 coding cli.
- Choose one chatting app.
One-line install (macOS/Linux):
curl -fsSL https://raw.githubusercontent.com/odefun/ode/main/scripts/install.sh | bashode
# ODE_WEB_HOST=0.0.0.0 ode if you want to expose setting pageSettings UI can be accessible via http://127.0.0.1:9293 or use /setting command in slack like @bot /setting.
| Agent | Logo | Link |
|---|---|---|
| Claude Code | docs.anthropic.com/claude-code | |
| CodeBuddy | codebuddy.ai/docs/cli | |
| Codex | github.com/openai/codex | |
| Crush | github.com/charmbracelet/crush | |
| Goose CLI | block.github.io/goose | |
| Kimi Code | moonshotai.github.io/kimi-cli | |
| Kilo Code | kilo.ai/docs/code-with-ai/platforms/cli | |
| OpenCode | opencode.ai | |
| OpenHands | docs.openhands.dev | |
| Pi | github.com/earendil-works/pi | |
| Qwen Code | github.com/QwenLM/qwen-code |
| Chat App | Logo | Link |
|---|---|---|
| Slack | slack.com | |
| Discord | discord.com | |
| 飞书(CN) | www.larksuite.com |
- Invite the bot to a channel.
- Run
@bot /setting, select channel setting, choose your coding cli (opencode also can choose model) and working directory. - @ your bot with the prompt you want, optionally with image or file attachments.
- The bot will process your message with the coding agent.
Ode can expose the same policy-controlled browser and macOS desktop tools to Codex, Claude Code, and OpenCode. Browser automation uses a local, pinned agent-browser installation. Desktop capture and control run inside the signed Ode.app; there is no cloud browser or separately authorized desktop provider.
- Run
ode computer setup, or choose Set up Ode under Settings → General → Computer Gateway. Ode installs the browser driver and registersOde.appon macOS. - Allow Ode under Screen & System Audio Recording and Accessibility when macOS asks. These are the only two required macOS permissions; Full Disk Access is not requested. Run
ode computer permissions --requestto show the prompts again, or useode computer open-settings <screen-recording|accessibility>. - In the workspace channel settings, choose browser
ObserveorInteract, desktopObserveorControl, then configure allowed origins/apps and an approval policy. The CLI equivalent starts withode computer enable --channel <channelId>(safe default: browser observe-only). - Verify installation, permissions, screen capture, and Accessibility probing with
ode computer doctororode computer self-test; inspect the active policy withode computer status.
The gateway listens only on loopback, authenticates every provider call with a per-context token, rejects origins/apps outside each channel's allowlist, invalidates stale observations before actions, serializes desktop control, and sends approval requests back to the originating IM thread. Audit records are written to ~/.config/ode/computer-audit.jsonl without action values.
Release builds require a Developer ID Application identity and Apple notarization. Configure these GitHub Actions secrets before publishing a release:
MACOS_CERTIFICATE_P12: base64-encoded PKCS#12 identity.MACOS_CERTIFICATE_PASSWORD: PKCS#12 export password.MACOS_CODESIGN_IDENTITY: the full Developer ID Application identity name.APPLE_NOTARIZATION_ID: Apple Account email used for notarization.APPLE_NOTARIZATION_PASSWORD: app-specific password fornotarytool, not the Apple Account password.APPLE_TEAM_ID: Apple Developer Team ID.
The release workflow signs every nested executable, submits the app archive to Apple's notary service, staples the accepted ticket to Ode.app, validates it with stapler and Gatekeeper, and only then creates the published zip.
- Each slack thread uses a dedicated git worktree at
<repoRoot>/.worktree/<threadId> - If you don't want to use worktree, can run
@bot /settingand select general setting, choose default.
MIT
