Skip to main content

Memento logo Memento

English | 한국어

Memento banner

Memento is a Hermes-native lifecycle and evidence ledger for AI-assisted software work.

It exists because long-running agent work usually fails in a very ordinary way: the real state of the work lives in the wrong place. A chat transcript says one thing, a TUI buffer says another, an executor session disappears, and a summary claims the tests passed without proving it. Memento moves that state into a project-local ledger: runs, plans, tasks, dispatches, review gates, evidence, and audit events that survive chat resets and process restarts.

The short version:

Work is not done because an agent says it is done. Work is done when the ledger points to evidence you can inspect.

What Memento is for

Use Memento when AI-assisted development starts to outgrow a single chat window:

  • you want a canonical plan before implementation starts;
  • you want incoming requests, cron events, and webhook payloads to become durable tasks instead of ad hoc instructions;
  • you want handoffs to humans or Hermes-controlled workers to be auditable;
  • you want completion to require evidence such as test output, CI status, lint logs, generated artifacts, code diffs, screenshots, or explicit approvals;
  • you want to recover work after chat compaction, executor crashes, process restarts, or a lost terminal session;
  • you want a readable progress report rebuilt from state, not from hidden executor memory.

Memento is not trying to make AI coding more magical. It is trying to make it harder to lose track of what happened.

What Memento is not

Memento is deliberately narrow.

It is not:

  • an OpenCode, Codex, or Claude Code wrapper;
  • an integration guide for those tools;
  • a compatibility shim for another lifecycle system;
  • a replacement for tests, review, or user approval;
  • a system that treats an executor summary as proof;
  • a system that depends on private TUI/session state for correctness.

The supported public onboarding path is Hermes Agent plus the memento CLI. Future executor adapters may hand work to other runtimes, but they are not part of the current installation or correctness model.

Install from PyPI

python -m pip install memento-lifecycle
memento doctor --json
memento sample-smoke --workspace /tmp/memento-sample --json

The PyPI distribution is memento-lifecycle. The installed CLI and Python import package are still named memento.

Hermes Agent installation

The guided installation flow is written for Hermes Agent. It configures Hermes Agent only and does not set up any other coding runtime.

Paste this into Hermes Agent:

Install and verify Memento by following the instructions here:
https://raw.githubusercontent.com/antchoi/memento/main/docs/guide/installation.md

Or read the Installation Guide. It walks Hermes Agent through a Python 3.11+ environment, dependency installation, memento doctor, the smoke contract, optional local agentmemory, and the exact evidence to report back.

If you are already inside a source checkout, the default local path is:

scripts/install-local.sh --dev

For a minimal runtime install from a checkout:

scripts/install-local.sh

To run directly from source without installing the console script:

PYTHONPATH=src python -m memento.cli doctor --json

Optional local agentmemory for Hermes Agent

Memento keeps lifecycle truth in its own ledger. If you also want cross-session memory for Hermes Agent, run agentmemory locally and connect it through MCP:

scripts/install-local.sh --agentmemory

Then add the MCP server shown in docs/guide/installation.md, restart Hermes, and verify:

hermes mcp list
hermes mcp test agentmemory

Keep agentmemory ports bound to localhost unless you explicitly choose remote exposure.

First check

Run the smoke contract:

memento sample-smoke --workspace /tmp/memento-sample --json
memento status --workspace /tmp/memento-sample --json
memento report --workspace /tmp/memento-sample

sample-smoke initializes a workspace, runs doctor, creates a sample run, enqueues a task, writes an outbox handoff, claims and completes it without spawning an external executor process, and proves that status and report can be rebuilt from durable project-local state.

The first real run

A normal Memento workflow is intentionally conservative. You create a run, approve a plan, turn work into a task, hand it off, and only mark it complete with evidence.

memento init --workspace /path/to/repo --json

memento start \
  --workspace /path/to/repo \
  --goal "Ship the next verified slice" \
  --allow-spike \
  --json

Create and approve the canonical plan:

memento plan \
  --workspace /path/to/repo \
  --run-id run_... \
  --title "Next slice" \
  --body "Write tests, implement the slice, verify it, and record evidence." \
  --json

memento approve-plan \
  --workspace /path/to/repo \
  --run-id run_... \
  --plan-id plan_... \
  --json

Turn the next piece of work into a durable task and generate an explicit worker payload:

memento enqueue-event \
  --workspace /path/to/repo \
  --run-id run_... \
  --title "Implement X" \
  --body "Task details and acceptance criteria" \
  --json

memento worker-payload \
  --workspace /path/to/repo \
  --run-id run_... \
  --task-id task_... \
  --json

Record the handoff and completion:

memento dispatch-task \
  --workspace /path/to/repo \
  --run-id run_... \
  --task-id task_... \
  --executor hermes-profile \
  --json

memento claim-dispatch \
  --workspace /path/to/repo \
  --dispatch-id dispatch_... \
  --executor hermes-profile \
  --json

memento complete-dispatch \
  --workspace /path/to/repo \
  --dispatch-id dispatch_... \
  --summary "Implemented and verified" \
  --evidence-uri file://verification/task.log \
  --json

Then rebuild status from the ledger:

