Local-first, lightweight issue tracker. Single Rust binary, SQLite-backed, MCP-native.
git clone https://github.com/VoidNullable/lificResumen de Tools
<p align="center">
<img src="LificHero.png" alt="Lific Issue tracking built for AI-driven development" width="800">
</p>
<p align="center">
<a href="https://github.com/VoidNullable/lific/actions/workflows/ci.yml"><img src="https://github.com/VoidNullable/lific/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
<a href="https://crates.io/crates/lific"><img src="https://img.shields.io/crates/v/lific" alt="crates.io"></a>
<a href="https://github.com/VoidNullable/lific/releases"><img src="https://img.shields.io/github/v/release/VoidNullable/lific" alt="Release"></a>
<a href="LICENSE"><img src="https://img.shields.io/github/license/VoidNullable/lific" alt="License"></a>
<a href="https://discord.gg/uWvaFC4f7D"><img src="https://img.shields.io/discord/1516612377196363889?logo=discord&logoColor=white&label=discord&color=5865F2" alt="Discord"></a>
</p>
<p align="center">
<strong>Issue tracking for the agentic coding era.</strong><br>
One binary. One SQLite database (plus an attachments dir). MCP built in.
</p>
<p align="center">
<a href="https://lific.dev"><strong>lific.dev</strong></a>
·
<a href="https://lific.dev/docs">Docs</a>
·
<a href="https://discord.gg/uWvaFC4f7D">Discord</a>
</p>
---
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:
- **27 MCP tools in 5,641 tokens.** That's the measured size of the full `tools/list` response at v2.2.1 (o200k tokenizer). Your entire tracker costs about as much context as one long file read.
- **One ~25 MB binary.** Embedded SQLite, embedded web UI, backups built in. The data set is just the database and a content-addressed `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.
- **11 AI clients configured by one command.** `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.
## 60-second setup
```bash
cargo install lific # or grab a binary from the releases page
lific init # config + database + your API key, printed once -
# then installs a background service and starts it.
# The server is now on :3456 and survives reboot.
lific connect # writes MCP config into your AI clients
```
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:
```bash
lific doctor # green/yellow/red checks: config, database, server,
# OAuth discovery, and a real MCP round-trip
```
`doctor` exits nonzero if anything is actually broken, so agents and CI can gate on it.
## What your agent can now do
- **Ask "what can I work on right now?" in one call.** `list_issues(project="APP", workable=true)` returns only issues with every blocker resolved. Dependency-aware triage without a graph query.
- **Keep a plan alive across sessions.** Plans are persistent, nestable step trees. A fresh session calls `get_plan` and resumes exactly where the last one left off. No `MEMORY.md`, no re-priming ritual.
- **Break work down and wire it up.** Create issues, link blockers (`blocks`, `relates_to`, `duplicate`), group them into modules, and mirror plan steps to real issues with two-way done/close sync.
- **Leave a real audit trail.** `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).
- **Write docs where the issues live.** Markdown pages in folders, with comments, labels, lifecycle status, and Mermaid diagrams. Design decisions stay next to the work they justify.
- **Edit without resending.** `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.
- **Take everything with you.** `export` turns an issue, a page, or a whole project into portable markdown, no lock-in.
## Every tool gets its own identity, and that's the point
`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:
- **The audit log shows which harness made every change.** "OpenCode closed APP-42", "Cursor edited the design page". All attributed to you, never blurred together.
- **Revoke one tool without touching the others.** Cursor misbehaving? Disconnect just its key and OpenCode keeps working.
- **Scoped authority.** Each bot inherits its owner's project access and nothing more.
This is the recommended way to connect agent harnesses.
## Connecting AI tools
**`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`
```bash
lific connect # interactive picker
lific connect --client opencode --client cursor --yes # non-interactive
lific connect --client claude-code --scope project # repo-local .mcp.json
lific connect --client zed --stdio # no server: direct SQLite over stdio
lific connect --dry-run --client vscode # preview without writing
```
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.
<details>
<summary>OAuth, if you'd rather auth as yourself</summary>
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:
```bash
lific connect --oauth --client opencode # writes a header-less config, mints nothing
opencode mcp auth lific # browser opens → sign in → approve
# or with any client's native command:
claude mcp add --transport http lific http://localhost:3456/mcp
```
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:
```bash
lific login # prints a URL + short code; approve on any device
lific login --non-interactive # agent mode: prints JSON {verification_uri, user_code,
# device_code, next_step} and exits immediately
lific login --complete <code> # finish later, from a script or a second session
```
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.
</details>
<details>
<summary>Manual configuration (any MCP client)</summary>
**Remote (Streamable HTTP):**
```json
{
"lific": {
"type": "remote",
"url": "http://localhost:3456/mcp",
"headers": { "Authorization": "Bearer your-api-key" }
}
}
```
**Local (stdio, no server):**
```json
{
"lific": {
"type": "local",
"command": ["lific", "--db", "path/to/lific.db", "mcp"]
}
}
```
Create keys anytime with `lific key create --name my-key`.
</details>
<details>
<summary>Web UI setup (if you prefer clicking)</summary>
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.
</details>
## Plans: state that outlives the session
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.
- **Steps can mirror issues.** Link a step to an issue and the two stay in sync: close the issue and the step checks itself; mark the step done and the issue closes. Reopen the issue and the step reopens, with a note oLo que la gente pregunta sobre lific
¿Qué es VoidNullable/lific?
+
VoidNullable/lific es tools para el ecosistema de Claude AI. Local-first, lightweight issue tracker. Single Rust binary, SQLite-backed, MCP-native. Tiene 27 estrellas en GitHub y se actualizó por última vez today.
¿Cómo se instala lific?
+
Puedes instalar lific clonando el repositorio (https://github.com/VoidNullable/lific) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar VoidNullable/lific?
+
VoidNullable/lific aún no ha sido auditado por nuestro agente de seguridad. Revisa el repositorio original en GitHub antes de usarlo en producción.
¿Quién mantiene VoidNullable/lific?
+
VoidNullable/lific es mantenido por VoidNullable. La última actividad registrada en GitHub es de today, con 1 issues abiertos.
¿Hay alternativas a lific?
+
Sí. En ClaudeWave puedes explorar tools similares en /categories/tools, ordenados por popularidad o actividad reciente.
Despliega lific en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/voidnullable-lific)<a href="https://claudewave.com/repo/voidnullable-lific"><img src="https://claudewave.com/api/badge/voidnullable-lific" alt="Featured on ClaudeWave: VoidNullable/lific" width="320" height="64" /></a>Más Tools
A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
An AI SKILL that provide design intelligence for building professional UI/UX multiple platforms
🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman
CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies
The fastest, litest AI Gateway. Rust core with Python SDK. Call 100+ LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]
AI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary