Skip to content

juliosuas/gitshiproom

Repository files navigation

🚢 GitShipRoom

Your private ship-room. Every PR. Every repo. One keyboard.

Stop drowning in tabs. Start shipping like it's your job — because it is.

Next.js Bun TypeScript Tailwind CSS shadcn/ui SQLite

License: MIT PRs Welcome Made by juliosuas Local-first

Every PR · Every issue · Every repo · One keyboard · Zero tabs.

WhyFeaturesQuick StartRoadmapStackCredits


💥 Why you need this

You're juggling 12 repos. You switched tabs 47 times today. Half the PRs you're supposed to review are buried in email. Your TODO list is spread across Notion, a sticky note, and ~/.notes-final-FINAL.md.

You're not slow. Your tooling is.

GitShipRoom is a local-first command center that pulls every PR, every issue, every pending task into one keyboard-driven dashboard running on your machine. No SaaS. No subscription. No data ever leaves localhost.

You are the orchestrator. GitShipRoom is your cockpit.

🔥 What's inside (v0.1)

Feature Description
📥 Unified PR Inbox Every PR that wants you, across every repo — review-requested, assigned, authored — in one list
⌨️ Keyboard-first j/k navigate · Enter open · a approve · R request changes · m merge · c copy Claude cmd · ? cheatsheet
📝 Pendientes Local SQLite TODO list, optionally linked to any PR/issue. Capture instantly with n
🐛 Issues view Open issues across your repos, grouped and filterable
🤖 Claude Code handoff One keypress copies a context-aware command for Claude Code
🔄 Live polling Inbox auto-refreshes every 60s; manual refresh on demand
🔐 100% local Your token, your machine, your data. Nothing leaves your box.

🛣️ The roadmap

GitShipRoom ships in waves. Each version is usable on its own — you get value at every step.

Version What ships Status
v0.1 PR inbox · issues · pendientes · copy Claude command 🚧 Building
v0.2 AI-drafted PR reviews — dictate intent, Claude redacts, you approve, ship 📅 Next
v0.3 🎨 Create/update PRs from the UI — AI writes title + body from your intent 📅 Planned
v0.4 📬 Gmail inbox + AI replies — same orchestrator flow, for email 📅 Planned
v0.5 🔔 Proactive cron — AI watches your repos and emails/calendars when something's urgent 📅 Planned
v0.6 🧙 Spawn Claude Code sessions from the UI — tmux, full context, one click 📅 Planned

🏃 Quick start

# Clone
git clone https://github.com/juliosuas/gitshiproom.git
cd gitshiproom

# Install (you need Bun — https://bun.sh)
bun install

# Configure
cp .env.example .env
# → open .env and paste your GitHub PAT

# Launch
bun run dev

Open http://localhost:3000 and let the cockpit take over.

🔑 GitHub PAT scopes

Create a classic token at github.com/settings/tokens/new with:

  • repo
  • read:org
  • read:user

Paste it into .env as GITHUB_TOKEN=ghp_….

🛠️ Built with

Runtime

Bun

Framework

Next.js

Language

TypeScript

UI

Tailwind shadcn

Local data

SQLite

GitHub

Octokit

Client state

SWR

Testing

Vitest Playwright MSW

Dev workflow

🧰 gstack (/ship, /qa, /health, /review)

🧪 Development

bun test           # unit + integration (Vitest + MSW)
bun run test:e2e   # Playwright E2E
bun run typecheck  # tsc --noEmit
bun run lint       # Next.js lint
bun run build      # production build

All green before you ship. Non-negotiable.

🏗️ Architecture

┌───────────────────────────────────────────────────┐
│        Browser  (http://localhost:3000)           │
│   React Server Components · SWR · shadcn/ui       │
└────────────────────────┬──────────────────────────┘
                         │ same-origin fetch
┌────────────────────────▼──────────────────────────┐
│            Next.js 16  (App Router)               │
│           API routes · Node runtime               │
│                                                   │
│   ┌──────────────┐          ┌─────────────────┐   │
│   │   Octokit    │          │ better-sqlite3  │   │
│   │   + TTL      │          │  (pendientes +  │   │
│   │   cache 30s  │          │    settings)    │   │
│   └──────┬───────┘          └─────────────────┘   │
└──────────┼────────────────────────────────────────┘
           │
     ┌─────▼─────┐
     │  GitHub   │
     │    API    │
     └───────────┘
  • 🧠 Server-side cache protects GitHub's 5 000 req/hr rate limit
  • 🔄 Client-side SWR polls every 60s with optimistic mutations
  • 💾 SQLite stores only what doesn't live on GitHub (pendientes, settings)
  • 🚫 No external services — no Redis, no Postgres, no cloud workers

📂 Project structure

gitshiproom/
├── app/              # Next.js App Router pages + API routes
│   ├── (pages)/      # inbox, issues, pendientes, settings, setup
│   └── api/          # /api/prs, /api/issues, /api/pendientes, /api/settings
├── components/       # UI (shadcn + custom)
├── lib/
│   ├── github/       # Octokit client, inbox, pr-detail, actions
│   └── db/           # SQLite client, pendientes, settings
├── hooks/            # React hooks (use-settings, …)
├── tests/
│   ├── unit/         # Vitest
│   ├── integration/  # API route tests with MSW
│   └── e2e/          # Playwright
└── docs/
    └── superpowers/  # Design specs + implementation plans
        ├── specs/
        └── plans/

🙌 Credits & acknowledgments

GitShipRoom stands on the shoulders of a lot of great open-source work. Shout-outs to:

Core stack

Testing & tooling

Workflow & inspiration

  • Claude Code by Anthropic — used as a pair-programming tool during spec and plan authoring
  • gstack — dev-loop skills (/ship, /review, /qa, /health, /investigate)
  • superpowers plugin — brainstorming / planning / subagent-driven workflows
  • GitHub — the platform we orchestrate
  • UX inspiration: Linear, Raycast, Warp — keyboard-first done right

The author

GitShipRoom is designed, architected, and built by Julio · @juliosuas.

If this saves you hours, a ⭐ on the repo is the best thank-you.

🤝 Contributing

GitShipRoom is MIT-licensed open source. Issues, PRs, and ideas welcome — especially once v0.1 lands.

If you fork it and build something awesome, tag me.

📜 License

MIT © juliosuas · 2026


Built with 💻, shipped with ⚡ — for developers who value their time.

Star this repo if GitShipRoom saves you a minute. It's designed to save hours.

About

Local PR command center — triage and act on GitHub PRs/issues with keyboard shortcuts. v0.1: inbox + issues + pendientes.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors