A terminal user interface for Linear project management
Project description
linear-term
A terminal user interface for Linear project management. Manage issues, triage your inbox, and track projects without leaving the terminal.
Features
- 3-panel TUI: Navigate projects/cycles in the sidebar, browse issues in the list, and view details in the right panel
- Kanban board: Visual board view grouped by workflow state
- Triage workflow: Dedicated mode for processing untriaged issues with quick actions
- CLI commands: Scriptable interface for listing, viewing, creating, and searching issues
- Offline-ready: SQLite cache for instant startup and offline browsing
- Themeable: 9 built-in color schemes
Installation
pip install -e .
Configuration
API Key
Set your Linear API key via environment variable:
export LINEAR_API_KEY=lin_api_xxxxx
Or create a config file at ~/.config/linear-term/config.yaml:
api_key: lin_api_xxxxx
Full Configuration Example
api_key: $LINEAR_API_KEY # Uses env var
appearance:
theme: material-dark # See themes below
layout:
sidebar_width: 28
detail_panel_width: 40
show_detail_panel: true
show_sidebar: true
defaults:
view: my-issues # Starting view
sort_by: priority # priority, status, updated, created
sort_order: asc
columns: # Issue list columns
- identifier
- title
- status
- priority
- assignee
kanban:
columns: # Custom column order (empty = all states)
- Backlog
- Todo
- In Progress
- In Review
- Done
hide_done: false # Hide completed/canceled
cache:
ttl_minutes: 30
editor:
command: vim # For editing descriptions (defaults to $EDITOR)
Available Themes
material-dark (default), gruvbox-dark, linear, dracula, nord, solarized-dark, catppuccin-mocha, one-dark, tokyo-night
Usage
Interactive TUI
Launch the full terminal interface:
linear-term
The TUI provides three main views:
- List view: Traditional issue list with sortable columns
- Kanban view: Board layout grouped by status (press
bto toggle) - Triage view: Process untriaged issues from your inbox
CLI Commands
Use standalone commands for quick operations or scripting:
# List issues
linear-term list # All issues (20 max)
linear-term list --mine # Only issues assigned to you
linear-term list --limit 50 # Specify max results
linear-term list --json # Output as JSON
# View issue details
linear-term view ENG-123 # By identifier
linear-term view ENG-123 --json # JSON output
# Create issues
linear-term create "Fix login bug"
linear-term create "Add feature" --description "Details here"
linear-term create "Task" --team Engineering --priority high
# Search
linear-term search "auth bug"
linear-term search "payment" --limit 10 --json
Command Reference
| Command | Aliases | Description |
|---|---|---|
list |
ls |
List issues |
view |
show |
View issue details |
create |
new |
Create a new issue |
search |
— | Search issues |
Common Options
| Option | Commands | Description |
|---|---|---|
--json |
all | Output as JSON for scripting |
--limit N |
list, search | Maximum results (default: 20) |
--mine |
list | Only your assigned issues |
--team NAME |
create | Target team name or key |
--priority LEVEL |
create | urgent, high, medium, low, none |
--description TEXT |
create | Issue description |
Development
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Lint
ruff check src/
# Format check
ruff format --check src/
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file linear_term-0.1.0.tar.gz.
File metadata
- Download URL: linear_term-0.1.0.tar.gz
- Upload date:
- Size: 76.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3cac9067f62a536c6f4d2e9c507f3e8b58c6f178016696dc71d1905a4a2ded03
|
|
| MD5 |
580495954944773ca7bca4b984ec306b
|
|
| BLAKE2b-256 |
2d89072736b1bca7e837e520245527f10603dedddb70cc933a8a81f193e59574
|
File details
Details for the file linear_term-0.1.0-py3-none-any.whl.
File metadata
- Download URL: linear_term-0.1.0-py3-none-any.whl
- Upload date:
- Size: 75.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
721fd2b655ceeaad8d748f7f8dd55f5b9b49c14c5016dc4d57b5a383ccb0c76e
|
|
| MD5 |
65021db0bdc37f342e13d12b8c6498ab
|
|
| BLAKE2b-256 |
70ce7f79d20bc4d06667c8ae527e640bc5ad25527f2d366b20608abc5107e639
|