Local-first, lightweight issue tracker. Single binary, SQLite-backed, MCP-native.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Issue tracking for the agentic coding era.
One binary. One SQLite database (plus an attachments dir). MCP built in.
lific.dev Β Β·Β Docs Β Β·Β Discord
Your agent can write the code. What it can't do is remember: the plan dies with the context window, the TODO list rots in a markdown file, and the next session starts from zero. Lific is the missing memory: a self-hosted, single-binary issue tracker whose primary user is often an agent rather than a person.
Three numbers instead of adjectives:
tools/list response (o200k tokenizer). Your entire tracker costs about as much context as one long file read.attachments/ dir beside it (both covered by the automatic backups). No Docker, no Postgres, no reverse proxy, no daemon farm. Copy it to a server, point your agents at it, done.lific connect writes correct MCP config into OpenCode, Claude Code, Cursor, VS Code, Codex, Zed, and more. No hand-edited JSON.Identifiers are human-readable everywhere: APP-42, never a UUID. They survive being spoken, logged, grepped, and pasted into a prompt.
That's the whole thing. lific init sets everything up in your OS's standard locations (config in ~/.config/lific/, data in ~/.local/share/lific/ on Linux; macOS and Windows equivalents) so it works the same from any directory - use lific init --here if you'd rather keep a directory-local instance (./lific.toml + ./lific.db). It registers the server with your OS service manager (a systemd user unit on Linux, a LaunchAgent on macOS), so it isn't a process tied to your terminal - it's still running tomorrow. lific connect then detects the AI tools installed on your machine, lets you pick, mints a per-tool API key, and merges correct MCP config into each one without overwriting existing config. Restart your client and the Lific tools are there.
Manage the service anytime with lific service status | restart | stop | uninstall. Prefer a foreground process (containers, supervisors, debugging)? lific init --no-service skips the service and lific start runs the server in your terminal.
The web UI is at http://localhost:3456. Sign up there to create your account, then grant it admin rights from the CLI: lific user promote --username <username>.
Verify any setup with:
doctor exits nonzero if anything is actually broken, so agents and CI can gate on it.
list_issues(project="APP", workable=true) returns only issues with every blocker resolved. Dependency-aware triage without a graph query.get_plan and resumes exactly where the last one left off. No MEMORY.md, no re-priming ritual.blocks, relates_to, duplicate), group them into modules, and mirror plan steps to real issues with two-way done/close sync.get_activity answers "what changed while I was gone": who changed what, when, and through which tool. Every agent's work is attributed (more below).edit_issue / edit_page do targeted find-and-replace, so updating one line of a long description doesn't cost the whole document in tokens.export turns an issue, a page, or a whole project into portable markdown, no lock-in.lific connect mints a separate bot identity per tool, owned by your account (opencode-blake, cursor-blake, ...). When several agents work the same project, provenance is the primitive that keeps you sane:
This is the recommended way to connect agent harnesses.
lific connect is the front door. It supports eleven clients out of the box:
opencode Β· claude-code Β· claude-desktop Β· cursor Β· vscode Β· codex Β· zed Β· gemini Β· windsurf Β· goose Β· crush
Each client gets its native schema (mcpServers vs servers vs mcp, Codex TOML with an env-var token, Goose YAML; the quirks are handled). JSON configs are merged non-destructively; a file connect can't parse safely is left untouched and you get the exact snippet to paste instead.
Lific implements the full MCP authorization spec (RFC 9728 protected-resource metadata, dynamic client registration, PKCE), so OAuth-capable clients can connect with just the URL and complete auth in the browser:
The trade-off: an OAuth token is you. Changes made through it are indistinguishable from your own edits in the audit log, with no per-harness attribution. Fine for personally browsing your tracker from an editor; for agents doing real work, prefer the per-tool bot identities above.
Headless / SSH / agents. No browser on the box? The device flow has you covered:
Tokens are stored in your OS keyring (Secret Service / Keychain / Credential Manager), falling back to a 0600 file with a loud warning when no keyring exists.
Remote (Streamable HTTP):
Local (stdio, no server):
Create keys anytime with lific key create --name my-key.
Go to Settings > Connected tools in the web UI. Pick your tool, click Connect, and paste the generated config snippet.
Each connection creates a bot identity tied to your account (the CLI's connect does the same). Changes show up attributed to you, tagged with which tool made them.
An agent's plan shouldn't die when its context does. A plan is an ordered, arbitrarily-nestable tree of steps that persists across sessions and compaction. Start a new session, call get_plan, and it's still there, ready to resume.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/lific)<a href="https://allmcps.com/mcp/lific"><img src="https://allmcps.com/api/badge/lific?style=directory" alt="Lific on AllMCPs" /></a>