lissue
lissue (short for Local Issue) is a powerful, Git-friendly local TODO CLI designed for developers and AI coding agents. It manages your project tasks using a hybrid storage of SQLite (for speed) and JSON (for Git-based sharing).

Why lissue?
The name lissue comes from "Local Issue". It aims to bring the powerful issue-tracking experience of GitHub/GitLab directly to your local terminal, enabling seamless collaboration between humans and AI agents through Git.
Key Features
- Hybrid Storage: Fast local operations with SQLite + Git-syncable JSON storage.
- Git-Optimized: "1 Task per File" architecture prevents merge conflicts.
- AI-Ready: Specialized commands for AI agents, including context dumping and auto-locking.
- Hierarchical Tasks: Support for parent-child relationships and tree view display.
- Secure: Built-in protection against path traversal and SQL injection.
- Flexible: Editor integration, file movement tracking, and extensive filtering.
Installation
# Clone the repository
# Install locally
Quick Start
- Initialize the repository in your project root:
- Add a task:
# Or just 'lissue add' to open your $EDITOR - List tasks:
- Claim a task (for AI agents or team members):
- Sync with Git (Apply merged JSON files to your local database):
Command Reference
| Command | Description |
|---|---|
lissue init |
Initialize .lissue directory and database. |
lissue add [TITLE] |
Add a new task. Opens editor if title is omitted. |
lissue list |
List tasks. Supports --format json, --tree, and filters. |
lissue next |
Get the next available task (Open & Unassigned). |
lissue claim <ID> |
Mark task as In Progress and assign to yourself/agent. |
lissue close <ID> |
Close a task. |
lissue open <ID> |
Reopen a closed task. |
lissue link <ID> --to <PID> |
Create a parent-child relationship. |
lissue context <ID> |
Dump task details and linked file contents for AI. |
lissue mv <OLD> <NEW> |
Move a file and update all linked tasks. |
lissue rm <ID> |
Permanently remove a task. |
lissue clear |
Permanently remove all closed tasks. |
Configuration
Settings are stored in .lissue/config.yaml:
output.default_format:humanorjsonoutput.auto_sync: Enable/disable implicit sync duringlistornext.integration.git_mv_hook: Usegit mvduringlissue mv.context.strategy:paths_onlyorraw_content.
License
MIT OR Apache-2.0