Skip to main content

Beginner Workshop

This is a follow-along workshop. Every step gives you one command to copy, one thing to look at, and one short explanation of what just happened. You do not need to know anything about Memanto, vector databases, or embeddings. If you can open a terminal, you can finish this page. Time: about 30 minutes for the whole thing. You can also stop anywhere — each step is self-contained.
Every step below has its own link. Copy the link from a heading (hover it and click the anchor icon) to share “start here” with a teammate, or use the jump list below to resume where you left off.

Jump to a step

1. Install Memanto

Get the memanto command on your machine.

2. Add your API key

Connect the CLI to your account.

3. Create your first agent

An agent is where your memories live.

4. Remember something

Store your first memories.

5. Recall it

Search by meaning, not keywords.

6. Ask a question

Get an answer built from your memories.

7. Open the dashboard

See everything in a browser.

8. Fix a memory

Edit content, type, or confidence.

9. Retire and restore

The reversible way to remove something.

10. Delete for good

forget — the one-way door.

11. Connect your coding tool

Claude Code, Cursor, Copilot, and more.

12. Bring memories with you

Migrate from Mem0, Letta, Supermemory.

13. Handle contradictions

When two memories disagree.

Cheat sheet

Every command from this page in one table.

What you need

  • A terminal (Terminal on macOS/Linux, PowerShell or Command Prompt on Windows)
  • Python 3.10 or newer — check with python --version
  • A free Moorcheh API key (we get one in Step 2)
Don’t want to use an API key at all? You can run the whole stack on your own machine instead — see the On-Prem Quickstart. The commands in this workshop are exactly the same either way.

The 30-second version of what Memanto is

Normally, an AI assistant forgets everything when you close the chat. Memanto is a place to write things down so they survive. Three words cover almost everything you will do: That’s it. Everything else on this page is a variation on those three.

Step 1: Install Memanto

Memanto is a command-line tool. Install it with pip:
Check that it worked:
You should see a version number printed. If you get “command not found”, see Troubleshooting.
uv (a faster Python installer):
Docker — runs the server without installing Python packages:
Node.js / TypeScript — if you are building a JS app rather than following along in a terminal:
See the TypeScript SDK Reference. The rest of this workshop uses the CLI.Full details: Installation & Setup.

Step 2: Add your API key

Memanto stores your memories through Moorcheh. You need one key to talk to it. Get the key:
  1. Sign up at moorcheh.ai.
  2. Open console.moorcheh.aiAPI Keys → create a new key.
  3. Copy it right away — it is only shown once.
Give it to Memanto. Run memanto on its own to start the setup wizard:
It asks you a couple of questions:
Say n to the schedule for now — you can turn it on later. Check that it saved:
Look for:
Now confirm Memanto can actually reach the service:
Your key lives in ~/.memanto/config.json, outside your project folder — so it never lands in git by accident.

Step 3: Create your first agent

An agent is just a named box that holds memories. Memories stored in one agent are invisible to another, which is how you keep “work stuff” and “personal project stuff” apart. Let’s make one called workshop:
You’ll see something like:
Two things happened:
  1. The agent was created.
  2. A session was opened for it automatically, valid for 6 hours.
A session is Memanto’s way of knowing which agent your next command applies to. You almost never have to think about it — Memanto renews it for you when it gets close to expiring. Check what’s currently active any time:
Make a second agent and Memanto switches to it. To go back:
List everything you’ve made:
More: Agent Management.

Step 4: Store your first memories

Now the fun part. Store a memory:
The --type flag tells Memanto what kind of information this is. Try a couple more with different types:

Why types matter

You could skip --type entirely and Memanto would still work. But typing your memories lets you ask narrower questions later — “show me only my decisions” — instead of digging through everything. There are 13 types. You only need these four to start: The other nine (goal, event, instruction, relationship, context, learning, observation, error, artifact) are in the Memory Types Reference when you want them.

Useful extras

Add tags so you can filter later:
Not fully sure about something? Lower its confidence (default is 0.8):
Have a whole document instead of one sentence? Upload it and Memanto pulls the memories out for you:
Works with .pdf, .docx, .xlsx, .json, .txt, .csv, and .md. See memanto upload.

Step 5: Recall what you stored

Here’s what makes Memanto different from a text file. Ask for something using completely different words than you stored:
You never wrote the word “version” — you wrote “runs on Python 3.11” — and it still comes back. Memanto matches on meaning, not on matching letters. Try a few more:

Reading the output

Each result looks like this:
  • Confidence — how sure the memory is (you set this when storing).
  • Source — where it came from: you, an agent, or a file you uploaded.
  • Provenance — how it was obtained: stated directly, inferred, corrected, and so on.
The long ID string shown with each result is what you’ll use in Steps 8, 9, and 10 — keep this output open, you’ll need one of those IDs shortly. Only show one type:
Only show three results:
Filter by tag:
Just show me the newest things, no search query needed:

Looking back in time

Memanto keeps history, so you can ask what things looked like on a given day:
Or what has changed recently:
Plain English works here: today, yesterday, this week, last 3 days, past 12 hours. Full list in the recall reference.

Step 6: Ask a real question

recall hands you a list of memories. answer reads those memories and writes you a sentence.
You get a written answer that pulls from everything you stored in Step 4, rather than a list you have to read yourself. Use recall when you want to see the raw memories. Use answer when you want a conclusion.
Want a plain-English roundup of the day? Try:
It lists what you stored today and flags anything that looks contradictory. More in Daily Workflows.

Step 7: Open the web dashboard

