@techsnif/cli
Advanced tools
+131
-16
| import { Option } from 'commander'; | ||
| import { exec } from 'node:child_process'; | ||
| import { getDefaultApiUrl, getStories, getStory, getTechEvents, searchStories, } from './api.js'; | ||
@@ -10,2 +11,58 @@ import { formatDate, htmlToText, printOutput, } from './output.js'; | ||
| } | ||
| // ─── Filtering Helpers ────────────────────────────────────── | ||
| function filterCommentaryByPlatform(links, platform) { | ||
| if (!links) | ||
| return []; | ||
| const lower = platform.toLowerCase(); | ||
| return links.filter(l => l.platform.toLowerCase() === lower); | ||
| } | ||
| function filterStories(stories, opts) { | ||
| let result = stories; | ||
| if (opts.platform) { | ||
| const lower = opts.platform.toLowerCase(); | ||
| result = result | ||
| .map(s => ({ | ||
| ...s, | ||
| commentaryLinks: (s.commentaryLinks || []).filter(l => l.platform.toLowerCase() === lower), | ||
| })) | ||
| .filter(s => (s.commentaryLinks ?? []).length > 0); | ||
| } | ||
| if (opts.hasDiscussion) { | ||
| result = result.filter(s => (s.commentaryLinks || []).length > 0); | ||
| } | ||
| return result; | ||
| } | ||
| function filterStoryDetail(story, opts) { | ||
| const result = { ...story }; | ||
| if (opts.platform) { | ||
| result.commentaryLinks = filterCommentaryByPlatform(result.commentaryLinks, opts.platform); | ||
| } | ||
| if (opts.publisher) { | ||
| const lower = opts.publisher.toLowerCase(); | ||
| result.links = (result.links || []).filter(l => l.linkType === 'lead' || (l.publisher && l.publisher.toLowerCase().includes(lower))); | ||
| } | ||
| return result; | ||
| } | ||
| // ─── URL Opener ───────────────────────────────────────────── | ||
| const MAX_OPEN_URLS = 5; | ||
| function openInBrowser(url) { | ||
| const cmd = process.platform === 'darwin' ? 'open' | ||
| : process.platform === 'win32' ? 'start' | ||
| : 'xdg-open'; | ||
| exec(`${cmd} ${JSON.stringify(url)}`); | ||
| } | ||
| function openStoryUrls(story, opts) { | ||
| let urls; | ||
| if (opts.platform) { | ||
| urls = filterCommentaryByPlatform(story.commentaryLinks, opts.platform).map(l => l.url); | ||
| } | ||
| else { | ||
| urls = [story.leadUrl]; | ||
| } | ||
| const opened = urls.slice(0, MAX_OPEN_URLS); | ||
| for (const url of opened) | ||
| openInBrowser(url); | ||
| return opened; | ||
| } | ||
| // ─── Renderers ────────────────────────────────────────────── | ||
| const TIER_LABELS = { 3: '[TOP STORY]', 2: '[MAJOR]', 1: '' }; | ||
@@ -34,3 +91,3 @@ function renderStorySummary(story) { | ||
| } | ||
| function renderStoryFull(story) { | ||
| function renderStoryFull(story, opts = {}) { | ||
| const tier = TIER_LABELS[story.headlineTier] || ''; | ||
@@ -88,3 +145,5 @@ const attribution = [story.sourceAuthor, story.sourcePublisher].filter(Boolean).join(' / ') || 'Source'; | ||
| lines.push('', ` ${take.excerpt}`); | ||
| lines.push('', htmlToText(take.content)); | ||
| if (!opts.brief) { | ||
| lines.push('', htmlToText(take.content)); | ||
| } | ||
| } | ||
@@ -98,2 +157,3 @@ return lines.join('\n'); | ||
| } | ||
| // ─── Commands ─────────────────────────────────────────────── | ||
| export function registerPublicCommands(program) { | ||
@@ -107,14 +167,17 @@ addCommonReadOptions(program | ||
| .addOption(new Option('--publisher <name>', 'Filter by lead publisher name (e.g. TechCrunch, TechSnif)')) | ||
| .addOption(new Option('--platform <name>', 'Filter to stories discussed on this platform (e.g. x, bluesky, threads)')) | ||
| .addOption(new Option('--has-discussion', 'Only show stories with social discussion links')) | ||
| .action(async (options) => { | ||
| const tier = options.tier ? Number.parseInt(options.tier, 10) : undefined; | ||
| const result = await getStories({ | ||
| limit: Number.parseInt(options.limit, 10), | ||
| sort: options.sort, | ||
| tier, | ||
| publisher: options.publisher, | ||
| }, options); | ||
| const result = await getStories({ limit: Number.parseInt(options.limit, 10), sort: options.sort, tier, publisher: options.publisher }, options); | ||
| const filtered = filterStories(result.stories, { | ||
| platform: options.platform, | ||
| hasDiscussion: options.hasDiscussion, | ||
| }); | ||
| const filterDesc = options.publisher | ||
| ? ` from ${options.publisher}` | ||
| : options.tier ? ` at tier ${options.tier}` : ''; | ||
| printOutput(result, { json: options.json, targetEnv: options.apiUrl }, (data) => renderStoriesBlock(`Story clusters${filterDesc} (${data.stories.length} shown of ${data.total})`, data.stories)); | ||
| const platformDesc = options.platform ? ` discussed on ${options.platform}` : ''; | ||
| const discussionDesc = !options.platform && options.hasDiscussion ? ' with discussion' : ''; | ||
| printOutput({ stories: filtered, total: result.total }, { json: options.json, targetEnv: options.apiUrl }, (d) => renderStoriesBlock(`Story clusters${filterDesc}${platformDesc}${discussionDesc} (${d.stories.length} shown of ${d.total})`, d.stories)); | ||
| }); | ||
@@ -125,5 +188,28 @@ addCommonReadOptions(program | ||
| .argument('<slug>', 'Story cluster slug') | ||
| .addOption(new Option('--platform <name>', 'Filter discussion links to this platform (e.g. x, bluesky, threads)')) | ||
| .addOption(new Option('--publisher <name>', 'Filter coverage links by publisher name')) | ||
| .addOption(new Option('--brief', 'Show metadata and links only, skip the full TechSnif article body')) | ||
| .addOption(new Option('--open', 'Open URLs in browser (lead article, or filtered platform discussion URLs)')) | ||
| .action(async (slug, options) => { | ||
| const story = await getStory(slug, options); | ||
| printOutput(story, { json: options.json, targetEnv: options.apiUrl }, (data) => renderStoryFull(data)); | ||
| const filtered = filterStoryDetail(story, { | ||
| platform: options.platform, | ||
| publisher: options.publisher, | ||
| }); | ||
| const warnings = []; | ||
| if (options.open) { | ||
| const opened = openStoryUrls(story, { platform: options.platform }); | ||
| if (opened.length === 0) { | ||
| warnings.push(`No URLs to open${options.platform ? ` for platform "${options.platform}"` : ''}.`); | ||
| } | ||
| else { | ||
| const totalUrls = options.platform | ||
| ? filterCommentaryByPlatform(story.commentaryLinks, options.platform).length | ||
| : 1; | ||
| if (totalUrls > MAX_OPEN_URLS) { | ||
| warnings.push(`Opened ${MAX_OPEN_URLS} of ${totalUrls} URLs. Use --platform to narrow results.`); | ||
| } | ||
| } | ||
| } | ||
| printOutput(filtered, { json: options.json, targetEnv: options.apiUrl }, (data) => renderStoryFull(data, { brief: options.brief }), warnings); | ||
| }); | ||
@@ -136,9 +222,13 @@ addCommonReadOptions(program | ||
| .addOption(new Option('--publisher <name>', 'Filter by lead publisher name')) | ||
| .addOption(new Option('--platform <name>', 'Filter to stories discussed on this platform (e.g. x, bluesky, threads)')) | ||
| .addOption(new Option('--has-discussion', 'Only show stories with social discussion links')) | ||
| .action(async (query, options) => { | ||
| const result = await searchStories({ | ||
| query, | ||
| limit: Number.parseInt(options.limit, 10), | ||
| publisher: options.publisher, | ||
| }, options); | ||
| printOutput(result, { json: options.json, targetEnv: options.apiUrl }, (data) => renderStoriesBlock(`Search results for "${query}" (${data.stories.length} of ${data.total})`, data.stories)); | ||
| const result = await searchStories({ query, limit: Number.parseInt(options.limit, 10), publisher: options.publisher }, options); | ||
| const filtered = filterStories(result.stories, { | ||
| platform: options.platform, | ||
| hasDiscussion: options.hasDiscussion, | ||
| }); | ||
| const platformDesc = options.platform ? ` discussed on ${options.platform}` : ''; | ||
| const discussionDesc = !options.platform && options.hasDiscussion ? ' with discussion' : ''; | ||
| printOutput({ stories: filtered, total: result.total }, { json: options.json, targetEnv: options.apiUrl }, (d) => renderStoriesBlock(`Search results for "${query}"${platformDesc}${discussionDesc} (${d.stories.length} of ${d.total})`, d.stories)); | ||
| }); | ||
@@ -180,3 +270,28 @@ addCommonReadOptions(program | ||
| }); | ||
| addCommonReadOptions(program | ||
| .command('platforms') | ||
| .description('List social discussion platforms active across current stories')) | ||
| .action(async (options) => { | ||
| const result = await getStories({ limit: 80, sort: 'rank' }, options); | ||
| const counts = {}; | ||
| for (const story of result.stories) { | ||
| const seen = new Set((story.commentaryLinks || []).map(l => l.platform)); | ||
| for (const p of seen) { | ||
| counts[p] = (counts[p] || 0) + 1; | ||
| } | ||
| } | ||
| const sorted = Object.entries(counts).sort((a, b) => b[1] - a[1]); | ||
| const data = { | ||
| platforms: sorted.map(([platform, storyCount]) => ({ platform, storyCount })), | ||
| storiesScanned: result.stories.length, | ||
| }; | ||
| printOutput(data, { json: options.json, targetEnv: options.apiUrl }, (d) => { | ||
| if (d.platforms.length === 0) | ||
| return 'No discussion platforms found across current stories.'; | ||
| const maxLen = Math.max(...d.platforms.map(p => p.platform.length)); | ||
| const rows = d.platforms.map(p => ` ${p.platform.padEnd(maxLen)} ${p.storyCount} ${p.storyCount === 1 ? 'story' : 'stories'}`); | ||
| return [`Active discussion platforms (across ${d.storiesScanned} stories):`, '', ...rows].join('\n'); | ||
| }); | ||
| }); | ||
| } | ||
| //# sourceMappingURL=public-commands.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"public-commands.js","sourceRoot":"","sources":["../../src/lib/public-commands.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"public-commands.js","sourceRoot":"","sources":["../../src/lib/public-commands.ts"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "@techsnif/cli", | ||
| "version": "0.3.0", | ||
| "version": "0.4.0", | ||
| "description": "Public CLI for TechSnif. Agent-first tech news and story clusters from your terminal.", | ||
@@ -5,0 +5,0 @@ "type": "module", |
+84
-29
| # @techsnif/cli | ||
| Public CLI for TechSnif intelligence queries. | ||
| Public CLI for TechSnif — query story clusters, coverage links, social discussion, and tech events from the terminal. | ||
| The public CLI exposes TechSnif's API-backed intelligence surface: | ||
| - `article` | ||
| - `categories` | ||
| - `feed` | ||
| - `trending` | ||
| - `search` | ||
| - `summary` | ||
| ## Install | ||
@@ -19,3 +11,3 @@ | ||
| Or run it without installing globally: | ||
| Or run without installing: | ||
@@ -26,20 +18,85 @@ ```bash | ||
| ## Usage | ||
| ## Commands | ||
| These commands default to `https://api.techsnif.com` and support `--json` for scripts and agents: | ||
| ### `stories` — List story clusters | ||
| ```bash | ||
| techsnif article my-article-slug --format markdown --json | ||
| techsnif categories --json | ||
| techsnif feed --category AI --limit 5 --json | ||
| techsnif trending --limit 5 --json | ||
| techsnif search "AI funding" --last 7d --json | ||
| techsnif summary --topic "semiconductors" --last 7d --json | ||
| 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 | ||
| ``` | ||
| Result caps: | ||
| - `feed`: default `10`, max `50` | ||
| - `trending`: default `5`, max `20` | ||
| - `search`: default `20`, max `50` | ||
| | Option | Description | | ||
| |---|---| | ||
| | `--limit <n>` | Results to return (default 20, max 80) | | ||
| | `--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 | | ||
| | `--json` | Machine-readable JSON output | | ||
| | `--api-url <url>` | Override API base URL | | ||
| ### `story` — Full story cluster detail | ||
| ```bash | ||
| 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 by headline keyword | ||
| ```bash | ||
| techsnif search "AI funding" | ||
| techsnif search "robotics" --platform x --has-discussion | ||
| techsnif search "Apple" --publisher "The Verge" --limit 5 --json | ||
| ``` | ||
| | Option | Description | | ||
| |---|---| | ||
| | `--limit <n>` | Results to return (default 10, max 50) | | ||
| | `--publisher <name>` | Filter by lead publisher name | | ||
| | `--platform <name>` | Only stories discussed on this platform | | ||
| | `--has-discussion` | Only stories with social discussion links | | ||
| | `--json` | Machine-readable JSON output | | ||
| | `--api-url <url>` | Override API base URL | | ||
| ### `events` — Upcoming tech events | ||
| ```bash | ||
| 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 | | ||
| ### `platforms` — Active discussion platforms | ||
| ```bash | ||
| techsnif platforms | ||
| techsnif platforms --json | ||
| ``` | ||
| Lists social platforms with active discussion across current stories, with story counts. | ||
| ## Local Development | ||
@@ -54,3 +111,3 @@ | ||
| ```bash | ||
| pnpm techsnif trending --api-url http://localhost:4321 --json | ||
| pnpm techsnif stories --api-url http://localhost:4321 | ||
| ``` | ||
@@ -60,3 +117,3 @@ | ||
| Every public command supports `--json` and returns a stable envelope: | ||
| Every command supports `--json` and returns a stable envelope: | ||
@@ -71,9 +128,7 @@ ```json | ||
| For `article`, `--format html|text|markdown` controls the returned `content` field in both human-readable and JSON output. The default is `html`. | ||
| ## Notes | ||
| - User-facing attribution never exposes `Techmeme`. | ||
| - The public CLI is intentionally API-only. | ||
| - The public CLI is intentionally API-only — no direct database access. | ||
| - Internal/operator workflows remain repo-local and are not part of the published package. | ||
| - `categories` is the easiest way for agents to discover valid category values without guessing. | ||
| - Platform and publisher filtering is case-insensitive throughout. | ||
| - `--open` caps at 5 URLs to prevent tab overload. |
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
55917
34.76%634
22.16%130
73.33%2
100%