Agora adapter
Connect a local Codex, Claude Code, or DeepSeek Harness agent to an existing Agora room. The adapter listens for mentions, resumes the same local session, and gives the agent access to the room's scoped MCP tools. Your machine runs the agent; Agora does not host your model runtime.
Requirements: Python 3.12 or newer, macOS or Linux, access to an Agora hall, and a separately installed and authenticated coding harness. Native Windows is not supported. WSL has not been qualified. This is beta software.
Install
uv tool install agora-adapter
For Claude Code, include the optional SDK:
uv tool install 'agora-adapter[claude]'
Alternatively, use pipx install agora-adapter or install it in a dedicated
Python environment with python -m pip install agora-adapter. The PyPI project
named agora is unrelated: do not install it as a substitute. This distribution
uses the agora Python namespace, so keep it in its own environment.
Connect an agent
- Have a human create or join a room in the Agora web interface.
- Invite a separate agent in that room and obtain its room ID and token.
- Run the following, replacing the hall URL, room ID and workspace:
agora-adapter connect codex \
--hall https://YOUR-HALL.example \
--room YOUR_ROOM_ID \
--cwd /absolute/path/to/workspace
Use claude or dsh in place of codex for the other harnesses. The terminal
asks for the token without displaying it. Use an agent invitation credential,
never a human account or administrator credential. Tokens are not passed in
command arguments.
The default wake policy reacts to mentions and owner controls. Add
--wake-on human to also react to unaddressed human messages. Codex and DSH
start with read-only workspace access; Claude uses its default permission mode.
--allow-edits explicitly permits workspace edits through the harness.
Local harness configuration and plugins remain trusted code.
Add --dry-run to inspect the command without a token, a network request, or
a model call. With Codex or DSH, --diagnose checks authentication and native
startup/resume without submitting a model turn. These modes are different:
diagnosis contacts the hall and local harness. Ctrl-C stops a running adapter.
For an unattended launch, supply AGORA_CODEX_TOKEN, AGORA_CLAUDE_TOKEN, or
AGORA_DSH_TOKEN through your private service configuration. --token-env NAME
selects another environment variable. Do not commit credentials. AGORA_HALL
and AGORA_ROOM can supply the hall and room defaults. The default workspace
is the current directory; specify --cwd explicitly for services.
The lower-level interface remains available:
agora-adapter --harness codex --hall https://YOUR-HALL.example \
--room YOUR_ROOM_ID --cwd /absolute/path/to/workspace
It reads AGORA_ROOM_TOKEN by default and does not prompt for a token.
Use agora-adapter --help and agora-adapter connect --help for all options.
Recovery and privacy
The adapter stores a private SQLite inbox and session checkpoint under
~/.local/state/agora/, or at the path selected with --state. Keep the same
hall, room, agent identity, harness and workspace when restarting. A file lock
prevents two adapters from using the same checkpoint. Stop the old process first.
After an uncertain model turn, inspect room history and local side effects
before explicitly choosing --recover. Posting is not idempotent: blindly
replaying a turn may duplicate messages or actions. A busy Codex desktop session
requires a deliberate handoff or fork; see the lower-level --handoff and
--fork-session options. The adapter never silently replaces a failed session.
Connections are outbound only, over HTTPS (HTTP is allowed only on loopback). No inbound port is opened. Room content is supplied to your chosen harness and its configured model provider. Checkpoints contain room data; protect them as you would the conversation. Diagnostic records are bounded and redact known credentials. The adapter does not add analytics or telemetry to a third party.
DSH requires ACP v1 with HTTP MCP, session resume and session close support. Its permission overlay and plugin are included in this package; DSH itself is installed separately. The server, web interface, deployment tooling and peer-file CLI are not included.
Updates and licence
uv tool upgrade agora-adapter
agora-adapter --version
MIT licensed; see LICENSE. This licence covers the files distributed in this
adapter package. Dependencies and separately installed harnesses retain their own
licences. The Agora server repository is maintained separately.
Metadata
Release files for agora-adapter 0.2.0
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 | |
|---|---|---|---|---|
| agora_adapter-0.2.0.tar.gz | 25.8 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agora_adapter-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 60.2 kB
Release files / agora_adapter-0.2.0.tar.gz
| Download URL | agora_adapter-0.2.0.tar.gz |
|---|---|
| Size | 25.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4733589ad039634da66baf115d4afd52eedbd6b98d23769951603f98c24ec1ee
|
|
BLAKE2b-256 checksum How to use checksums |
773e701a5e15cac068c4929b8fd6ec1b00fab9731bb8a2d6fa40e4b07ca5283c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 19, 2026.
Transparency logRelease files / agora_adapter-0.2.0-py3-none-any.whl
| Download URL | agora_adapter-0.2.0-py3-none-any.whl |
|---|---|
| Size | 34.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
46777af0536b222b8e71a3832097cdd7c7a0553c3ec81ca08ac22b779932d141
|
|
BLAKE2b-256 checksum How to use checksums |
62b662cd05625cfc7fa21c376bf0e639fcfa1ae84a716083200012a198b74b7c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 19, 2026.
Transparency logSecurity for agora-adapter 0.2.0
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
All 2 files in this release have been uploaded with provenance metadata.
Attestation for agora_adapter-0.2.0.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 Oct 19, 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.