name: capaccino-doctor description: Diagnose Capaccino runtime issues on macOS. Use when triggers do not expand, Accessibility permission appears broken, mappings do not reload, or licensing behavior is inconsistent.
Capaccino Diagnostic Workflow
Use this checklist before proposing code changes.
1) Build sanity
Run:
swift build -c release
If build fails, fix compile errors first.
2) Process sanity
Run:
pgrep -fl Capaccino || true
If multiple processes are running, note this as a likely cause for inconsistent behavior.
3) Config file sanity
Run:
CONFIG="$HOME/Library/Application Support/Capaccino/mappings.json"
ls -l "$CONFIG" || true
cat "$CONFIG" || true
Validate:
- JSON is valid.
- Triggers begin with expected prefixes (for example
:hello). - Mappings are not empty.
4) Permission and status sanity
Check app UI status expectations:
Status: Permission Requiredmeans Accessibility access is missing.Status: Listeningmeans event tap is active.Status: Idlemeans app is running but not actively tapping input.
When permission is missing, direct user to:
- System Settings -> Privacy & Security -> Accessibility
- Enable the exact bundle currently being launched
- Relaunch and use "Reload Expansions"
5) Licensing sanity
Current implementation facts:
- Free mode is capped at 5 expansions per app session.
- Pro mode depends on saved keychain license key plus instance id.
- Offline hardcoded activation key currently exists in source.
If behavior conflicts with these facts, inspect Sources/Capaccino/Licensing.swift and call out mismatch clearly.
6) Report diagnosis
- Report root cause candidates in priority order.
- Separate confirmed facts from assumptions.
- Recommend the smallest corrective action first.