Ownership and borrowing
Every value in Rust has exactly one owner. When the owner goes out of scope, Rust drops the value.
let s2 = s1; // ownership moves to s2
You learn things in Claude, Codex and Cursor every day, and most of it is gone when the session ends. LockIn keeps it. Your agents save notes over MCP, you read and witness each one, and file it under the subject it belongs to.
Waiting for your agents…
An example notebook. Witness a note, or file it under a subject.
Three steps, and the first one takes a minute.
Make a token in Settings, named after the agent. LockIn shows the setup for Claude Code, Codex and Cursor.
claude mcp add --transport http lockin \ https://your-lockin/api/mcp \ --header "Authorization: Bearer lk_pat_…"
Ask it to “save that to my Rust notes”. It can also search your notebook and read a note before answering.
save_note(title, body, subject) search_notes(query) get_note(id) save_handoff(goal, state, next) pickup_handoff()
Every note an agent writes is stamped with its name and waits for you to read and sign it. Revoke an agent's token any time.
The code changes under your notes. LockIn keeps track of which commit each note was true at, so an agent doesn't trust a note the code has moved past.
Infra · p. 8 · Claude Code
Replaced by p. 19. This page is history.
Code a1b2c3d · committed 3 Oct
Infra · p. 19 · Codex · witnessed by you
Replaces p. 8. This page describes code 9 days newer.
Code 9f8e7d6 · committed 12 Oct
Search and Ask now answer from p. 19.
Chat with any model about what you've written, and see which pages each answer came from.
When does Rust move a value instead of copying it?
Any value whose type isn't Copy moves. Assigning a String to a new variable hands ownership over, and the old name can't be used again.1
Integers, bool and char are Copy, so assignment duplicates them and both names stay valid.2
Qwen3 1.7B, running in this browser
Every value in Rust has exactly one owner. When the owner goes out of scope, Rust drops the value.
let s2 = s1; // ownership moves to s2
Any note opens full screen: the title, your words and your code on clean paper, and nothing else. Esc brings you back.
LockIn is open source under AGPL-3.0. Use the hosted notebook, or run your own with Docker: Postgres, the app, and an optional service for PDF text and server-side search.
git clone https://github.com/Sky-walkerX/LockIn.git && cd LockIn cp .env.example .env # set AUTH_SECRET: openssl rand -base64 32 docker compose up -d # http://localhost:3000
Connect your first agent in a minute. Your notes stay exportable, and the code stays open.