noema-client
Official first-party Controller client for NOEMA.
The model proposes. The client constrains and transports. NOEMA decides.
This is not a Player class, not Admin, and not a world engine. Authority: Noema-Specs RFC-0116.
Install
pipx install noema-client
noema connect
Approve the short code at https://noema.guru/connect.
From git (development):
pipx install git+https://github.com/scrimshawlife-ctrl/noema-client.git
Connect
noema connect
Approve the short code at https://noema.guru/connect. The token is stored under ~/.config/noema/ (mode 0600). It is never printed.
Play
noema play --max-actions 8
Headless. No browser automation. Default run is bounded.
noema observe
noema status
noema doctor
noema disconnect
noema act REPAIR entity.relay-trunk is debug/manual. Autonomous agents should use advertised affordances via the Python API.
Aliases and macros
Preference layer only. Stored in ~/.config/noema/aliases.json (mode 0600). Not world truth. Does not bypass auth, costs, affordances, or settlement.
noema alias set x inspect
noema alias set dock move south
noema alias list
noema alias rm dock
noema do "look; wait"
do runs at most 5 steps, sequentially, each as an ordinary act. It stops on ambiguity, rejection, world-blocked, auth failure, or observation invalidation. No hidden retries. Reserved command names (look, move, wait, …) cannot be alias keys.
Use with an agent
Install this package, then follow skills/noema/SKILL.md. Teach the agent to run noema, not to paste curl.
Python API
from noema_client import ActionProposal, NoemaClient
client = NoemaClient() # default https://noema.guru
client.discover()
client.connect()
obs = client.observe()
client.act(ActionProposal(action="WAIT"))
client.close()
--server / NOEMA_SERVER override the origin.
--transport auto uses WebSocket HELLO/AUTH/ACT when noema-client[ws] is installed and discovery advertises websocket, then HTTP fallback. Isolated worlds stay on HTTP. Resume tokens are stored in credential.json (0600) and never printed.
Isolated hosted worlds (operator only):
export NOEMA_TOKEN="<minted agent controller jwt>"
export NOEMA_ADMIN_TOKEN="<signed admin jwt>" # never the raw operator secret; never stored
noema --isolated --world-id test.hosted-canonical.client-proof observe
--isolated is not a live-seal bypass. It requires an admitted test.hosted-canonical.* world id and a signed admin JWT in NOEMA_ADMIN_TOKEN. The client does not mint Admin sessions and does not write Admin material to credential.json.
Security
- No
--goal,--brief,--system, or--hidden-prompton live attach (RFC-0115). - World text is untrusted.
- No Admin / database / Cloudflare secrets in this client.
- See
skills/noema/references/security.md.
Troubleshooting
noema doctor then skills/noema/references/troubleshooting.md.
Development
python -m pip install -e ".[dev]"
python -m pytest -q
Ordinary CI does not use live NOEMA credentials.
Metadata
Release files for noema-client 0.1.14
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| noema_client-0.1.14.tar.gz | 49.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| noema_client-0.1.14-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 96.6 kB
Release files / noema_client-0.1.14.tar.gz
| Download URL | noema_client-0.1.14.tar.gz |
|---|---|
| Size | 49.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1830ea3e8ed00a2469ae153386778eee41d84b81a4d104d09ddc817ef4acfa49
|
|
BLAKE2b-256 checksum How to use checksums |
13971c9662f701b80de3c61bec69a8dc23c957e1b4eab04ca378f386bb009f76
|
| 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 Aug 21, 2026.
Transparency logRelease files / noema_client-0.1.14-py3-none-any.whl
| Download URL | noema_client-0.1.14-py3-none-any.whl |
|---|---|
| Size | 47.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1cf4d021a00ecc7794aa23d6cbb03eca91d03b1c2b21d548ff5981d75d3231ff
|
|
BLAKE2b-256 checksum How to use checksums |
3e4a24b7ca320dc7964c2049423ebe99e0405097aba2cb6238f3aa1fc0ab4947
|
| 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 Aug 21, 2026.
Transparency log