ensue-cli
CLI for Ensue Memory - a distributed memory network for AI agents built on MCP, enabling persistent, shared context across conversations and applications.
Installation
pip install ensue-cli
Usage
Set your authentication token:
export ENSUE_TOKEN=your-token
List available commands:
ensue --help
Every memory-server tool is also available as a command of its own name, loaded
dynamically from the server (ensue create_memory --help).
Reading and writing memory: ensue mem
Six verbs cover everyday use, by people and by agents:
ensue mem get <key>... # print a record's value (raw, pipeable)
ensue mem ls <prefix> # keys under a prefix, newest first
ensue mem search "<question>" # semantic search, best match first
ensue mem put <key> [file|-] # create or replace one record
ensue mem new <prefix> [file|-] # write under a fresh, time-ordered key
ensue mem rm <key>... --yes # delete records
ensue mem put LOOP-acme-meta/measure measure.json
KEY=$(ensue mem new LOOP-acme-runs/ run.json)
ensue mem ls LOOP-acme-runs/ --limit 20
ensue mem get LOOP-acme-best | jq .headline
echo '{"text": "baseline measured"}' | ensue mem new LOOP-acme-conversation/agent/
- Values come from a file, from stdin (
-, or piped), or from--value. A.jsonfile must parse, and empty values are refused. - Prefixes are literal:
_and%in a key are not wildcards. putandnewindex the value for search unless you pass--no-embed, and derive the record's one-line description from itsdescription,titleortextfield (or first line) unless you pass-d.- Every verb takes
--json.ensue mem <verb> --helphas the details.
Running an autoresearch agent: ensue agent
ensue agent is the protocol an autoresearch agent follows inside one campaign
(ENSUE_PREFIX, ENSUE_REPO_DIR). Every rule is enforced in code, and every
refusal says why and what to do instead:
ensue agent status # phase, measure, best, editable files, messages
ensue agent steer # read the person's new messages
ensue agent files | check [--fix] # what may be edited; current changes, allowed or locked
ensue agent measure measure.json # propose a measure (runs the baseline itself)
ensue agent idea idea.json # record an idea before trying it
ensue agent run --idea KEY -m "..." # commit, score, keep or revert, record the run
ensue agent note "..." -e RUN_KEY # record a lesson, citing runs
ensue agent say "..." | doing "..." # message the person; one-line status
- Only files the person lists in
agent/editablemay change (none by default). The measure'seval_filesare always locked.runrestores locked files, records the run as failed, and names them. - Scores are measured by the tool (the agreed command and regex), never reported by the agent. Eval side effects are discarded after each scoring.
measure,ideaandrunrefuse while the person has unread messages,runwaits for an accepted measure, and Stop exits every working verb with code 3.
Configuration
ENSUE_TOKEN(required): Your Ensue API tokenENSUE_URL(optional): API endpoint (defaults to https://api.ensue-network.ai/)ENSUE_PREFIX(optional): every keyensue memreads or writes must start with thisENSUE_WRITABLE(optional): comma-separated patterns, relative toENSUE_PREFIX, thatensue memwrites must match, e.g.runs/*,meta/measure. Use both to fence an agent into its own part of memory. This is a guard rail; the key's server-side grants are the security boundary.
Metadata
Release files for ensue-cli 0.2.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 |
|---|---|---|---|---|
| ensue_cli-0.2.1.tar.gz | 58.4 kB | Without provenance | Details for ensue_cli-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ensue_cli-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for ensue_cli-0.2.1-py3-none-any.whl |
Total release size: 93.8 kB
Release files / ensue_cli-0.2.1.tar.gz
| Download URL | ensue_cli-0.2.1.tar.gz |
|---|---|
| Size | 58.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4e57dbfa1ac1f6a548ac8c0e2497f1eed9a3d7382b924f2f30fe79d5104b4310
|
|
BLAKE2b-256 checksum How to use checksums |
cc54688e6ffd8248803e67eb2f1a7d761fb917ad764514f5230ae8e0927a9142
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / ensue_cli-0.2.1-py3-none-any.whl
| Download URL | ensue_cli-0.2.1-py3-none-any.whl |
|---|---|
| Size | 35.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e89b5ce85a162a211c536d02abe8826a61044c447835db3eafce2b1b103be959
|
|
BLAKE2b-256 checksum How to use checksums |
9158a4cf0bdd51427502866bf0f458f6422ca275b6fa1cad5a6e64bb130338ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Security for ensue-cli 0.2.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.