Skip to content

Repository files navigation

⚡ GitHub Work Summory

Generate structured, evidence-based project descriptions from GitHub repositories for portfolios and resumes.

Features

  • Four writing personalities: Portfolio Builder, Professional, Resume Impact, and Technical Brief.
  • Three AI engines: OpenAI-compatible APIs, Codex CLI, and Claude Code CLI.
  • Manifest-aware stack detection: Reads package manifests, dependencies, workspaces, config files, languages, topics, and lockfiles to identify the important technologies.
  • GitHub About metadata: Uses the repository's About description and homepage without guessing a public website from README content.
  • Real default-browser authentication: Git Credential Manager opens GitHub in the Windows default browser and reuses its normal signed-in profile.
  • Public and private repositories: Quick public URL mode plus authenticated batch processing.
  • Structured output: Produces a stable portfolio-ready JSON contract.

Quick Start

git clone https://github.com/Aziz-AXG/github-work-summory
cd github-work-summory
pnpm install
cp .env.example .env
pnpm start

Run pnpm start or npx github-work-summory, then choose:

  1. Authentication — log in to GitHub, log out, or switch accounts.
  2. Generation Settings — choose the active personality and AI engine.
  3. Summarize My Repos — select multiple repositories from your authenticated GitHub account.
  4. Quick Summary — automatically use the active GitHub session when available, or continue anonymously for a public repository URL.

Generation Settings remain active until the CLI exits. Environment variables set the defaults for the next launch.

Writing Personalities

Personality Style
portfolio First-person, ownership-led copy inspired by a polished developer portfolio. This is the default.
professional Balanced, neutral professional prose.
resume Concise action-and-outcome framing without invented metrics.
technical Architecture, integrations, data flow, and engineering decisions.

The personality changes only description and summary. Technologies, category, GitHub metadata, and other factual fields remain evidence-controlled.

AI Engines

OpenAI-compatible API

The API engine uses the Vercel AI SDK and works with LM Studio, OpenRouter, and other OpenAI-compatible endpoints:

AI_BACKEND=api
AI_BASE_URL=http://localhost:1234/v1
AI_API_KEY=lm-studio
AI_MODEL=default

Some compatible servers do not support native structured output. Set AI_STRUCTURED_OUTPUT=0 to request raw JSON and validate it locally.

Codex CLI

Install and authenticate the Codex CLI, then select it under Generation Settings or set:

AI_BACKEND=codex
CODEX_MODEL=
codex login
codex login status

The app runs codex exec ephemerally in an isolated temporary directory with a read-only sandbox and a JSON output schema. It reuses the CLI's existing authentication; no API key is copied into this project.

Claude Code CLI

Install and authenticate Claude Code, then select it under Generation Settings or set:

AI_BACKEND=claude
CLAUDE_MODEL=
claude auth login
claude auth status

The app uses non-interactive bare mode, disables tools, disables session persistence, and validates the returned structured output.

CLI invocations default to a five-minute timeout. Override it with AI_CLI_TIMEOUT_MS.

GitHub Authentication and Browser Selection

Login and Switch Account use Git Credential Manager, which opens GitHub through the Windows default-browser handler. This means Helium, Chrome, Edge, or another configured default browser uses its normal profile and existing GitHub session. The CLI stores the resulting GitHub credential through Git Credential Manager; it does not read, copy, or automate your personal browser cookies.

Git for Windows includes Git Credential Manager. You can verify it with:

git credential-manager --version

Puppeteer is still used in a separate, non-authenticated profile when public webpage context needs to be inspected. On Windows it uses the operating system's current default HTTPS browser executable instead of requiring a hard-coded Chrome installation. Override its executable only when needed:

BROWSER_EXECUTABLE_PATH=C:\Path\To\browser.exe

BROWSER_EXECUTABLE_PATH takes priority over the detected system default. PUPPETEER_HEADLESS applies only to background public-page inspection; it cannot make Login or Switch Account headless because those actions are handled by your actual default browser.

Technology Detection

The repository reader always loads the root package.json before AI exploration. For monorepos, it follows workspace patterns and reads a bounded number of nested manifests. Technology evidence is ranked from:

  • runtime, regular, optional, peer, and development dependencies;
  • package manager and engine declarations;
  • TypeScript, Docker, Bun, pnpm, and other config/lockfile signals;
  • repository languages and topics;
  • important source integrations such as GitHub API, Vercel AI SDK, Puppeteer, and CLI frameworks.

Incidental formatting, linting, type-only, and terminal-decoration packages are suppressed. The final result contains up to eight primary technologies.

Output Format

Files are written to ./summaries/Summary_YYYY-MM-DD_HHmmss.json:

{
  "generatedAt": "2026-07-29T12:00:00.000Z",
  "tool": "github-work-summory",
  "totalRepos": 1,
  "summaries": [
    {
      "id": "githubworksummory",
      "name": "github-work-summory",
      "description": "An AI-powered CLI tool I built to generate structured project summaries from GitHub repositories.",
      "summary": "I developed this application to streamline project documentation for resumes and portfolios. It reads repository metadata and important project files, then uses a selected AI engine to produce a validated project record.",
      "technologies": [
        "TypeScript",
        "Node.js",
        "Vercel AI SDK",
        "GitHub API",
        "CLI Development",
        "pnpm"
      ],
      "projectType": "Command Line Tool / Utility",
      "complexity": "intermediate",
      "repoUrl": "https://github.com/Aziz-AXG/github-work-summory",
      "website": null,
      "createdAt": "2026-06-02T17:01:43Z",
      "visibility": "public",
      "featured": false,
      "category": "Node"
    }
  ]
}

featured intentionally defaults to false because portfolio featuring is a manual curation decision. category is one of Node, Next/React, Expo/Mobile, CLI/Utility, or Other.

Development

pnpm run build
pnpm test
pnpm run check

Tests cover personalities, output mapping, manifest analysis, category precedence, workspace discovery, GitHub About homepage extraction, and both CLI adapters.

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages