go-uber-style
Use this skill when writing Go code following the Uber Go Style Guide. Provides comprehensive guidance on idiomatic Go patterns, error handling, concurrency safety, performance optimization, and test-driven development. Covers all critical Uber Go rules including channel sizing, goroutine management, interface design, and proper error handling. Appropriate for any task involving .go files, Go code reviews, refactoring, or implementing Go best practices.
SKILL.md
| Name | go-uber-style |
| Description | Use this skill when writing Go code following the Uber Go Style Guide. Provides comprehensive guidance on idiomatic Go patterns, error handling, concurrency safety, performance optimization, and test-driven development. Covers all critical Uber Go rules including channel sizing, goroutine management, interface design, and proper error handling. Appropriate for any task involving .go files, Go code reviews, refactoring, or implementing Go best practices. |
LazyADO - An Azure DevOps Boards TUI
A terminal user interface (TUI) for Azure DevOps Boards.
Features
- Work items — Browse, search and filter by sprint, state, assigned, area, tags; sort by ID / Type / State.
- Quick search — Instantly jump to any work item by ID using Ctrl+F.
- Hierarchical view — PBIs / Bugs with expandable child tasks.
- CRUD — Create, edit, delete PBIs, Bugs and child tasks via modal forms.
- Assignments — Assign or unassign work items to team members using a searchable list.
- Comments — Add, edit, delete comments (supports @mentions).
- Work item info — Quickly copy work item ID or URL to clipboard via info modal.
- Integration helpers — Create a git branch from a work item (branch-name helper).
- Detail view — Fullscreen view showing metadata, description, acceptance criteria, tags and comments.
- Keyboard-driven UX — Modals for search/assign/branch/change-state/parent-selection; Vim-like navigation (j/k/g/G); panel switching and contextual help.
- Cross-platform — Works on Linux, macOS and Windows.
Installation
Install with Go
go install github.com/charlintosh/lazyado@latest
Then run with:
lazyado
Or build from source (Optional)
If you prefer to build from source:
go build -o lazyado .
sudo mv lazyado /usr/local/bin/
Get started
Create a config file at ~/.config/lazyado/config.yaml:
# Azure DevOps connection
organization: "my-organization"
project: "my-project"
team: "my-team"
# Authentication (or use AZURE_DEVOPS_PAT env variable)
pat: "your-personal-access-token"
# UI settings
theme: "default"
# Default filters at startup
defaults:
sprint: "current"
state: "all"
assigned: "me"
Environment Variables
| Variable | Description |
|---|---|
AZURE_DEVOPS_PAT | Personal Access Token (recommended) |
AZURE_DEVOPS_ORG | Organization (overrides config) |
AZURE_DEVOPS_PROJECT | Project (overrides config) |
AZURE_DEVOPS_TEAM | Team (overrides config) |
PAT Permissions
Your Personal Access Token needs these scopes:
Work Items (Read)- Read work itemsProject and Team (Read)- List sprints/iterations
Keyboard Shortcuts
Keyboard Shortcuts (canonical)
These shortcuts reflect the canonical internal/keys/keymap.go bindings used by the application.
Global / Panel
| Key | Description |
|---|---|
1 | Panel 1 / Sort by ID |
2 | Panel 2 / Sort by Type |
3 | Panel 3 / Sort by State |
4 | Panel 4 |
5 | Panel 5 |
6 | Panel 6 |
7 | Panel 7 |
Tab | Switch to next panel |
Shift+Tab | Switch to previous panel |
? | Show/hide help |
Ctrl+r | Reload data |
q / Ctrl+c | Quit |
Note: keys 1, 2, 3 are also used for sorting in some contexts (see Sort section).
Navigation
| Key | Description |
|---|---|
j / ↓ | Move down |
k / ↑ | Move up |
h / ← | Left / collapse |
l / → | Right / expand |
g | Go to first item |
G | Go to last item |
Actions
| Key | Description |
|---|---|
enter | Select / Open |
v | View fullscreen details |
/ | Search in filter panels |
Ctrl+f | Quick search by work item ID |
s | Change work item state |
n | Create new parent item (PBI/Bug) |
t | Create new child task (on PBI) |
e | Edit work item |
d | Delete work item |
c | Add comment (with @mentions) |
b | Create git branch |
a | Assign to user |
i | Show work item info (copy URL/ID) |
Modals & Confirmation
| Key | Description |
|---|---|
esc | Back / Close |
ctrl+s | Save / Submit in modals |
y / Y | Confirm |
left / right | Modal-only arrow navigation |
Sorting
| Key | Description |
|---|---|
1 | Sort by ID (contextual) |
2 | Sort by Type (contextual) |
3 | Sort by State (contextual) |
If a key has multiple meanings, the active context determines the action (panel vs list sort).
Work Item Creation/Editing
| Key | Description |
|---|---|
Tab | Switch input field |
Ctrl+S | Save/Submit form in modals |
Comments (when Comments panel is focused)
| Key | Description |
|---|---|
e | Edit selected comment |
d | Delete selected comment |
c | Add comment (from Work Items view) |
Status Messages
| Key | Description |
|---|---|
@ | Trigger user suggestions |
↑ / ↓ | Navigate suggestions |
Enter / Tab | Select user from suggestions |
Ctrl+S | Submit comment |
Esc | Cancel / Close suggestions |
Detail View
| Key | Description |
|---|---|
Esc / q | Back to main view |
c | Add comment |
j / k | Scroll (description, comments) |
The detail view displays:
- Work item metadata (type, state, ID, dates, etc.)
- Parent item (if any)
- Description
- Acceptance criteria (if present)
- Tags
- Comments with author and timestamp
Contributing
Taskfile
This repository includes a Taskfile.yml with convenient tasks for building, running, and debugging the app. Use the task CLI (https://github.com/go-task/task) to run them.
Examples:
# Build release binary
task build
# Run in dev mode
task dev
# Build with debug flags (runtime debug log)
task debug
# Install to PATH (requires sudo)
task install
See Taskfile.yml for details.
Debug logging
Enable debug logging with the -debug flag when running the binary. On Linux the debug output is written to a temporary file (for example /tmp/lazyado-debug.log):
lazyado -debug
Use this when reporting issues or investigating runtime behaviour.
Tech Stack
- Bubble Tea - TUI framework
- Bubbles - UI components
- Lip Gloss - Styling
- Viper - Configuration
Acknowledgements
This project is a fork of shcizo/devops-tui. Thanks to the original author(s) for their work and inspiration.
License
MIT