JOE DESIGNS

A dev shop in Albuquerque New Mexico.

Paca - A TUI for Time Tracking, Tasks & Invoicing

Filed under "code" on 2/13/26

I've been building a tool called Paca — a TUI (terminal user interface) app designed for freelancers and small teams who want to manage projects, track time, and handle invoicing without leaving the terminal.

As someone who lives in the terminal, I wanted something that fits into that workflow naturally. No browser tabs, no Electron apps eating up memory — just a fast, keyboard-driven interface that gets out of the way and lets you work.

What is Paca?

Paca is a terminal app built with TypeScript and Bun that brings together project management, time tracking, and invoicing in one place. It stores everything locally in SQLite, so it's offline-first and your data stays on your machine.

The interface uses vim-style navigation — j/k to move through lists, number keys to switch between views, and single-key shortcuts for common actions. If you're comfortable in vim or any terminal tool, you'll feel right at home.

Features

Dashboard — A quick overview of your projects, tasks, and time stats. Press 1 to get there from anywhere.

Task Management — Create tasks, set priorities, toggle completion with Space, and archive what you're done with. Press 2 for the task view.

Time Tracking — Start a timer with t, stop it with s. Attach descriptions and hourly rates to entries. Every second is tracked and grouped by project in the timesheet view.

Timesheets — View all your uninvoiced time grouped by project. Select entries with Space and press i to generate an invoice. Press 3 for timesheets.

Stripe Invoicing — Connect your Stripe account, link customers to projects, and create draft invoices directly from your time entries. No copy-pasting into spreadsheets.

Settings — Configure your business name, Stripe API key, timezone, and more. Press 5.

The Mac Menu Bar Extension

One of the more recent additions is a native macOS menu bar companion. It gives you quick access to start and stop timers without opening the full TUI — handy when you're deep in another app and just need to punch in or out.

It compiles a small Swift binary using Xcode Command Line Tools and runs as a lightweight background process. Enable it from settings or from the command line:

paca menubar enable

A Quick Look at Paca

Here's a walkthrough of the main TUI — navigating between views, creating tasks, tracking time, and generating invoices.

Tech Stack

Paca is built with:

  • Bun as the JavaScript runtime
  • @opentui/react for the terminal UI rendering
  • SQLite via libsql for local data storage
  • Prisma 7 as the ORM
  • Stripe API for invoicing
  • Swift for the macOS menu bar companion

Everything runs locally. There's no server, no account to create, no subscription. Just install and go.

Install

npm install -g pacatui
paca

Or with Bun:

bun install -g pacatui
paca

On first launch it creates a database at ~/.paca/paca.db and you're ready to start tracking.

What's Next

Paca is still early — currently at v0.1.16 — but it already handles the core workflow I need as a freelancer: organize projects, track time, send invoices. I'm actively working on it and would love feedback. Check out the repo on GitHub or install it and give it a spin.