pacatui
v0.1.22
Published
A simple tui app for task, timer and invoicing for projects.
Maintainers
Readme
Paca

A simple TUI app for task, timer and invoicing for projects.
Features
- Project Management - Organize tasks by projects with color coding
- Task Tracking - Create, edit, and manage tasks with priorities and statuses
- Time Tracking - Start/stop timers with descriptions and hourly rates
- Timesheets - View uninvoiced time entries grouped by project
- Stripe Invoicing - Create draft invoices directly from time entries
- Invoice Management - View and manage all your Stripe invoices
- Dashboard - Overview of projects, tasks, and time stats
- Reports - Weekly/monthly hour & earnings analytics, trends, client and project breakdowns, work patterns
- Menu Bar - Native macOS menu bar companion for quick timer control
- Offline-first - All data stored locally in SQLite
- Vim-style Navigation - Keyboard-driven interface
Installation
Via npm (recommended)
npm install -g pacatui
pacaVia bun
bun install -g pacatui
pacaFrom source
git clone https://github.com/wes/paca.git
cd paca
bun install
bun run startUsage
Simply run:
pacaOn first run, Paca will automatically create its database at ~/.paca/paca.db.
Keyboard Shortcuts
Global
| Key | Action |
|-----|--------|
| 1 | Dashboard |
| 2 | Tasks |
| 3 | Timesheets |
| 4 | Invoices |
| 5 | Reports |
| 6 | Settings |
| ? | Help |
| t | Start timer |
| s | Stop timer (when running) |
| q | Quit |
Navigation
| Key | Action |
|-----|--------|
| j / ↓ | Move down |
| k / ↑ | Move up |
| Tab | Switch panels |
| Enter | Select/Confirm |
| Esc | Cancel/Go back |
Reports
| Key | Action |
|-----|--------|
| ← / → or h / l | Previous/next report |
| [ / ] | Previous/next report |
| j / k or ↑ / ↓ | Scroll |
| PgUp / PgDn | Page through a report |
| r | Recalculate |
Projects & Tasks
| Key | Action |
|-----|--------|
| n | Create new |
| e | Edit |
| d | Delete |
| Space | Toggle task status |
| p | Cycle priority |
| a | Archive/Unarchive project |
| A | Toggle show archived |
| c | Link customer to project |
Timesheets
| Key | Action |
|-----|--------|
| Space | Select entry for invoicing |
| e | Edit time entry |
| d | Delete time entry |
| i | Create invoice from selected |
Invoices
| Key | Action |
|-----|--------|
| Enter | Open invoice in browser |
| r | Refresh list |
| ] | Next page |
| [ | Previous page |
Configuration
Settings
Access settings by pressing 6:
- Business Name - Your business name for invoices
- Stripe API Key - Enable invoicing features
- Timezone - Set display timezone (or auto-detect)
- Menu Bar - Toggle the macOS menu bar companion
- Export/Import - Backup and restore your data
Data Location
- Database:
~/.paca/paca.db - Backups:
~/.paca/backups/
Menu Bar (macOS)
Paca includes a native macOS menu bar companion that shows your running timer and lets you start/stop timers without opening the TUI.
Enable via Settings
- Press
5to open Settings - Select Menu Bar and press
Enterto toggle it on
Enable via CLI
paca menubar enable # Compile & launch
paca menubar disable # Stop & remove
paca menubar status # Show current statusThe first time you enable it, Paca compiles a small native Swift helper binary (requires Xcode Command Line Tools). The paca mascot icon appears in your menu bar with live timer status.
Requires: Xcode Command Line Tools (xcode-select --install)
Stripe Integration
To enable invoicing:
- Get your Stripe API key from dashboard.stripe.com/apikeys
- Press
5to go to Settings - Add your Stripe Secret Key
- Link customers to projects using
cin the Projects view - Create invoices from the Timesheets view
Tech Stack
- Runtime: Bun
- TUI Framework: @opentui/react
- Database: SQLite via libsql
- ORM: Prisma 7
- Payments: Stripe API
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
License
MIT - see LICENSE for details.