Everything so far works in the terminal, but there is also a browser dashboard — much nicer for browsing a lot of memories. It needs two things running, so open two terminal windows. Terminal 1 — start the server and leave it running:
Terminal 2 — open the dashboard:
Your browser opens at http://localhost:3000.
If you close the memanto serve window, the dashboard stops working. Leave it open while you’re using the UI.

What to click first

The memanto ui page has annotated screenshots of every one of these.
Everything in the dashboard is the same data as the CLI. Store a memory in the Playground, then run memanto recall in the terminal — it’s right there.

Step 8: Fix a memory you got wrong

Memories aren’t set in stone. First, find the ID of the one you want to change:
Copy the ID from the result. Then edit it:
Only the fields you name are replaced — everything else, including the original creation time, stays as it was. You can change several fields at once:
Replace b7c3cf31-... with a real ID from your own recall output. The IDs in this guide are examples.

Step 9: Retire a memory (and bring it back)

Sometimes information isn’t wrong, it’s just no longer true. “We deploy manually over SSH” was true last year; today it isn’t. You don’t want to delete that — it’s part of the history. That’s what expire is for.
Nothing was destroyed. The content, tags, and confidence are all still there. Recall now shows it labelled:
See only the expired ones:
See only the live ones:

Changed your mind? Restore it

The expiry stamp is cleared completely — it’s as if it never happened.
This is the safe habit: expire first, delete later. Expiring is always reversible; deleting never is.

Step 10: Delete a memory for good

When you genuinely want something gone — a typo, a duplicate, something private — use forget:
It asks you to confirm first. To skip the prompt (useful in scripts):
forget is permanent. A forgotten memory cannot be restored — memanto memory restore only works on expired memories, not deleted ones.

Expire or forget — which one?

The full model is in Memory Lifecycle.

Step 11: Connect Memanto to your coding tool

Up to now you’ve been typing commands yourself. The real payoff is letting your AI coding tool read and write these memories on its own — so it remembers your project between sessions. See which tools Memanto can detect in your current folder:
Then connect one. From inside your project directory:
Supported targets include claude-code, cursor, windsurf, codex, cline, continue, github-copilot, gemini-cli, opencode, goose, roo, antigravity, augment, and pi. Connect for every project on your machine instead of just this one:
Connect several tools at once, interactively:
Undo it:

What just happened

Memanto wrote a small instructions file for that tool (CLAUDE.md, .cursor/rules/memanto.mdc, and so on) telling it how to use your memory. From here, you can tell the assistant “remember that we use 4-space indentation” and it will store it in Memanto — and pick it up again tomorrow. You can also write your memories into a project file by hand:
That produces a MEMORY.md in the current folder, which most coding tools read automatically.
Not using a coding tool? Memanto also speaks MCP, which works with Claude Desktop and most other AI clients. See all options in the Integrations overview.

Step 12: Bring memories from another tool

Already using Mem0, Letta, or Supermemory? You don’t have to start over. Always preview first. A dry run shows exactly what would be imported and writes nothing:
Happy with the preview? Run it for real:
The same shape works for the others:
Memanto asks for that provider’s API key the first time and saves it to ~/.memanto/.env. Import into a specific agent instead of the active one:
Already have an export file? Skip the live pull:
Every run — dry or real — leaves a folder under ~/.memanto/migrate/<provider>/<timestamp>/ with the exact records it mapped, so you can check its work.
  • okf — import an Open Knowledge Format bundle from a folder of markdown files: memanto migrate okf ./okf-bundle --dry-run
  • langfuse — a repeatable sync that turns Langfuse errors and slow traces into memories, one per error signature. Start with memanto migrate langfuse --discover.
Full details: memanto migrate.

Step 13: Handle contradictions

Store enough things over enough time and two of them will eventually disagree. Memanto can find those for you. Create a contradiction on purpose so you have something to look at:
You told it PostgreSQL back in Step 4. Now those two decisions can’t both be current. Step A — find the conflicts:
This only looks. It changes nothing. Step B — resolve them:
Memanto shows both memories side by side with a recommendation, and asks what to do:
Notice the menu is split in two:
  • Options 1–4 and 8 delete permanently. Gone, like Step 10.
  • Options 5–7 expire instead. The losing memory stays recallable and labelled, exactly like Step 9 — and you can restore it.
If you’re new, pick an expire option (5, 6, or 7). You keep the history and nothing is lost. Just want to look without deciding anything?
Want this to happen on its own every day? Turn on the scheduler:
It runs the daily summary and the conflict scan for you. You just review the results. See Daily Workflows.

Cheat sheet

Everything from this workshop, in order:

Troubleshooting

Python installed the tool somewhere that isn’t on your PATH. Try running it through Python directly:
If that works, add Python’s scripts folder to your PATH — or install with uv tool install memanto, which handles it for you.
Your session expired, or no agent is active. Check:
Then re-activate:
memanto ui needs memanto serve running in another terminal. Start that first, then run memanto ui.If port 3000 is taken:
And if port 8000 is taken:
conflicts reads a report that detect-conflicts writes. Run the detection step first:
Delete the workshop agent and its memories:
Then create a fresh one and run through the steps again.

Where to go next

You now know the whole loop: store, find, correct, retire, and share memories with your tools. Pick whichever of these matches what you want to build.

CLI Reference

Every command with every flag.

Memory Operations

Batch storing, file uploads, extracting memories from chat logs.

Temporal Memory

Point-in-time and “what changed” queries in depth.

Daily Workflows

Automated summaries and scheduled conflict scans.

Integrations

LangChain, CrewAI, MCP, n8n, and every coding tool.

REST API

Do all of this from your own code.
Stuck on something? Ask in Discord or email support@moorcheh.ai.