@techsnif/cli
v0.6.1
Published
Public CLI for TechSnif. Agent-first tech news and story clusters from your terminal.
Readme
@techsnif/cli
Public CLI for TechSnif. Query story clusters, coverage links, social discussion, editorial articles, leaderboards, and tech events from the terminal, or stream stories live.
Install
npm install -g @techsnif/cliOr run without installing:
npx @techsnif/cli --helpCommands
stories: list story clusters
techsnif stories
techsnif stories --sort newest --limit 10
techsnif stories --tier 3
techsnif stories --publisher "The Verge"
techsnif stories --platform x
techsnif stories --has-discussion
techsnif stories --platform bluesky --has-discussion --json| Option | Description |
|---|---|
| --limit <n> | Results to return (default 20, max 80) |
| --offset <n> | Skip this many results (pagination) |
| --sort <order> | rank (prominence, default) or newest |
| --tier <n> | Filter by headline tier: 1=standard, 2=major, 3=top |
| --publisher <name> | Filter by lead publisher name |
| --platform <name> | Only stories discussed on this platform (x, bluesky, threads, linkedin, forums, mastodon) |
| --has-discussion | Only stories with social discussion links |
| --since <date> | Only stories seen since this ISO date |
| --topic <slug> | Filter by topic slug (e.g. ai, security) |
| --json | Machine-readable JSON output |
| --api-url <url> | Override API base URL |
story: full story cluster detail
techsnif story flipboard-launches-surf
techsnif story flipboard-launches-surf --platform x
techsnif story flipboard-launches-surf --publisher TechCrunch
techsnif story flipboard-launches-surf --brief
techsnif story flipboard-launches-surf --platform bluesky --open| Option | Description |
|---|---|
| --platform <name> | Filter discussion to this platform only |
| --publisher <name> | Filter coverage links by publisher name |
| --brief | Skip the full TechSnif article body, show metadata and links only |
| --open | Open URLs in browser (lead article, or filtered platform discussion URLs) |
| --json | Machine-readable JSON output |
| --api-url <url> | Override API base URL |
search: search stories by headline keyword
techsnif search "AI funding"
techsnif search "robotics" --platform x
techsnif search "Apple" --publisher "The Verge" --limit 5 --json| Option | Description |
|---|---|
| --limit <n> | Results to return (default 10, max 50) |
| --offset <n> | Skip this many results (pagination) |
| --publisher <name> | Filter by lead publisher name |
| --platform <name> | Narrow displayed discussion links to this platform |
| --json | Machine-readable JSON output |
| --api-url <url> | Override API base URL |
timeline: ranking history of a story
Shows each snapshot of a story cluster over time: date, rank, tier, commentary count, and coverage count.
techsnif timeline flipboard-launches-surf
techsnif timeline flipboard-launches-surf --json| Option | Description |
|---|---|
| --json | Machine-readable JSON output |
| --api-url <url> | Override API base URL |
changes: stories added or updated since a timestamp
techsnif changes
techsnif changes --since 2026-08-17T00:00:00Z --limit 100
techsnif changes --json| Option | Description |
|---|---|
| --since <date> | ISO 8601 timestamp to read changes from (default 24 hours ago) |
| --limit <n> | Results to return (default 50, max 100) |
| --json | Machine-readable JSON output |
| --api-url <url> | Override API base URL |
When more changes are available, the output includes the next --since cursor to continue from.
trending: stories or articles gaining momentum
techsnif trending
techsnif trending --hours 6 --limit 10
techsnif trending --type articles
techsnif trending --json| Option | Description |
|---|---|
| --type <type> | stories (default, ranked by velocity) or articles |
| --hours <n> | Look-back window for stories (default 24, max 48) |
| --limit <n> | Results to return (stories default 20 max 50, articles default 5 max 20) |
| --json | Machine-readable JSON output |
| --api-url <url> | Override API base URL |
watch: stream stories live
Connects to the TechSnif SSE feed and prints each new or updated story as it arrives. Reconnects automatically with exponential backoff (up to 5 attempts), resuming from the last seen event.
techsnif watch
techsnif watch --topics ai --tier 2
techsnif watch --topics ai,crypto
techsnif watch --tier 3 --json| Option | Description |
|---|---|
| --topics <list> | Comma-separated topic slugs; a story must match at least one (e.g. ai,crypto) |
| --tier <n> | Minimum headline tier: 1=standard, 2=major, 3=top |
| --json | One JSON object per event (NDJSON) instead of one-line summaries |
| --api-url <url> | Override API base URL |
Filters are applied server-side on the stream, so a filtered watch only receives matching events. Human output is one line per story: time, tier, headline, and URL. Active filters print on connect. Press Ctrl+C to stop.
events: upcoming tech events
techsnif events
techsnif events --limit 5 --json| Option | Description |
|---|---|
| --limit <n> | Results to return (default 10, max 50) |
| --json | Machine-readable JSON output |
| --api-url <url> | Override API base URL |
articles: list TechSnif editorial articles
techsnif articles
techsnif articles --category AI --limit 5
techsnif articles --tag Security --json| Option | Description |
|---|---|
| --limit <n> | Results to return (default 10, max 50) |
| --offset <n> | Skip this many results (pagination) |
| --category <name> | Filter by category (AI, Startups, Venture, Robotics) |
| --tag <name> | Filter by tag (e.g. Security, Fintech, Open Source) |
| --json | Machine-readable JSON output |
| --api-url <url> | Override API base URL |
articles search: full-text article search
techsnif articles search "open source funding"
techsnif articles search "chips" --limit 5 --json| Option | Description |
|---|---|
| --limit <n> | Results to return (default 20, max 50) |
| --offset <n> | Skip this many results (pagination) |
| --json | Machine-readable JSON output |
| --api-url <url> | Override API base URL |
article: full article by slug
techsnif article anthropic-ships-claude-agents
techsnif article anthropic-ships-claude-agents --brief| Option | Description |
|---|---|
| --brief | Show metadata and excerpt only, skip the full body |
| --json | Machine-readable JSON output |
| --api-url <url> | Override API base URL |
leaderboard: source and author rankings
techsnif leaderboard
techsnif leaderboard --tab authors --window 7d
techsnif leaderboard --topic ai --limit 10 --json| Option | Description |
|---|---|
| --tab <tab> | Rank sources (default) or authors |
| --window <window> | Time window: 7d, 30d (default), or all |
| --topic <slug> | Filter by topic slug |
| --limit <n> | Results to return (default 50, max 100) |
| --json | Machine-readable JSON output |
| --api-url <url> | Override API base URL |
platforms: active discussion platforms
techsnif platforms
techsnif platforms --jsonLists social platforms with active discussion across current stories, with story counts.
Local Development
pnpm techsnif --helpOverride the API host for local development or staging:
pnpm techsnif stories --api-url http://localhost:4321You can also set TECHSNIF_API_URL to change the default API host for every command.
Requests include a non-identifying User-Agent header such as TechSnif-CLI/0.6.1 so TechSnif can distinguish CLI traffic from MCP and generic API traffic in aggregate Cloudflare analytics. The CLI does not send cookies, device IDs, or user identifiers.
JSON Output
Every command supports --json and returns a stable envelope:
{
"ok": true,
"data": {},
"targetEnv": "https://api.techsnif.com"
}The watch command is the exception: with --json it emits one JSON object per stream event (NDJSON).
Notes
- The public CLI is intentionally API-only, with no direct database access.
- Command defaults are generated from the shared agent contract, so the CLI, the MCP server, and the hosted MCP expose the same defaults.
- Internal/operator workflows remain repo-local and are not part of the published package.
- Platform and publisher filtering is case-insensitive throughout.
--opencaps at 5 URLs to prevent tab overload.
