CLI Reference
The scraut CLI provides quick terminal shortcuts for common daily tasks. Install it once, use it every day.
Installation
pip install -r apps/automation/requirements.txt
The scraut command becomes available after installation.
Commands
scraut init
Interactive first-time setup wizard.
scraut init
What it does:
- Asks 9 questions about your team configuration
- Writes
workspace/scraut.yml - Creates
workspace/and.scraut/directory skeletons - Scaffolds template files (standup, retro, meta, capacity, OKR, customer feedback, milestones)
- Optionally creates GitHub labels (if
GITHUB_TOKENis set) - Prints the secrets checklist and next steps
Example session:
====================================================
Scraut Setup Wizard
====================================================
GitHub repository (org/repo): myorg/my-repo
Team member GitHub logins (comma-separated): alice,bob
Product owner login [alice]: alice
Scrum master login [alice]: bob
Slack channel [#scraut-bot]: #scraut-bot
Sprint length in days [14]: 14
Timezone (IANA format, e.g. UTC, Asia/Jakarta) [UTC]: Asia/Jakarta
LLM provider (anthropic, openai, gemini, ollama) [anthropic]: anthropic
Slack webhook URL (optional, Enter to skip):
scraut standup
Opens today's standup file in GitHub's web editor.
scraut standup
# or, to just print the URL:
scraut standup --no-browser
What it does:
- Reads
workspace/scraut.ymlto get current sprint number - Detects your GitHub login from the authenticated token
- Constructs the file URL:
github.com/org/repo/edit/main/workspace/sprint/NN/standup/DATE/login.md - Opens it in your browser (or prints the URL with
--no-browser)
Options:
--browser / --no-browser Open in browser (default) or print URL
scraut status
Shows current sprint health at a glance.
scraut status
Output includes:
- Sprint number and goal (from
workspace/sprint/NN/meta.md) - Story point progress
- Active milestone health (from
.scraut/milestones/*/health/forecast.md) - Active suggestions (from
.scraut/suggestions/active/)
Example output:
==================================================
Sprint 01 Status
==================================================
# Sprint 1
- Period: 2026-05-25 → 2026-06-07
- Goal: Deliver user authentication and basic dashboard
- Committed: 34 story points
Milestone: v1.0
Status: On track
Forecast: 2026-08-24
2 active suggestion(s):
• Blockers are going unresolved for > 2 days
• PR review cycle averaging 4 days
==================================================
scraut blocker
Adds a blocker to today's standup file.
scraut blocker "Waiting for API credentials from platform team — blocked on #28"
What it does:
- Finds today's standup file for your login
- Replaces
Nonein the## Blockerssection with your text - Saves the file locally (you still need to commit and push)
Example:
scraut blocker "Design mockup for profile page needed before I can continue #31"
# Output: ✓ Blocker added to alice.md
# 'Design mockup for profile page needed before I can continue #31'
#
# Remember to commit and push: git add . && git commit -m 'standup: blocker [skip ci]' && git push
scraut sync
Syncs the workspace folder structure with workspace/scraut.yml. Run this after any config change that affects workspace layout.
scraut sync
# preview without writing anything:
scraut sync --dry-run
What it does:
- Creates today's standup file for any team member who doesn't have one yet
- Creates a retro file for any member who doesn't have one for the current sprint
- Creates sprint folder structure (
standup/,retrospective/,grooming/,decisions/,adr/) if it doesn't exist - Creates
.scraut/sprint/NN/output dirs if missing - Creates
meta.mdandgrooming/backlog-ideas.mdif missing
What it does NOT do:
- Never overwrites files that already exist (safe to run repeatedly)
- Does not create GitHub milestones (use the sprint-planning workflow for that)
- Does not require
GITHUB_TOKEN
Common scenarios:
# Added a new team member to scraut.yml mid-sprint
scraut sync
# → creates their standup file for today and their retro file
# Just changed current_sprint in scraut.yml after sprint transition
scraut sync
# → creates the sprint/NN/ folder structure for the new sprint number
# Check what sync would do without actually doing it
scraut sync --dry-run
Options:
--dry-run Print what would be created without writing any files
scraut sprint
Sprint management shortcuts.
scraut sprint status # show current sprint number and date range
scraut sprint scaffold # alias for scraut sync
scraut sprint repad <N> # widen sprint folder padding to N digits
scraut sprint repad <N> --dry-run # preview what repad would rename
scraut sprint status output:
Current sprint: 001
Period: 2026-06-09 → 2026-06-22
Folder: workspace/sprint/001/
Padding: 3 digits
Today: 2026-06-10
scraut sprint repad
Widens the zero-padding width used for sprint folder names and renames all existing workspace/sprint/NNN/ and .scraut/sprint/NNN/ directories to the new width.
# Preview without making changes
scraut sprint repad 4 --dry-run
# Apply — renames sprint/001/ → sprint/0001/, etc.
scraut sprint repad 4
Validation rules:
- New padding must be greater than the current padding (widening only — narrowing breaks lexicographic sort order)
- New padding must fit the current sprint number (e.g. sprint 1000 requires at least 4 digits)
After running repad, Scraut prints the GitHub CLI commands to rename the matching sprint labels (e.g. sprint-001 → sprint-0001) and the git commit command to push the renamed folders.
scraut velocity
Shows sprint velocity data.
scraut velocity
# or for a specific sprint:
scraut velocity --sprint 3
Options:
--sprint INTEGER Sprint number (default: current sprint)
Example output:
Sprint 03: 28 / 34 sp (82%)
Rolling average: 30 sp/sprint (σ=4, 3 sprints sampled)
What it shows:
- Completed vs. planned story points for the sprint
- Completion rate percentage
- Rolling average velocity (last 5 sprints)
- Standard deviation (consistency metric)
- Number of sprints sampled
Global options
scraut --version # Print the installed version
scraut --help # Show help for any command
scraut COMMAND --help # Show help for a specific command
Running scripts directly
All automation scripts also accept --help, --dry-run, and --config flags:
# Preview what standup summary would do without making changes
python apps/automation/scraut/scrum/standup/generate_summary.py --dry-run
# Use an alternative config file
python apps/automation/scraut/scrum/sprint/create_sprint.py \
--config /path/to/alt-scraut.yml \
--sprint 2 \
--repo myorg/my-repo
# Preview sprint planning without creating issues
python apps/automation/scraut/scrum/sprint/plan_sprint.py \
--dry-run \
--sprint 2 \
--repo myorg/my-repo