OPENLOTUS

OpenLotus
  • For your agent
    vibe-to-ship skillCoreThe loop your agent runsConnect your agentMCP setup in 3 steps
    Where memory shows up
    Progress MapThe shared tree, visualizedDashboardYour week, summarizedAgent WorkspaceTalk with the map loaded
  • Learn
    DocsNewFull guide, plain languageHow it worksPair, watch, actThe loopResearch, plan, build, learnFAQsQuestions, answered
    Do
    vibe-to-ship guideGraph engineering, loop deep-diveNew projectSet up in minutesPricingSimple, honest plans
  • PrivacyYour data, yoursTermsThe fine printContacthello@openlotus.ioGitHubOpen-source the skill
For your agent
  • vibe-to-ship skillThe loop your agent runs
  • Connect your agentMCP setup in 3 steps
Where memory shows up
  • Progress MapThe shared tree, visualized
  • DashboardYour week, summarized
  • Agent WorkspaceTalk with the map loaded
Learn
  • DocsFull guide, plain language
  • How it worksPair, watch, act
  • The loopResearch, plan, build, learn
  • FAQsQuestions, answered
Do
  • vibe-to-ship guideGraph engineering, loop deep-dive
  • New projectSet up in minutes
  • PricingSimple, honest plans
  • PrivacyYour data, yours
  • TermsThe fine print
  • Contacthello@openlotus.io
  • GitHubOpen-source the skill
Documentation

The manual for building with memory.

OpenLotus is a memory holder, visualizer, and utilizer for your AI agents. Your agent remembers what you decided, where reality drifted, and what to do next — without you re-explaining. This guide explains everything in plain language, with code you can copy.

Connect your agentvibe-to-ship skill

No jargon, no theory — just how to use it today.

On this page
Two ways to get set up

With the skill: say “set up OpenLotus” and it does the three files. Without it: copy the three blocks below — same result, one time. Pick one.

What is OpenLotus

A shared memory between you and your agent. Not a chatbot, not a dashboard — a place that holds the context.

The skill works great on its own — it organizes work so your agent can handle more at once. Paired with the OpenLotus memory, every plan it makes is anchored in your real project and every result lands where you can see it.

  • Progress map — the shared tree
  • Dashboard — your week, summarized
  • Workspace — talk with the map loaded
Progress mapLive · MCP
goal: ship the loop
decisions · 12
drift · 0%

Connecting your agent

You have two paths. Let the skill do it, or do it by hand.

Recommended: paste one sentence to your agent. It detects what’s missing (mcp.json? pairing? rules file?) and finishes the rest.

“Set up OpenLotus for this project”

Works in Claude Code and OpenCode — the skill writes the two small files and tells you what it did.

Paste to any agent

You have access to OpenLotus MCP tools (get_reality, get_drift, get_memory, record_decision, create_project, switch_project). At session start: call get_memory and get_reality, then report drift (declared vs observed) as High / Watch / Noise before writing code. After meaningful work: call record_decision with title + why. Never claim tests pass without running them. Full primer: https://www.openlotus.io/llms.txt

For agents that fetch context themselves: openlotus.io/llms.txt

Want to do it yourself? The manual steps are one copy-paste each:

  1. mcp.json — tells your agent how to launch OpenLotus
  2. npx openlotus pair — links this repo to a project (browser)
  3. AGENTS.md / CLAUDE.md — one rule block so every session stays in sync
  • Skill does it automatically if not set up
  • Or three copy-pastes by hand
  • Homepage “Connect your agent” + /dashboard/connectors both show the code
Agent setup
1 · pair
npx openlotus pair
↗ opens https://www.openlotus.io/pair
2 · mcp.json — where in UI?
Home “Connect your agent” + Dashboard → Connectors
3 · rules
CLAUDE.md / AGENTS.md

Pairing a project

Browser-based, no flags. Run one command, pick a project on the web.

Run npx openlotus pair — it opens your browser to /pair. Log in — or create an account if you don’t have one — then pick a project.

Existing project? Choose it from the list. This repo is now linked to it.
New? Click “New project”, name it, and we link it automatically.

No --email --password flags. The browser handles auth; the CLI just waits for your pick.

  • Auth URL opens in your browser
  • Creates a new project if you need one
  • Links this local repo to your choice
PairingWaiting for browser…
Acme · saasSelect
+ New project
CLI: npx openlotus pair → browser → pick → done.

What is mcp.json?

A small config file that tells your agent how to start OpenLotus.

Think of it as a launcher. It says: “when you start, run this command to talk to OpenLotus.” You create it once. After that the agent has the tools in every session.

mcp.json → points at cli/mcp.mjs → your agent sees get_memory, get_drift, get_reality, record_decision

