@project88/standup
v0.1.1
Published
A CLI that reads your git history, branches, and integrations to generate a ready-to-paste standup summary.
Maintainers
Readme
standup
A CLI that reads your git history, branches, and integrations to generate a ready-to-paste standup summary — instantly, from the terminal.
Install
npm install -g @project88/standupOr run directly with npx:
npx @project88/standupDevelopment
git clone https://github.com/bloo-flip/standup.git
cd standup
npm install
npm run dev # runs the CLI via tsx
npm test # runs vitest
npm run build # compiles to dist/Quick Start
$ standup
┌ standup ─────────────────────────────────────────┐
Yesterday
• Refactored auth middleware to use JWT validation
• Fixed race condition in WebSocket reconnect logic
• Reviewed PR #142 — add rate limiting to /api/upload
Today
On branch: fix/ws-heartbeat-timeout
3 files modified · 1 file staged
Blockers
⚠ PR #138 open 4 days with no review
✓ No other blockers
└───────────────────────────────────────────────────┘Flags
| Flag | Description |
|------|-------------|
| --since <timeframe> | Time window for commits (default: "24 hours ago") |
| --author <name> | Override the git author name |
| --verbose | Show commit hashes and timestamps |
| --quiet | Suppress box chrome, print only summary text |
| --json | Output as JSON (shorthand for --format json) |
| --format <type> | Output format: text, json, or markdown |
| --no-color | Disable colored output (for piping) |
| --no-github | Skip GitHub integration |
| --no-linear | Skip Linear integration |
| --no-jira | Skip Jira integration |
| --repos <paths> | Comma-separated repo paths for multi-repo mode |
| --ai | Enable AI summarization (requires OPENAI_API_KEY) |
| --ai-prompt <prompt> | Custom prompt for AI summarization |
| --exec <command> | Pipe output to a shell command |
| --webhook <url> | POST output as JSON to a URL |
| --dry-run | Show what hooks would do without executing |
| -v, --version | Display the current version |
| -h, --help | Display help with examples |
GitHub Setup
The CLI automatically detects GitHub credentials via:
GITHUB_TOKENenvironment variableghCLI authentication (gh auth token)
If no token is found, GitHub data is silently skipped. Use --no-github to explicitly disable.
Linear Setup
Set the LINEAR_API_KEY environment variable. The CLI fetches issues assigned to you (closed, moved, in-progress, blocked) within the time window. Use --no-linear to disable.
Jira Setup
Set these environment variables:
| Variable | Description |
|----------|-------------|
| JIRA_URL | Your Jira instance URL (e.g. https://yourteam.atlassian.net) |
| JIRA_TOKEN | API token from id.atlassian.com |
| JIRA_EMAIL | Your Atlassian account email |
Use --no-jira to disable.
Configuration
Generate a config file:
standup init # creates .standuprc in the current directorySupported config options (.standuprc, .standuprc.json, .standuprc.yaml):
| Option | Type | Description |
|--------|------|-------------|
| since | string | "24h", "last-working-day", or any git timeframe |
| format | string | text, json, or markdown |
| author | string | Override git author name |
| verbose | boolean | Show hashes/timestamps by default |
| quiet | boolean | Suppress box chrome by default |
| exclude_branches | string[] | Branches to exclude |
| repos | string[] | Paths to aggregate across multiple repos |
| ai.provider | string | AI provider (openai) |
| ai.model | string | Model name (default: gpt-4o-mini) |
| ai.api_key_env | string | Env var for API key (default: OPENAI_API_KEY) |
| hooks.exec | string | Shell command to pipe output to |
| hooks.webhook | string | URL to POST output to |
CLI flags always override config file values.
Tech Stack
- Language: TypeScript (Node.js)
- CLI Framework: Commander
- Config: Cosmiconfig
- Integrations: Octokit (GitHub), @linear/sdk (Linear), Jira REST API
- AI: OpenAI SDK
- Output: Chalk, Ora
- Testing: Vitest
- Distribution: npm (
@project88/standup)
Environment Variables
| Variable | Required By | Description |
|----------|-------------|-------------|
| GITHUB_TOKEN | GitHub | Personal access token (or use gh auth) |
| LINEAR_API_KEY | Linear | Linear API key |
| JIRA_URL | Jira | Jira instance URL |
| JIRA_TOKEN | Jira | Jira API token |
| JIRA_EMAIL | Jira | Atlassian account email |
| OPENAI_API_KEY | AI | OpenAI API key for --ai flag |
All integrations are optional — missing credentials are silently skipped.
Docs
- CHANGELOG.md — Release history
- CONTRIBUTING.md — Development guide
- IMPLEMENTATION.md — Sprint roadmap
- STANDUP.md — Original idea document
License
MIT
