CLI Spec
Designed with create-cli defaults:
- humans first
- scriptable
- stable
--json - diagnostics on stderr
- prompts only on TTY
#Name
birdclaw
#One-liner
birdclaw imports, syncs, searches, and operates on a local Twitter archive.
#Usage
birdclaw [global flags] <subcommand> [args]
#Global flags
-h, --help--version--json--plain-q, --quiet-v, --verbose--no-color--no-input--config <path>--profile <name>--db <path>
#Config precedence
Flags > env > project config > user config
User config:
~/.birdclaw/config.json
Project config:
./.birdclawrc.json5
#Env vars
BIRDCLAW_DBBIRDCLAW_PROFILEBIRDCLAW_TRANSPORTBIRDCLAW_LOGNO_COLOR
#Command tree
birdclaw init
birdclaw auth status
birdclaw auth use <transport>
birdclaw import archive <path>
birdclaw sync all
birdclaw sync tweets
birdclaw sync dms
birdclaw sync bookmarks
birdclaw sync likes
birdclaw sync timeline
birdclaw sync mention-threads
birdclaw sync followers
birdclaw sync following
birdclaw search tweets <query>
birdclaw search dms <query>
birdclaw mentions export [query]
birdclaw dms list
birdclaw mute <handle-or-id>
birdclaw unmute <handle-or-id>
birdclaw mutes list
birdclaw blocks list
birdclaw blocks add <handle-or-id>
birdclaw blocks remove <handle-or-id>
birdclaw ban <handle-or-id>
birdclaw unban <handle-or-id>
birdclaw show tweet <id>
birdclaw show thread <id>
birdclaw show dm <conversation-id>
birdclaw inbox
birdclaw serve
birdclaw graph summary
birdclaw graph events
birdclaw graph mutuals
birdclaw compose post
birdclaw compose reply <tweet-id>
birdclaw db stats
birdclaw db vacuum
birdclaw backup export --repo <path>
birdclaw backup sync --repo <path> --remote <url>
birdclaw backup import <path>
birdclaw backup validate <path>
birdclaw debug transport
#Subcommand semantics
#init
- create app dir
- create DB
- write default config if absent
- optionally detect
xurlandbird
#auth status
- show transport availability
- show active account/profile
- never print secrets
#auth use <transport>
- set preferred transport for profile
- allowed:
auto,xurl,bird,official,xweb
#backup export
- writes Git-friendly canonical JSONL text shards
- removes and rewrites the
data/directory in the backup repo - validates the manifest and file hashes by default
--commitcreates a Git commit in the backup repo--pushimplies commit and pushes the backup repo