All your
projects,
one name.

You have projects scattered across ~/work, ~/personal, ~/clients · hawk registers them all by name. One command to jump anywhere. One command to check GitHub and Vercel.

$npm install -g hawk-cli

Node 18+  ·  Then run eval "$(hawk shell-init)" once to enable hawk cd and tab complete  ·  npmjs.com/package/hawk-cli →

zsh · hawk
~ $ hawk scan ~/projects ✓ acme-frontend ~/projects/acme-frontend ✓ api-service ~/work/api-service ✓ design-system ~/work/design-system ✓ my-portfolio ~/personal/my-portfolio ───────────────────────────────────────────── 4 projects registered ~ $ hawk dashboard NAME CI DEPLOY ───────────────────────────────────────────── acme-frontend ● passing ▲ live api-service ⚠ 2 open PRs ▲ live design-system ● passing - my-portfolio - ▲ live ~ $ hawk cd acme-frontend acme-frontend $

Fixes the friction
you've accepted.

Every feature is a direct answer to something annoying that happens every day.

No more path hunting

You know the project exists · somewhere in ~/work or ~/clients. Type hawk cd acme from anywhere and you're there.

Personal, work, client · separated

Stop juggling GitHub tokens. Profiles store each set of credentials. hawk sync --profile work pulls only your work repos.

Status without a browser

Open PRs, CI pass/fail, last commit, and your live Vercel URL · all from one command. No tabs, no clicking around.

All projects in one table

hawk dashboard shows every project · path, GitHub status, Vercel deploy · in a single table. Select any row to drill in.

Register everything in one scan

Run hawk scan ~/projects once. hawk walks the tree, finds every project, and adds them. You never touch it again.

Tab completes project names

Press Tab after hawk cd and your shell lists every project. Works in zsh and bash · no memorising names.

Before & after

What changes.

Same projects. Completely different experience.

Without hawk
😵
Remember which folder a project is buried in · was it ~/work/clients/acme or ~/projects/acme-frontend?
🔁
Switch GitHub accounts manually, update tokens in .env files, or log in and out of the CLI.
🌐
Open a browser, navigate to GitHub to check PRs and CI, then another tab for Vercel to find the deploy URL.
📋
Maintain a Notion doc or spreadsheet to track all active projects.
⌨️
Type long, error-prone paths every time you cd into a project.
With hawk
⚡
hawk cd acme · jump to any project by name, from anywhere.
🔑
hawk sync --profile work · named profiles keep credentials separate. Personal, work, client.
📊
hawk status acme · PRs, CI, last commit, and Vercel URL in the terminal. One command.
🗂️
hawk dashboard · a live table of every project. Select any to drill in. No spreadsheet.
🔍
hawk scan ~/projects once · hawk finds everything. Tab-complete fills names from then on.

All commands.

Run hawk --help or hawk <command> --help for details on any command.

Setup
hawk init
Create a .hawk file in the current directory
hawk scan [dir]
Walk a directory tree and register all projects
hawk add
Manually register a project by path
hawk sync
Pull repos from GitHub + deployments from Vercel
hawk edit <name>
Open a project's .hawk file in your editor
Navigation
hawk list
List all registered projects
hawk cd <name>
Jump to a project directory by name
hawk open <name>
Open in editor, GitHub, Vercel, or run dev server
hawk dashboard
Terminal table of all projects with drill-down
Status
hawk status [name]
Open PRs, CI status, and last commit
hawk hosting [name]
Vercel deployments · URL, last deploy, branch
Profiles & shell
hawk profile add
Add a named profile with GitHub + Vercel tokens
hawk profile list
List all configured profiles
hawk shell-init
Print shell snippet · or --install to auto-add to .zshrc

Install.
Then never hunt
for a path again.

Under a minute to set up. Works with every project you already have.

$npm install -g hawk-cli

Read the intro post →