Moxi
Moxi is a harness for running many AI coding-agent sessions as one system. Popular agent CLIs such as Claude Code and Codex add little structure around a session. Moxi adds some, and it makes opinionated choices to do it: agents have names and identities, sessions message each other, and a clock tracks when a session's prompt cache goes cold. These choices won't suit everyone.
Moxi is built as modules that plug together. A module installs with the modules it requires and nothing more; the rest are optional, and a feature that needs a missing module is off and quiet.
Modules
| module | what it does | requires | optional | repo |
|---|---|---|---|---|
moxi |
The core: names, paths, one config file per module, module discovery, the module contract check, and the moxi command |
nothing (standard library only) | moxihq/moxi | |
| sessions | Where a harness keeps a session's record, and how its lines read | moxi |
moxihq/sessions | |
| turns | The one interface to a harness's session: a turn, mail, /clear and /exit in, session events out. A library with no command of its own |
moxi |
codex: the Codex host |
moxihq/turns |
| cache | The prompt cache clock: when a session's cache goes cold, with a watcher and a status line segment | moxi, sessions |
moxihq/cache | |
| comms | Messages between agent sessions on one machine, delivered into the recipient's session at the end of its current turn | moxi, turns |
cache: hold a send while the recipient's cache is cold; codex: Codex sessions |
moxihq/comms |
The moxi command
Every module runs as moxi <module> <verb>, for example moxi comms send. The core's own
commands:
moxi moduleslists the modules this environment holds, their state and their extras.moxi install <module>installs a module with the modules it requires, runs its setup, and offers each optional extra with a line saying what it enables.--with,--without,--alland--noneanswer ahead.moxi shortcut <module>puts a bare<module>command on PATH. It is off by default and refused when the name is already taken;--removetakes it off.moxi config <module>shows a module's settings and its config file.moxi checkchecks a module repo against the module contract.
Install
Linux, Python 3.11 or later, and uv.
uv tool install moxi
moxi install comms
A plain uv tool install moxi-comms also works and puts moxi on PATH, but runs no
setup; moxi install turns then installs turns' Claude Code plugin.
Before the modules are on PyPI
Install the core from git, then give moxi install one --from for each Moxi
distribution the module needs that the environment lacks, in dependency order: moxi,
moxi-sessions, moxi-turns, moxi-cache, moxi-comms. One left out is looked for on
PyPI and the install fails. For comms:
uv tool install git+https://github.com/moxihq/moxi
moxi install comms --none \
--from 'moxi-turns @ git+https://github.com/moxihq/turns' \
--from 'moxi-comms @ git+https://github.com/moxihq/comms'
comms with its cache extra needs cache and sessions too:
uv tool install git+https://github.com/moxihq/moxi
moxi install comms --with cache \
--from 'moxi-sessions @ git+https://github.com/moxihq/sessions' \
--from 'moxi-turns @ git+https://github.com/moxihq/turns' \
--from 'moxi-cache @ git+https://github.com/moxihq/cache' \
--from 'moxi-comms @ git+https://github.com/moxihq/comms'
Troubleshooting
moxi is gone after removing a module. Every Moxi distribution provides the moxi
command, so removing one from an environment can take moxi with it while other modules
remain. Reinstall the tool (its name is in uv tool list):
uv tool install <tool> --reinstall-package <tool>
In a plain virtual environment, reinstalling any Moxi module brings moxi back.
A shortcut fails with moxi: not found. Its environment was removed. Delete the
shortcut file, or reinstall.
License
MIT. See LICENSE.
Metadata
Release files for moxi 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 | |
|---|---|---|---|---|
| moxi-0.1.1.tar.gz | 73.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| moxi-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 123.0 kB
Release files / moxi-0.1.1.tar.gz
| Download URL | moxi-0.1.1.tar.gz |
|---|---|
| Size | 73.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8e7f0db7e6c2a3ce5e9f6f814203101fe0cbe78688fa58c9ca24fcfce63399a4
|
|
BLAKE2b-256 checksum How to use checksums |
615e80df534dd0265587c07ad7a3e7e36d7a19142cc037a9cfe93e622fa25881
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / moxi-0.1.1-py3-none-any.whl
| Download URL | moxi-0.1.1-py3-none-any.whl |
|---|---|
| Size | 49.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0b37307c2553bc3993ed301aa5d2aaefeed0ecdf8f378b8b0298acc6a3e0a570
|
|
BLAKE2b-256 checksum How to use checksums |
5b4b09007dc7a571b9ed870a2bbe7186ada056eaf3406823610c11d6fd727ef4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for moxi 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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A 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.