🚀 Getting Started
Installation
LazyArchon can be installed using several methods. Choose the one that works best for your setup:
One-Line Script (Recommended)
Download and install LazyArchon with a single command
Homebrew (macOS/Linux)
Install via Homebrew package manager
Go Install
Install directly from Go source code
Binary Downloads
Download pre-built binaries from GitHub Releases
🤖 Claude & MCP
LazyArchon ships with a built-in MCP server: lazyarchon mcp. It exposes the same tasks and projects as the TUI through the same backend, so you and your AI client work on one database:
Claude ── stdio (JSON-RPC) ── lazyarchon mcp ── backend (local by default)Setup
One command registers the server for your user:
claude mcp add lazyarchon -- lazyarchon mcpTo pin a specific binary path instead:
claude mcp add lazyarchon -- /usr/local/bin/lazyarchon mcp Or make it project-scoped — commit a .mcp.json so every session in the repo gets the server:
{
"mcpServers": {
"lazyarchon": {
"command": "lazyarchon",
"args": ["mcp"]
}
}
}Try it
Then just ask:
- › "list my projects"
- › "add a high-priority task to review the PR, due Friday"
- › "mark it done"
Changes the client makes appear in the TUI after a refresh (r), and your TUI edits are visible to the client — one SQLite database, two faces.
Tool reference
Ten typed tools. List tools return compact summaries; get/create/update tools return the full object. All timestamps are RFC3339 UTC.
Projects
| Tool | Arguments | Notes |
|---|---|---|
| list_projects | — | Compact summaries plus total |
| get_project | project_id | Full project incl. description, color, extra |
| create_project | title, description?, color?, pinned? | Local backend only |
| update_project | project_id, title?, description?, color?, pinned? | Only changed fields |
| delete_project | project_id, delete_tasks? | Refuses while tasks exist unless delete_tasks: true |
Tasks
| Tool | Arguments | Notes |
|---|---|---|
| list_tasks | project_id?, status?, search?, tags?, include_archived?, limit?, offset? | Summaries plus total, has_more, next_offset |
| get_task | task_id | Full task incl. description and extra fields |
| create_task | title, project_id?, parent_id?, description?, status?, priority?, assignee?, tags?, due_date?, sources?, code_examples? | project_id optional when exactly one project exists |
| update_task | task_id + any settable field | Omitted fields are unchanged |
| delete_task | task_id | Subtasks survive with parent_id cleared |
? marks optional arguments. Project writes are supported by the local backend; HTTP backends (archon, gitea, vikunja) return a clear "not supported" error instead.
Semantics worth knowing
- ›Statuses:
todo,doing,review,done— validated, anything else is an error. - ›Priority: 1 = critical, 2 = high, 3 = medium (default), 4 = low. Lower is more urgent.
- ›Due dates:
YYYY-MM-DDor RFC3339. Onupdate_task, an empty string clears the value (same forparent_id). - ›Nesting: pass
parent_idto create a subtask. Deleting a parent leaves the children in place, parentless. - ›Archiving:
update_taskwitharchived: truehides the task from lists unlessinclude_archived: true. - ›Pagination:
list_tasksdefaults to 500 per page; follownext_offsetwhilehas_moreis true. - ›Logs: the server logs to a file (default
/tmp/lazyarchon.log), never stdout — stdout is the protocol.
📖 User Guide
Interface Overview
LazyArchon features a clean two-panel layout inspired by terminal file managers like ranger and lf:
Left Panel - Task List
- • Browse all tasks in the current project
- • Visual status indicators for each task
- • Quick navigation with vim-like keys
- • Filter by features and projects
Right Panel - Task Details
- • Full task description with markdown
- • Task metadata (status, assignee, features)
- • Scrollable content for long descriptions
- • Rich text formatting and syntax highlighting
Task Status Indicators
Status Symbols
Visual Indicators
⌨️ Keyboard Shortcuts
Complete reference for all keyboard shortcuts in LazyArchon. Press ? in-app for help.
Panel Navigation & Movement
| Key | Action |
|---|---|
| h | Switch to left panel (Tasks) |
| l | Switch to right panel (Details) |
| j/kor↑/↓ | Navigate/scroll in active panel (1 line) |
| J/K | Fast scroll in active panel (4 lines) |
| Ctrl+u/d | Half-page scroll in active panel |
| gg | Jump to first item in active panel |
| G | Jump to last item in active panel |
Task Management
| Key | Action |
|---|---|
| t | Change task status (Todo/Doing/Review/Done) |
| e | Edit task features (assign/create features) |
| f | Filter by features (multi-select modal) |
| s | Change sorting criteria (cycle through modes) |
Project Management
| Key | Action |
|---|---|
| p | Enter project selection mode |
| a | Show all tasks (exit project filter) |
| Enter | Select project in project mode |
| Escape | Cancel project selection |
Application Controls
| Key | Action |
|---|---|
| r | Refresh data from API |
| ? | Show help modal |
| q | Quit application |
| Escape | Close modals/cancel operations |
🔧 Troubleshooting
Common Issues
Tasks not loading (local mode)
Error: Failed to load tasks: unable to open database fileLAZYARCHON_DB_PATH or plugins.local.path/tmp/lazyarchon.log for detailsConnection refused (Gitea / Vikunja / Archon backends)
Error: Failed to load tasks: dial tcp [::1]:8181: connect: connection refusedcurl http://localhost:8181/healthplugin: in config.yaml points at the backend you intend to useCommand not found after installation
lazyarchon: command not found$(go env GOPATH)/bin to PATH~/.local/bin to PATHTerminal display issues
Performance issues
Getting Debug Information
Manual API Testing
Test your API connection manually: