How it works
Requirements on your team's server, code on each developer's computer
SuDuo has two parts: a server your team deploys, and a client on each developer's computer. The server keeps the requirements and discussions everyone shares. Code, Codex and sessions stay on each computer. What crosses between them is requirements, discussions, and what you choose to send.
What lives on each end
The team is on the left, your computer on the right. The client talks to the team server over HTTP(S); Codex talks to your model service directly.
Team server
Deployed by your team · Linux + Docker
- Projects, requirements and comments
- Attachments and confirmed versions
- Rooms, messages and room files
- Accounts and activity history
- Answers from agents shared into rooms
- From the team server to your computer: When you start work: the requirement card and SuDuo's tools
- From your computer to the team server: After you confirm: comments and confirmed versions
- From your computer to the team server: While shared: an agent's answer and what it did
Each developer's computer
SuDuo client · macOS / Windows
- SuDuo in your browser
- Local service, on 127.0.0.1 only
- Codex CLI, with your own sign-in or API key
- Repositories, sessions and notes
Codex calls it directly
Your model serviceOpenAI or a compatible provider
What crosses over
There are two ways across: starting work on a requirement, and sharing your Codex in a room.
Starting work on a requirement
- Click Start session on a requirement. The first time, choose the local folder where the project's code lives; the project's sessions run there from then on.
- SuDuo's local service starts a Codex session in that folder and opens it with a short requirement card: number, title, status, description and a list of materials, plus your conclusions from the last session and what has changed since, if there are any.
- The session also gets SuDuo's tools. When Codex needs more, it looks up comments, attachments and confirmed versions itself, or saves a confirmed version's files into the project's
.suduo/folder. - Posting a comment or publishing a confirmed version stops and waits for you to confirm it in SuDuo. Once sent, it can't be taken back.
Sharing an agent in a room
- You share your Codex into a room, one room at a time, for as long as you choose. You can turn it off at any time.
- Anyone in the room can @ it with a question. It runs on your computer, in the project's folder, in Codex's read-only sandbox: it doesn't change files, can look things up online, and doesn't ask you to approve each step. The MCP servers and connectors you've set up in Codex are all turned off here.
- Its answer, together with what it did (the files it read, the commands it ran and their output), is posted in the room's thread, where anyone on your team can read it. It can include code.
- Read-only doesn't mean project-only: it can read any file your account can. Share it in rooms you trust and turn it off when you're done. Your private sessions never mix in.
Where your data lives
Everything on the team server is visible to everyone with an account on it. What's on your computer stays there unless you send it, with two exceptions. One is the context Codex sends to your model service (see the last row and the note below). The other is what an agent you share into a room posts back there: its answers and what it did, including any files people in the room had it read.
| Data | Where it lives | Notes |
|---|---|---|
| Projects, requirements and comments | Team server | Stored in PostgreSQL on the server. |
| Attachments and confirmed-version files | Team server | Stored in the server's file volumes and backed up together with the database. |
| Room messages and files | Team server | Including images and video. |
| Shared agents' answers and what they did | Team server | Only when you share your agent into a room. Can include code excerpts and command output. |
| Accounts and activity history | Team server | Who changed what, and when. |
| Code repositories | Your computer | Codex reads and writes in the folder you chose for the project. SuDuo doesn't copy or upload it. |
| Codex sessions, approvals and file changes | Your computer | Kept in SuDuo's local data directory and in Codex's own directory. |
| Requirement notes and downloaded materials | Your computer | In the project's .suduo/ folder, which is kept out of git. To share your notes with the team, ask Codex to turn them into a comment. |
| Codex configuration and model credentials | Your computer | In ~/.codex, shared with the Codex CLI you use in your own terminal. A model service you set in SuDuo is saved there too; SuDuo keeps no copy. |
| Which local folder belongs to which project | Your computer | Each person chooses their own. |
| The context for each turn | Model service | Sent by Codex directly: your prompt, the requirement card, and the code excerpts and command output it has read. |
What goes to your model service
Codex runs on your computer; the model doesn't. On every turn, Codex sends the context it needs to the model service you configured: your prompt, the requirement card, and the code excerpts and command output it has read. So “code on your machine” means your repositories and sessions are kept on your computer — not that the model never sees your code.
Codex sends these requests itself. They don't pass through your team's server or any SuDuo service — SuDuo has no central service. The model service can be OpenAI, one you host yourself, or another compatible provider; how it stores and uses that data is between you and that provider.
How this differs from handing your code to a cloud AI platform
Another approach is to connect your repository to a hosted AI coding platform, which reads the code and runs commands in its own cloud environment. Both approaches have trade-offs. These are the main differences.
| Aspect | SuDuo | Hosted AI coding platforms (typical setup) |
|---|---|---|
| Where the code lives | On each developer's computer, in the folder they choose | Copied into the platform's cloud environment |
| Where the AI works | The Codex CLI reads files and runs commands on your computer | On the platform's servers |
| Model requests | Codex sends them straight to the model service you configured | Sent by the platform, usually to models it chooses |
| Accounts and team data | On a server your team deploys; there are no central SuDuo accounts | In the platform's accounts and on its servers |
| Who runs it | You: deploy, upgrade and back up the server — one script does most of it | The platform; there is nothing to deploy |
Questions
Does my code go to the team server?
Not automatically. Codex runs on your computer, in your folder. The server only receives what you post there yourself: requirements, comments, messages, the files you attach, and the confirmed versions you approve for publishing, which can include files from the project folder. The exception is a shared agent: its answers and what it did are posted in the room and can quote code.
Can SuDuo’s authors or the team server see my model credentials or requests?
No. Codex keeps its own configuration in ~/.codex and talks to your model service directly. If you set a model service in SuDuo’s settings, SuDuo on your computer only passes the address and API key to Codex and keeps no copy. Your personal sessions are recorded only on your computer. SuDuo sends nothing to its authors and never sends your credentials to the team server.
Can an agent shared into a room change my code?
No. It runs in Codex’s read-only sandbox, doesn’t change files, and has no tools that write anywhere else, such as posting comments or publishing confirmed versions. The MCP servers and connectors you’ve set up are turned off too. (When it needs a larger room file, attachment or confirmed version, SuDuo on your computer saves it under .suduo/ in the project, a folder git ignores.) It can still look things up online and read any file your account can, so share it only in rooms you trust.
Who can see what’s on the team server?
Everyone with an account on it. There is no administrator or invitation system yet, and anyone who can reach the server can register, so keep it on a private network or VPN, or behind a reverse proxy with access control.
Do I have to use OpenAI?
No. Enter the address and API key of a compatible service under Settings → Model service in SuDuo, and Codex uses it instead. This changes the configuration in ~/.codex, so the Codex CLI you use in your own terminal changes too, and it can replace an existing ChatGPT sign-in. You can also leave this setting alone and keep using Codex’s ChatGPT sign-in.