lific 1.0.0

Local-first, lightweight issue tracker. Single binary, SQLite-backed, MCP-native.
lific-1.0.0 is not a library.

Lific's full MCP schema fits in ~2,500 tokens. It uses human-readable identifiers (APP-42, not UUIDs), runs as a single binary with an embedded SQLite database, and includes a web UI for when you want to look at things yourself.

  • Issues with status, priority, modules, labels, relations, and comments
  • Pages as markdown documents in recursive folders
  • Web UI with inline editing, drag-and-drop, dark/light theme
  • MCP + REST API for AI assistants and automation
  • User accounts with per-tool bot identities
  • Automatic backups with configurable retention

Install

cargo install lific

Or grab a binary from the releases page.

Quickstart

lific init     # creates lific.toml
lific start    # starts on port 3456

Open http://localhost:3456, create an account (first account is admin), and you're running.

Connecting your AI tools

Go to Settings > Connected Tools in the web UI. Pick your tool, click Connect, paste the generated config snippet. Supported out of the box:

  • OpenCode
  • Cursor
  • Claude Code
  • Claude Desktop
  • Codex

Each connection creates a bot identity tied to your account. Changes show up attributed to you, tagged with which tool made them.

Point your MCP client at the /mcp endpoint:

{
  "lific": {
    "type": "remote",
    "url": "https://your-server/mcp",
    "headers": {
      "Authorization": "Bearer your-api-key"
    }
  }
}

Or run locally via stdio (no network):

{
  "lific": {
    "type": "local",
    "command": ["lific", "--db", "path/to/lific.db", "mcp"]
  }
}

MCP tools

Tool What it does
list_resources Discover projects, modules, labels, folders, pages, issues
list_issues Filter by status, priority, module, label, or workable
get_issue Full issue details with relations and labels
create_issue Create with project, module, labels, priority
update_issue Partial updates by identifier
get_board Board view grouped by status, priority, or module
search Full-text search across issues and pages
link_issues / unlink_issues Dependency tracking (blocks, relates_to, duplicate)
get_page / create_page / update_page Markdown documents
add_comment / list_comments Comments on issues
manage_resource Create/update projects, modules, labels, folders
delete Delete anything by identifier

Everything uses human-readable identifiers: project="APP" not project_id=7.

Workable filter: list_issues(project="APP", workable=true) returns only issues with all blockers resolved. One call to answer "what can I start right now?"

Roadmap

  • Projects, issues, labels, modules, relations
  • Markdown pages in recursive folders
  • Comments on issues
  • Web UI with inline editing and drag-and-drop
  • Full-text search
  • User accounts with bot identities
  • OAuth 2.1
  • Automatic SQLite backups
  • Milestones with changelog generation
  • Git-aware issue references (parse commits for identifiers)
  • Activity log per issue
  • File attachments
  • Webhooks
  • VS Code extension
  • Real-time updates via WebSocket

Not planned: sprints, story points, custom fields, workflow automations.

Configuration

lific init generates this:

[server]
host = "0.0.0.0"
port = 3456

[database]
path = "lific.db"

[backup]
enabled = true
dir = "backups"
interval_minutes = 60
retain = 24

[log]
level = "info"

CLI flags (--db, --port, --host) override config values.

Building from source

git clone https://github.com/VoidNullable/lific
cd lific
cd web && bun install && bun run build && cd ..
cargo build --release

Requires Rust 2024 edition. SQLite is bundled.

Contributing

Issues and PRs welcome. If you're planning something big, open an issue first so we can talk about it before you put in the work.

License

MIT