git status shows you what changed. wit shows you what matters.
Run wit with no arguments:
Context Detection
wit infers what you’re working on from:Branch Names
| Pattern | Detected Context |
|---|---|
feature/user-auth | feature: user auth |
fix/login-bug | fixing: login bug |
refactor/api-cleanup | refactoring: api cleanup |
docs/readme-update | documentation: readme update |
JIRA-123/add-feature | ticket JIRA-123: add feature |
Changed Files
If branch name isn’t descriptive, wit looks at your changes:File Grouping
Changes are automatically grouped by purpose:| Category | Files Matched |
|---|---|
| Tests | *.test.ts, *.spec.ts, files in test/ |
| Documentation | *.md, README, docs/ |
| Configuration | *.json, *.yaml, *.yml, config files |
| API | src/api/, routes, endpoints |
| Components | *.tsx, *.jsx, component files |
| Styles | *.css, *.scss, style files |
| Utilities | utils/, helpers/, lib/ |
| Source | Everything else |
Example Output
Quick Actions
Based on your current state, wit suggests relevant next steps:When you have staged changes:
When you have unstaged changes:
Always available:
Interactive Mode
Enter interactive mode to ask questions about your codebase:OPENAI_API_KEY or ANTHROPIC_API_KEY).
Semantic Search Indexing
When you runwit, it automatically:
- Checks if the repository is indexed for semantic search
- Starts background indexing if needed
- Re-indexes if the index is stale (>24 hours old)
wit search and powers the AI assistant’s understanding of your codebase.
Not in a Repository
If you runwit outside a repository:
Customization
Disable Background Indexing
If you don’t want automatic indexing:Traditional Status
For traditional git-style status output:Comparison with wit status
| Feature | wit (Smart Status) | wit status |
|---|---|---|
| Context inference | Yes | No |
| File grouping | By purpose | By state |
| Quick actions | Yes | No |
| Interactive mode | Yes | No |
| Background indexing | Yes | No |
| Output style | Clean, minimal | Git-compatible |
wit for day-to-day work. Use wit status when you need traditional output or for scripting.