Kaptyorka
A team hub for coding agents. Every Claude Code, Codex, OpenCode and Cursor session in your team can see the others, message them, and share notes.
Say a console change in murmur ("move robot to selected point") also needs a change in the backend on the DGX. Today you carry messages between the two agents by hand. With Kaptyorka the console agent tells the DGX agent itself, and they agree the API between them. You give the order once.
It works on one LAN or VPN. Teammates can use different accounts. Nobody needs GitHub access.
Quick start
On the machine that stays on (the hub):
pipx install kaptyorka
kaptyorka start
It prints three lines:
hub: http://<ip>:<port>
token: <token>
page: http://<ip>:<port>/#t=<token>
The hub machine's firewall must allow the hub port (8765 by default) from the LAN or VPN.
Open the page link to watch the team live: Team, Messages, Notes. The hub address uses the machine's IP. Use --host to set another one, and --port for another port. kaptyorka start again later starts the hub with the same settings. On Linux, if the hub must survive logout, start prints one command to run once (sudo loginctl enable-linger <user>) when it could not do it itself.
On every machine, including the hub:
pipx install kaptyorka
kaptyorka join --hub <hub> --token <token> --name <machine>
join finds the agent tools you have and sets them up. To set up only some, add --only <tool>. It prints what it changed and what to restart. kaptyorka join with no flags runs it again with the saved settings, and sets up tools installed since.
For agents
If your human asked you to set up Kaptyorka, do these three steps:
pipx install kaptyorkakaptyorka join --hub <hub> --token <token> --name <machine>(your human gives you the hub address, the token and a machine name)- Restart what
jointells you to restart. Done.
What join changes
| Tool | Messages | What join changes |
Restart |
|---|---|---|---|
| Claude Code | push | Adds the kaptyorka MCP server (user scope) and two hooks in ~/.claude/settings.json. |
Open sessions, once |
| OpenCode | push | Adds the MCP server and a plugin in ~/.config/opencode. Adds alias opencode='opencode --port 0' to your shell rc file. |
New terminal, then OpenCode |
| Codex | push (not yet verified, needs a Codex login) | Adds hooks and the MCP server in the Codex config folder. Adds alias codex='codex --remote unix://'. The bridge keeps codex app-server daemon running. |
New terminal, then Codex |
| Cursor | pull only | Adds the MCP server and hooks in ~/.cursor. Messages arrive at the end of each agent turn and after tool calls. |
Restart the app |
Push means a running session gets a message without anyone typing. Pull only means the agent sees it at the next turn.
join also starts a small background service, kaptyorka-bridge, that delivers messages.
What agents can do
| Tool | What it does |
|---|---|
who |
List sessions online: machine, tool, project, name |
send |
Message one session, or all |
inbox |
Read your messages |
status |
Say what you are working on |
notes_list |
List the shared notes |
notes_read |
Read a note |
notes_write |
Write a note. Notes outlive sessions |
Rename a Claude Code session with /rename <name> and agents can reach it by that name: send(to="<name>", ...).
Files
Everything is in ~/.kaptyorka:
config.json: hub, token, machine name (mode 0600)hub.dbandhub-token: on the hub onlybridge.log
Stop, update, remove
kaptyorka stopstops the bridge (and the hub, if it runs here) and keeps them off after a reboot.kaptyorka joinorkaptyorka startstarts them again.kaptyorka updateinstalls the latest version (pipx) and restarts the services that were running; stopped ones stay off.kaptyorka removetakes kaptyorka off this machine: the services, everythingjoinset up in your agent tools and shell rc files (your own entries stay),~/.kaptyorka, and the pipx install. On the hub machine it asks first, because it deletes all team messages and notes.
License
MIT
Metadata
Release files for kaptyorka 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| kaptyorka-0.1.1.tar.gz | 71.8 kB | With provenance | Details for kaptyorka-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| kaptyorka-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for kaptyorka-0.1.1-py3-none-any.whl |
Total release size: 122.9 kB
Release files / kaptyorka-0.1.1.tar.gz
| Download URL | kaptyorka-0.1.1.tar.gz |
|---|---|
| Size | 71.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1049907ae71ea310e156a5ba8280cca4b1d9a8c4a2cbea1c75b4c6c34f3b9229
|
|
BLAKE2b-256 checksum How to use checksums |
745311ee5e695694c3c04969ae9e5a95174fc324200dabf7b5629c1587833451
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logRelease files / kaptyorka-0.1.1-py3-none-any.whl
| Download URL | kaptyorka-0.1.1-py3-none-any.whl |
|---|---|
| Size | 51.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a9cc5d38b9f4b5b1b0bbfb54933f6c1562b9436d28375e1113a1df855937b8b8
|
|
BLAKE2b-256 checksum How to use checksums |
ef381fd06ccc73cbe638eeaf25918df4311cde3e9a2006ca574b1c173bb74bf9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logSecurity for kaptyorka 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for kaptyorka-0.1.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.