https://github.com/nlamirault/ltui
A TUI client for managing Linear issues and projects
https://github.com/nlamirault/ltui
google-cloud ratatui rust tui
Last synced: about 2 months ago
JSON representation
A TUI client for managing Linear issues and projects
- Host: GitHub
- URL: https://github.com/nlamirault/ltui
- Owner: nlamirault
- License: apache-2.0
- Created: 2025-10-16T16:19:26.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2026-03-18T01:44:41.000Z (3 months ago)
- Last Synced: 2026-03-18T06:59:11.459Z (3 months ago)
- Topics: google-cloud, ratatui, rust, tui
- Language: Rust
- Homepage: https://github.com/nlamirault/g1c
- Size: 169 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Citation: CITATION.cff
- Codeowners: CODEOWNERS
- Security: SECURITY.md
- Dco: DCO
Awesome Lists containing this project
README
# ltui
A Terminal UI for Linear - A TUI client for managing Linear issues and projects.
## Features
- 🚀 **Fast Terminal Interface**: Navigate Linear issues, projects, and teams with keyboard shortcuts
- 📋 **Issue Management**: View, browse, and manage Linear issues
- 👥 **Team Support**: Switch between teams and view team-specific data
- 🎯 **Project Tracking**: Browse and monitor project progress
- âš¡ **Real-time Updates**: Auto-refresh data to stay up to date
- 🎨 **Intuitive UI**: Clean, responsive interface inspired by k9s and similar tools
## Installation
### Prerequisites
- Rust 1.70+ installed
- Linear Personal API Key (not OAuth2)
### Build from source
```bash
git clone https://github.com/nlamirault/ltui
cd ltui
cargo build --release
```
The binary will be available at `target/release/ltui`.
## Configuration
### Personal API Key
You can provide your Linear Personal API Key in several ways:
1. **Environment variable**: `export LINEAR_API_KEY="your-api-key-here"`
2. **Command line argument**: `ltui --apikey your-api-key-here`
3. **Config file**: Set `api_key` in `~/.config/ltui/config.toml`
### Configuration File
ltui creates a configuration file at `~/.config/ltui/config.toml` with the following default settings:
```toml
refresh_interval = 30
default_team_id = ""
[theme]
primary_color = "blue"
secondary_color = "cyan"
background_color = "black"
text_color = "white"
```
## Usage
```bash
# Run with token from environment variable
LINEAR_API_KEY="your-apikey" ltui
# Run with token as argument
ltui --apikey your-apikey
# Show help
ltui --help
```
## Keyboard Shortcuts
### Navigation
- `Tab`/`Shift+Tab` - Switch between views
- `j`/`k` or `↓`/`↑` - Navigate up/down in lists
- `1`/`2`/`3` - Jump to Issues/Projects/Teams view
- `Enter` - Select item (e.g., switch to team's issues)
### Actions
- `r` - Refresh current view
- `?` - Toggle help screen
- `q` or `Ctrl+C` - Quit application
### Views
#### Issues View (1)
- Browse team issues with priority indicators
- View issue details including assignee, status, and description
- Color-coded priorities and states
#### Projects View (2)
- Browse team projects
- View project details including lead, status, and target dates
- Track project progress
#### Teams View (3)
- Browse all available teams
- Select a team to view its issues and projects
- View team descriptions and keys
## API Permissions
ltui requires a Linear Personal API Key with the following permissions:
- Read issues
- Read projects
- Read teams
- Read users
You can create a Personal API Key in your Linear account settings under "API" → "Personal API keys".
## Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgments
- Inspired by [k9s](https://github.com/derailed/k9s) for Kubernetes
- Built with [Ratatui](https://github.com/ratatui-org/ratatui) for the terminal UI
- Uses [Linear's GraphQL API](https://linear.app/developers/graphql) for data access