memento status --workspace /path/to/repo --run-id run_... --json
memento report --workspace /path/to/repo --run-id run_...

Core model

  • Run: the top-level unit of work for one goal in one workspace.
  • Plan: a draft or canonical implementation plan. Normal execution is blocked until a canonical plan exists, unless the run explicitly allows a bounded spike.
  • Task: a durable work item created from a plan, user request, cron event, webhook, or manual enqueue.
  • Dispatch: an auditable handoff record. It does not prove that work happened.
  • Review gate: a checkpoint for preflight safety, plan review, implementation/spec review, quality review, final acceptance, approval, or release readiness.
  • Evidence: an inspectable artifact such as command output, test results, CI status, lint output, a generated file, a screenshot, a verified diff, or an approval record.
  • Audit event: append-only lifecycle history used for recovery and accountability.
  • Report: a chat-readable summary rebuilt from Memento state.

Trust model

Memento treats these as trusted evidence when they are linked to the ledger:

  • command output with exit code;
  • test, lint, type, compile, smoke, or CI results;
  • generated artifacts with stable paths;
  • verified code diffs;
  • explicit approvals;
  • graph or memory snapshots used as supporting context.

These are advisory only until evidence backs them:

  • "I finished" summaries;
  • private reasoning traces;
  • raw chat history;
  • executor-native session state;
  • TUI buffers and logs with no verification artifact.

This split is the point of the project. Memento does not ask you to trust a better summary. It asks you to attach proof.

Command map

Read the full command guide in docs/commands.md. The main groups are:

  • setup and health: doctor, init, sample-smoke;
  • lifecycle: start, plan, approve-plan, pause, resume, cancel, status, report;
  • tasks and handoff: enqueue-event, worker-payload, dispatch-task, list-dispatches, claim-dispatch, complete-dispatch, fail-dispatch;
  • verification and context: context-bundle, route-task, verify-task, graph-status, graph-update, memory-prefetch, memory-writeback;
  • worker/release gates: record-external-check, record-approval, record-graph-diff, select-patch, release-gate, recover-jobs;
  • review: review.

Hermes plugin boundary

The local Hermes plugin entry point is memento.plugin:register:

[project.entry-points."hermes_agent.plugins"]
memento = "memento.plugin"

The registration boundary is intentionally small. A Hermes-like context only needs:

ctx.register_command(name, handler, **metadata)

memento doctor --json and tests/test_plugin_registration.py are the executable registration contract.

Documentation

Start here:

Development verification

python -m pytest -q
python -m ruff check .
python -m compileall -q src tests
PYTHONPATH=src python -m memento.cli doctor --json
PYTHONPATH=src python -m memento.cli sample-smoke --workspace /tmp/memento-sample --json
scripts/verify-local.sh

Traceability

The implementation history is driven by the Ouroboros source Seed at .ouroboros/seeds/memento.seed.yaml and follow-on phase seeds:

  • .ouroboros/seeds/memento.seed.yaml
  • .ouroboros/seeds/memento-mvp.seed.yaml
  • .ouroboros/seeds/memento-v1.seed.yaml
  • .ouroboros/seeds/memento-v2.seed.yaml
  • .ouroboros/seeds/memento-v3.seed.yaml

The detailed acceptance criteria live in those seed files. The retained token map is here for mechanical traceability:

AC01_repo_bootstrap, AC02_plugin_registration, AC03_command_surface, AC04_draft_to_canonical_plan, AC05_durable_state, AC06_kanban_boundary, AC07_preflight_safety, AC08_destructive_guardrails, AC09_worker_context, AC10_review_gates, AC11_reporting, AC12_cancellation_pause, AC13_bundled_skills, AC14_documentation, AC15_no_opencode_dependency, AC16_test_suite, AC17_lint_type_baseline, AC18_seed_traceability, AC19_actor_input_output_runtime_closure, AC20_cron_event_to_task_only, AC21_role_last_action_visibility, AC22_sqlite_fallback_contract.

This README stays focused on orientation, installation, and the first verified workflow.

Metadata

Release files for memento-lifecycle 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for memento-lifecycle 0.1.1
File Size Uploaded
memento_lifecycle-0.1.1.tar.gz 1.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for memento-lifecycle 0.1.1
File Interpreter ABI Platform
memento_lifecycle-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.6 MB

Release files / memento_lifecycle-0.1.1.tar.gz

Download URL memento_lifecycle-0.1.1.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
43b62f0635cbadc47f3c111f882048b1b7303a268831533dd9db10c9d32fc180
BLAKE2b-256 checksum
How to use checksums
f49960892b7f5eea6b0cb0cb54b703ed770116b71f7cb7734a22e646634d0002
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 20, 2026.

Transparency log

Release files / memento_lifecycle-0.1.1-py3-none-any.whl

Download URL memento_lifecycle-0.1.1-py3-none-any.whl
Size 66.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9dc342e18ed3b065017a4bf2bf5d9f49622ca3fbbc0d4c250926d267e2d5834a
BLAKE2b-256 checksum
How to use checksums
af9a8b1c53b327ce5116bbf79eb311928e4de422fe94732472195dedfcb18133
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page