DEV Community

Cover image for Rekall — A Context Recovery CLI That Uses GitHub Copilot as Its AI Brain
Jasmin Virdi
Jasmin Virdi

Posted on

Rekall — A Context Recovery CLI That Uses GitHub Copilot as Its AI Brain

GitHub Copilot CLI Challenge Submission

This is a submission for the GitHub Copilot CLI Challenge

What I Built

Rekall is a zero-config CLI that helps developers recover context after meetings, breaks, and context switches. Instead of piecing together git status, git log, and git stash list every time you sit back down — you type one word: rekall

Rekall collects your entire project state — branch, commits, uncommitted changes, stashes, TODOs, FIXMEs — and sends it to GitHub Copilot CLI as a structured prompt. Copilot acts as the AI analysis engine, synthesizing raw data into a concise summary, suggested next step, and blockers.

Most projects use Copilot to write code. Rekall uses Copilot to power the product — four commands, each with its own Copilot touchpoint:

  • rekall context — Copilot synthesizes your project state into summary, next step, and blockers
  • rekall pr — Copilot analyzes PR changes with risk assessment and review questions
  • rekall explain — Copilot explains your recent commits in natural language
  • rekall suggest — Copilot generates commit messages or branch names from your changes

The tool is built in TypeScript (strict mode), has 42 passing unit tests, only 2 runtime dependencies, and works with or without Copilot installed — gracefully falling back to intelligent rule-based analysis.

Demo

GitHub: https://github.com/Jasmin2895/rekall
npm package link: https://www.npmjs.com/package/rekall-cli
npm: npm install -g rekall-cli
Try instantly: npx rekall-cli

Rekall with Github Copilot CLI
rekall with cli

rekall pr with cli

Rekall without Github Copilot CLI
rekall without cli

rekall pr without cli


$ rekall explain              # Copilot explains your recent work
$ rekall suggest              # AI commit message suggestions
$ rekall suggest "add dark mode" --type branch  # Branch name suggestions
$ rekall --format json | jq '.analysis'         # JSON for scripting
Enter fullscreen mode Exit fullscreen mode

Quick Test

cd any-git-repo
npx rekall-cli
npx rekall-cli explain
npx rekall-cli suggest "your feature idea" --type branch
Enter fullscreen mode Exit fullscreen mode

Requirements: Node.js 18+, Git. Optional: gh CLI for PR mode, gh extension install github/gh-copilot for AI-powered analysis.

My Experience with GitHub Copilot CLI

Rekall doesn't just use Copilot CLI during development — it uses Copilot CLI as the product itself. Every command pipes collected project data into gh copilot and parses what comes back. That's the entire architecture.

When you run rekall, your git state and code issues get packed into a prompt and sent to Copilot CLI via execute command. The response is parsed into sections — SUMMARY, NEXT_STEP, BLOCKERS — and rendered as clean terminal output. All four commands follow this same pipeline.

app flow

If Copilot isn't installed, Rekall doesn't break. It falls back to a rule-based engine that prioritizes FIXMEs, scores PR risk by file type, and generates commit messages from conventional patterns. It works — but Copilot's output is noticeably better. The tool tells you which mode you're in so there's no guessing.

Building With Copilot CLI

The most useful part of Copilot CLI during development was testing my own prompts. I'd run gh copilot explain with different prompt structures directly in the terminal, see what came back, tweak the wording, and repeat — before writing any parsing code. That saved me from a lot of trial-and-error.

It also caught a shell escaping issue I would've missed. I was passing raw project data (file paths, commit messages) into the prompt string, and Copilot helped me think through what characters could break the shell command. That's how the escaping logic ended up covering backslashes, quotes, dollar signs, and backticks.

It was an overall great learning experience thanks to Dev and Github Team for organising it. 👩‍💻

Top comments (0)