_ _ __ _(_)_ __ __ _(_) \ \ /\ / / | '_ \ _____ / _` | | \ V V /| | |_) |_____| (_| | | \_/\_/ |_| .__/ \__,_|_| |_|

What was I doing?

One command restores your context across all your git repos: recent activity, uncommitted work, unpushed commits. Plus a welcome-back brief from your own local LLM.

zero dependencies node โ‰ฅ18 local-first ยท ollama license: MIT
git clone https://github.com/L-ubu/wip-ai.git && cd wip-ai && npm link

# the monday-morning command

20+ repos. Back from lunch, a meeting marathon, or a long weekend. wip is the save-state loader for your brain.

$ wip โ–Ÿ wip ยท what was I doing? (19 repos scanned) REPO ACTIVE BRANCH STATE โ— wip-ai just now main โœŽ4 "feat: ollama brief" โ— Terminup 2d ago master โœŽ7 โ†‘2 "tup: slime codex" โ— jlr_mss 3d ago feat/vat โœŽ2 "fix: vat nullable" โ— flipper-portals 2w ago main "eu portals batch 2" โ— old-experiment 4mo ago main "wip: broken" โ€ฆ and 14 more (wip --all) โ–ธ pick up where you left off: wip-ai (~/Projects/wip-ai) uncommitted: bin/wip-ai.mjs, src/brief.mjs, README.md last commit: "feat: ollama brief" on main ๐Ÿค– welcome-back brief (ollama qwen2.5:7b) You were mid-way through the wip-ai Ollama integration. Pick up in src/brief.mjs, the prompt still needs tuning. Commit the working scanner before context-switching.

# features

Small tool, sharp edges.

multi-repo scan

Scans every git repo under your roots in parallel. 70 repos in about a second.

local-llm brief

Ollama writes a 3-line welcome-back: what you were doing, where to pick up, one next step. No cloud, no keys, no cost.

zero dependencies

Plain Node โ‰ฅ18 + git. Nothing to audit, nothing to break, nothing to update.

state at a glance

Uncommitted files โœŽ, unpushed commits โ†‘, stashes โš‘, stale repos in red. The truth about your WIP, finally visible.

--json output

Machine-readable everything. Pipe it into your own scripts, dashboards, or morning routine.

fails soft

No Ollama running? Everything except the brief works fine. It just tells you and moves on.

# commands

One binary, two names: wip and wip-ai.

commandwhat it does
wipscan repos, show recent activity + AI brief
wip --allshow every repo, not just the top 10
wip --no-aiskip the Ollama brief (faster)
wip --jsonmachine-readable output
wip --days 7only repos active in the last n days
wip --model llama3.2pick a different Ollama model
wip --path ~/workone-off extra directory to scan

# config

Optional. Lives at ~/.config/wip-ai/config.json.

{
  "roots": ["~/Projects", "~/sites"], // folders of repos (default: auto-detected)
  "extraRepos": ["~/dotfiles"],    // repos outside your roots
  "ignore": ["node_modules"],      // directory names to skip
  "model": "qwen2.5:7b",           // Ollama model for the brief
  "ai": true,                      // master switch for the brief
  "max": 10                        // rows shown by default
}

# why

Three honest reasons.

01

Context switching is expensive

Especially with ADD, especially with many side projects. Reloading "where was I" costs real time and energy. wip makes it one command.

02

Local-first means private

Your repo names and commit messages never leave your machine. The brief runs on your own Ollama model, offline if you want.

03

Uncommitted work is invisible until it hurts

Dirty repos, unpushed branches, forgotten stashes: wip surfaces all of it before you lose an evening of work to a clean install.