Cairn

io.github.cybort360Published by GitHub account cybort360v0.1.2Updated Oct 24, 2026

Log Claude Code work sessions, file edits, and tasks to your Cairn account.

The publisher's own server: Cairn.ink Memory

Overview

AI-generated overview

Logs Claude Code work sessions, file edits and tasks to a Cairn account, giving the assistant tools to record activity and project notes.

What you can do
  • Record work activity: log coding sessions, file edits and tasks into the user's Cairn account.
  • Track tasks and notes: capture tasks moving from pending to done and project notes.
  • Review history: the Cairn web app keeps everything in one place with daily and weekly rollups.
  • The server exposes a set of cairn tools to the assistant; companion Claude Code hooks log sessions and file edits automatically.
When to use it
Useful if you want an automatic trail of what Claude Code did on your projects, or want the assistant to file tasks, notes and session summaries into a personal work tracker that produces daily and weekly rollups.
Requirements
Runs locally over stdio, installed from PyPI with uvx (uv must be on PATH). Needs a Cairn account and an API token supplied as CAIRN_TOKEN or saved to ~/.cairn_token, plus network access to the Cairn API; CAIRN_API_URL overrides the default production endpoint.
Before you install
Requires an account API token, which is stored in an environment variable or a token file on disk. Everything the assistant logs is sent over HTTPS to the Cairn service and stored in that account, so session and file-edit details leave your machine. The optional hooks log sessions and file edits on their own without per-action confirmation.

Installation

In SourceWeft

  1. Open Cairn in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Cairn

[PyPI] [MCP Registry] [License: MIT]

A work tracker that remembers what you did. It captures your coding sessions, the files you touch, tasks moving from pending to done, and project notes, then keeps them in one place with daily and weekly rollups. The name is the pile of stones that marks a trail.

Cairn runs as a multi-tenant web app on Vercel with a Neon Postgres database. Each account signs up, logs in, and only ever sees its own data.

How it's built

The whole server is the Python standard library plus one dependency (psycopg). No framework.

  • api/index.py — the Vercel serverless entrypoint. Vercel's Python runtime treats it as a catch-all, so every request lands here.
  • lib/handler.py — routing. The same BaseHTTPRequestHandler runs three ways: the Vercel function, the local dev server, and the tests.
  • lib/data.py — every SQL statement, each one scoped by user_id.
  • lib/db.py — Neon connection (pooled endpoint) plus small query helpers.
  • lib/auth.py — PBKDF2 password hashing, sessions, and token resolution.
  • lib/limits.py — signup/login rate limiting and per-account quota caps, both backed by Postgres.
  • lib/assets.py — the single-page app and favicon, embedded as base64 so they ship inside the function bundle. Generated by build_assets.py; re-run it after editing static/.

Local development

You need a Postgres to point at. A throwaway one in Docker works:

bash
docker run -d --name cairn_pg -e POSTGRES_PASSWORD=pw -e POSTGRES_DB=cairn -p 5432:5432 postgres:16-alpinepython3 -m venv .venv && .venv/bin/pip install 'psycopg[binary]'export DATABASE_URL="postgres://postgres:[email protected]:5432/cairn".venv/bin/python dev.py --init    # create the schema, then serve on :8765

Tests run against that same database:

bash
.venv/bin/python tests/smoke.py        # core CRUD + isolation.venv/bin/python tests/test_limits.py  # rate limiting + quotas.venv/bin/python tests/test_sp3.py     # file activity + filtered lists

Deployment

Pushing to main deploys to production through the Vercel GitHub integration. DATABASE_URL and the other Neon variables come from the Vercel ↔ Neon integration; the app reads the pooled connection string. Schema changes go on with initdb.py against the direct (unpooled) URL.

The agent side

The agent/ folder is the MCP server and two Claude Code hooks that run on your machine. They talk to this API over HTTPS using your account's token, so anything Claude Code does flows into your Cairn account. The server gives Claude a set of cairn tools; the hooks log sessions and file edits on their own.

On Claude Code the quickest install is the plugin — this repo doubles as a plugin marketplace (.claude-plugin/marketplace.json):

/plugin marketplace add https://github.com/cybort360/cairn/plugin install cairn@cairn

That wires up the MCP server and both hooks; you just save your token to ~/.cairn_token (it needs uv on your PATH). The manual route — clone, venv, claude mcp add — is in agent/README.md. The web app deploy ignores agent/; it's client-side only.

Design notes

Each sub-project that built Cairn has a spec under docs/superpowers/specs/: the cloud core, the auth hardening, and the local agent cutover. Read those if you want the reasoning behind a decision rather than just the code.

Source: README.md at commit 4982159

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.2LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Cairn integrations