Where in the UI? The code is shown boldly on the homepage (“Connect your agent” section) and at the top of Dashboard → Connectors. The skill also creates it for you.

  • One JSON snippet, one path to fix
  • Makes 4 tools appear in every session
  • Skill writes it if it’s missing
mcp.json
{
  "mcpServers": {
    "openlotus": {
      "command": "node",
      "args": ["…/cli/mcp.mjs"]
    }
  }
}

Fix the absolute path to your clone, restart the client.

The vibe-to-ship skill

A 5-step routine your agent follows to ship without drift — built from real shipping expertise, packaged as graph engineering.

Beat 1 — Boot: connect to memory, load guardrails.
Beat 2 — Triage: compare your stated plan to git reality.
Beat 3 — Act: fan out workers, dedupe, synthesize.
Beat 4 — Verify: fresh-context skeptics + compiler anchors.
Beat 5 — Learn: commit the updated tree.

If a triage shows nothing actionable, the skill stops in ~5k tokens — it doesn’t burn credits running nothing.

Read the full skill guide →
  • Open-source, drop-in for Claude Code & OpenCode
  • If setup missing, Beat 1 finishes pairing first
  • Manual or agent-driven — your choice
5 beats
1. Bootconnect
2. Triagereconcile 4 findings
3. Actdiamond: 15m→15s
4. Verifyskeptics
5. Learndebrief

What triage does & why

Triage is the honest check before your agent moves.

It compares what you said you’d do (the tree) to what actually happened (git, dirty files, TODOs) and outputs a High / Watch / Noise list.

High — fix today
Watch — monitor
Noise — looked at, ignored

Without triage, agents invent a plan. With it, they start from the last verified reality.

Run with: “Run vibe-to-ship triage” or let the Beat 1 auto-check run.

  • Catches drift before acting
  • Early exit when nothing actionable
  • Reconciles declared vs observed
Triage output
High — pairing not set up
Watch — TODO debt 14 markers
Noise — submodule commits

Hooks & safety net

Hooks enforce the loop even when the agent forgets.

Optional safety net: your agent automatically checks for drift when it starts, so it flags problems before it acts. No extra cost, works even if the agent ignored the earlier rules.

{ "hooks": { "SessionStart": ["npx openlotus status"] } }

There’s also a built-in safety net without hooks: if the map drifts from git (e.g., 12 uncommitted files while the milestone claims done), the next get_drift flags it as risk. Drift is information, not failure.

  • SessionStart: prints drift at boot
  • Budget cap: switches to report-only at 80%
  • Max 3 fix attempts, then escalate
Safety net without prompting
Daily triage2 runs / 100k tokens
Budget throttleearly exit <5k tokens

Timestamps

Every action is stamped. No anonymous edits.

Milestones, decisions, risks, evidence, milestones — each carries createdAt. Snapshots carry capturedAt + syncCount. Reviews carry lastReviewAt.

You see them as relative times in the dashboard and absolute times when you expand a node.

  • Milestones · decisions · evidence: createdAt
  • Snapshots: capturedAt + syncCount
  • Reviews: lastReviewAt, trajectory
Memory row
Ship shared memory2026-08-22 12:30
Evidence: 5 invited visitors14m ago

Memory & compaction

Your recent history, fully detailed. Older history, summarized — never deleted.

How much stays detailed depends on your tier’s event budget — Free holds about 500 events, Pro about 5,000, Studio is unlimited — not on calendar days. A quiet week (dozens of events) costs almost nothing; a heavy week with thousands compacts sooner. Older entries become time-stamped summaries you can still read.

  • Free: ~500 events full-detail, then summaries
  • Pro: ~5k events; Studio unlimited
  • Summaries never expire
Full-detailCompacted (summaries)
7 daysforever

10M vs 1k tokens → same 7-day SLA, different burn rate; compaction adapts.

Security

Your code never leaves your machine.

OpenLotus reads your work’s shape — what changed, what you decided, where things drift — not your files. get_reality sends counts and branch names, never file bodies. Tools are capability-scoped (e.g., github.read), never “all access.”

  • Never reads file contents
  • Per-tool capability checks
  • Pairs are per-project, not per-org
Tool policy
github.readallowed
filesystem.writedenied
OpenLotus

The quiet system for founders who build. One loop for the work that actually matters.

Product

  • Progress Map
  • Dashboard
  • Agent Workspace
  • Pricing

Company

  • Connectors
  • New project
  • Changelog

Resources

  • vibe-to-ship guide
  • FAQs
  • CLI pairing
  • Community
OpenLotus

© 2026 OpenLotus. All rights reserved.

GitHubXPrivacyTerms