| name | basecamp-activity |
| description | Fetch Basecamp project or person activity into day-cached JSON atoms.
Uses the Basecamp API with pagination and rate-limit backoff.
Part of the recap plugin's activity fetcher pipeline.
|
| triggers | ["/recap:basecamp-activity","basecamp activity","basecamp project activity"] |
Basecamp Activity Fetcher
Fetch Basecamp activity events into per-day cached JSON atoms. Supports two
scopes:
- Project-scoped (
--project): all events in a Basecamp project
- Person-scoped (
--person): all activity by a specific user
Caches at ~/.cache/recap/basecamp-project/{id}/{YYYY-MM-DD}/activity.json or
~/.cache/recap/basecamp-person/{slug}/{YYYY-MM-DD}/activity.json.
Invocation
/recap:basecamp-activity --project 43483623 --since 2026-03-23
/recap:basecamp-activity --project 43483623 --since 2026-03-23 --until 2026-03-30 --reuse
/recap:basecamp-activity --person "Jeremy Daer" --since 2026-03-23
Contract
- Idempotent: same input produces same output, safe to re-run
- Day-cached: one JSON file per scope per day
--reuse: skip fetch if cache exists and is marked complete
- Rate-limit aware: exponential backoff on 429 responses
Quick Run
basecamp auth status | jq -e '.data.authenticated' || { ; 1; }
SINCE=$( -d +%Y-%m-%d)
UNTIL=$( +%Y-%m-%d)
\
--project 43483623 --since --
~/.cache/recap/basecamp-project/43483623/
~/.cache/recap/basecamp-project/43483623//activity.json | jq