# tail-fin-cli
Unified CLI entry point for [tail-fin](https://github.com/motosan-dev/tail-fin) — multi-site browser automation.
## Install
```sh
# All adapters (default)
cargo install --path .
# Only specific adapters
cargo install --path . --no-default-features --features twitter,reddit
```
Available features: `twitter`, `reddit`, `bloomberg`, `coupang`, `pcc`, `instagram`, `xhs`, `youtube`, `grok`, `sa`, `s591`, `gen`, `nansen`
## Usage
```sh
# Sites that auto-launch a stealth browser
tail-fin coupang search "耳機" --limit 5
tail-fin pcc search "電腦"
# Sites that need your login session
tail-fin --connect 127.0.0.1:9222 twitter timeline
tail-fin --connect 127.0.0.1:9222 reddit hot --limit 10
# RSS (no browser needed)
tail-fin bloomberg markets --limit 5
```
## Global Flags
| `--connect <host:port>` | Chrome remote debugging address |
| `--cookies [path]` | Use saved cookies |
| `--headed` | Run browser in visible mode |
All commands output JSON to stdout, errors to stderr.
## Interactive REPL
Run `tail-fin` without a subcommand (or pass the top-level `--repl` flag) to start an interactive session:
```sh
$ tail-fin --connect 127.0.0.1:9222
tail-fin> sa quote AAPL
{...}
tail-fin> twitter timeline --count 5
{...}
tail-fin> quit
```
Global flags (`--connect`, `--cookies`, `--headed`) are captured at launch and apply to every command in the session; they cannot be changed inside the REPL (restart to switch). Unknown commands and parse errors keep the session alive — only `quit`, `exit`, or `Ctrl+D` end it. Piped input (`echo "sa quote AAPL" | tail-fin`) runs commands silently, useful for scripted sequences.
**Note:** arguments are split on whitespace inside the REPL; commands with quoted args (e.g. `twitter search "rust lang"`) should be run in one-shot mode.
## License
[MIT](../../LICENSE)