I built CodeInk because I was using too many coding-agent apps. My PC felt slow, and after a few projects it became hard to remember which conversation, file, or change lived where. I wanted one place to see the work without giving up the agents I already use.
CodeInk is a free, open-source desktop workspace for Codex, Claude Code, OpenCode, Pi, and compatible Agent Client Protocol (ACP) agents. You install and sign in to those agents separately. CodeInk connects to their existing runtimes; it does not bundle them or ask for their credentials.
What it brings together
- Projects and sessions: keep work grouped by repository and return to earlier conversations.
- A view of the work: follow streaming responses, tool activity, file edits, and approval requests in one interface.
- Choice of agent: use the agent that fits the task, including custom ACP agents, without moving to a different workspace each time.
- Local development tools: browse files, use terminals, and review changes beside the session that produced them.
The desktop shell is Electron, the interface is Solid, and much of the code is TypeScript and Bun. CodeInk is an independent fork of OpenCode. The repository preserves the upstream MIT notice and provenance; the current combined CodeInk distribution is GPL-3.0-or-later.
The hardest part of a multi-agent workspace is keeping it responsive while several sessions are active. Recent work has reduced redundant workspace writes and kept different sessions able to progress concurrently. I am still testing real-world workloads, so I would value reports with the number of active agents, platform, and steps to reproduce any lag.
Try it and help shape it
Windows and Linux downloads are available now. The signed macOS build is still waiting for Apple's notarization, so I am not calling the macOS download ready yet. You can follow that release status on GitHub.
If you use more than one coding agent, what is the most frustrating part of keeping your projects and sessions organized? I would love specific feedback, bug reports, and contributions.
Top comments (1)
What never survives is the reasoning. The diff ends up in git, the conversation that produced it stays in whichever app you happened to open that day, and six weeks later only one of those is still findable. Keeping them side by side would be worth it for that alone.