docs: update examples and config guidance
This commit is contained in:
+15
-15
@@ -1,19 +1,19 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
## Unreleased
|
||||||
|
|
||||||
## 0.1.1 — 2025-12-02
|
### Added
|
||||||
- Updated `CreateTweet` GraphQL query ID to `TAJw1rBsjAtdNgTdlo2oeg` (was `znCVAd692dKBq9MgkEhKPQ`)
|
- `whoami` command works with both GraphQL cookies and Sweetistics API keys.
|
||||||
- Added new required feature flags for December 2025 X API:
|
- Firefox cookie extraction (`--firefox-profile`) alongside existing Chrome/env/CLI credential paths.
|
||||||
- `premium_content_api_read_enabled`
|
- Sweetistics client `getCurrentUser` with POST→GET fallback for deployments that disallow POST.
|
||||||
- `responsive_web_grok_*` flags (analyze, share, translate, imagine)
|
- Colorized help banner and example block; `pnpm bird` builds then runs the CLI; no subcommand shows help.
|
||||||
- `profile_label_improvements_pcf_label_in_post_enabled`
|
- JSON5 config files (`~/.config/bird/config.json5`, `./.birdrc.json5`) for defaults like engine and browser profile.
|
||||||
- `responsive_web_jetfuel_frame`
|
|
||||||
- Source: [fa0311/TwitterInternalAPIDocument](https://github.com/fa0311/TwitterInternalAPIDocument)
|
|
||||||
|
|
||||||
## 0.1.0 — 2025-11-28
|
### Changed
|
||||||
- Initial release of `bird`, a CLI for posting tweets and replies via the Twitter/X GraphQL API.
|
- Default option resolution now honors config files (project then global) before env/CLI overrides.
|
||||||
- Supports posting tweets, replying to existing tweets by ID or URL, and reading tweet details.
|
|
||||||
- Credential resolution priority: CLI flags, environment variables (`AUTH_TOKEN`, `CT0`, fallbacks `TWITTER_AUTH_TOKEN`, `TWITTER_CT0`), then macOS Chrome cookies.
|
### Changed
|
||||||
- Includes credential check command and human-friendly output for tweet metadata.
|
- `whoami` now prefers Sweetistics when an API key is present; otherwise uses Twitter cookies.
|
||||||
- Bundled TypeScript sources, Vitest coverage, and Biome lint/format configuration.
|
|
||||||
|
### Fixed
|
||||||
|
- Fallback to scraping the authenticated settings page when Twitter account APIs return 404, so `whoami` still resolves the user.
|
||||||
|
|||||||
@@ -20,11 +20,59 @@ pnpm run binary # Creates the 'bird' executable
|
|||||||
- `bird thread <tweet-id-or-url> [--json]` — show the full conversation thread.
|
- `bird thread <tweet-id-or-url> [--json]` — show the full conversation thread.
|
||||||
- `bird search "<query>" [-n count] [--json]` — search for tweets matching a query.
|
- `bird search "<query>" [-n count] [--json]` — search for tweets matching a query.
|
||||||
- `bird mentions [-n count] [--json]` — find tweets mentioning @clawdbot.
|
- `bird mentions [-n count] [--json]` — find tweets mentioning @clawdbot.
|
||||||
|
- `bird whoami` — print which Twitter account your cookies belong to.
|
||||||
- `bird check` — show which credentials are available and where they were sourced from.
|
- `bird check` — show which credentials are available and where they were sourced from.
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Show the logged-in account via GraphQL cookies
|
||||||
|
bird whoami
|
||||||
|
|
||||||
|
# Use Firefox profile cookies instead of Chrome
|
||||||
|
bird --firefox-profile default-release whoami
|
||||||
|
|
||||||
|
# Send a tweet
|
||||||
|
bird tweet "hello from bird"
|
||||||
|
|
||||||
|
# Check replies to a tweet
|
||||||
|
bird replies https://x.com/user/status/1234567890123456789
|
||||||
|
```
|
||||||
|
|
||||||
Global engine switch:
|
Global engine switch:
|
||||||
- `--engine graphql|sweetistics|auto` (default `auto`). `auto` uses Sweetistics when an API key is provided, otherwise falls back to direct GraphQL. `sweetistics` requires `--sweetistics-api-key` (or env) and uses Sweetistics for all commands. `graphql` forces direct Twitter cookies even if an API key is present.
|
- `--engine graphql|sweetistics|auto` (default `auto`). `auto` uses Sweetistics when an API key is provided, otherwise falls back to direct GraphQL. `sweetistics` requires `--sweetistics-api-key` (or env) and uses Sweetistics for all commands. `graphql` forces direct Twitter cookies even if an API key is present.
|
||||||
|
|
||||||
|
You can set persistent defaults via config files (JSON5):
|
||||||
|
|
||||||
|
- Global: `~/.config/bird/config.json5`
|
||||||
|
- Project: `./.birdrc.json5` (overrides global)
|
||||||
|
|
||||||
|
Example `~/.config/bird/config.json5`:
|
||||||
|
|
||||||
|
```json5
|
||||||
|
{
|
||||||
|
// Default to Sweetistics unless overridden by --engine or BIRD_ENGINE
|
||||||
|
engine: "sweetistics",
|
||||||
|
// Prefer Firefox cookies by default
|
||||||
|
firefoxProfile: "default-release",
|
||||||
|
// Optional: Sweetistics defaults
|
||||||
|
sweetisticsApiKey: "sweet-...",
|
||||||
|
sweetisticsBaseUrl: "https://sweetistics.com"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Precedence: CLI flags > environment variables > project config > global config.
|
||||||
|
|
||||||
|
To default to Firefox and Sweetistics, create `~/.config/bird/config.json5`:
|
||||||
|
|
||||||
|
```json5
|
||||||
|
{
|
||||||
|
engine: "sweetistics",
|
||||||
|
firefoxProfile: "default-release",
|
||||||
|
sweetisticsApiKey: "sweet-..."
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### Post a tweet
|
### Post a tweet
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
Reference in New Issue
Block a user