blowhorn analytics
blowhorn analytics: activity, history, import-exports, operations.
The blowhorn analytics commands. Each one's --help prints the same text.
| Command | What it does |
|---|---|
analytics activity |
Print one activity's result, read from the store. |
analytics history |
Print the follower history the collectors have already recorded, as one dated series read from the store: every LinkedIn page and every profile's X trend, whichever machine collected them. |
analytics import-exports |
Read the LinkedIn page content exports already on disk and record each activity's reception figures in the store. |
analytics operations |
Aggregate the run ledger, read from the store, into operations per profile, per platform, per command, per day or per host. |
blowhorn analytics activity
Print one activity's result, read from the store: for each profile and platform it is addressed to, whether it went out (when, the live link, which computer and browser profile ran it, and on a failure the error and the fix), how it was received where reception is collected (LinkedIn page activities, from the page content exports, with the date the figures were read and a comparison with the page's typical activity), and the follower change around it, labelled derived. Anything not collected says so, with a reason, never as a zero. A computer with no store prints a short explanation and exits 3.
blowhorn analytics activity [OPTIONS] row| Argument | Required | Description |
|---|---|---|
row |
yes | Activity number, as 'content list' prints it |
| Flag | Type | Default | Description |
|---|---|---|---|
--json |
boolean | false |
Emit machine-readable JSON output |
--platform |
string | all |
Platform scope for 'blowhorn analytics'. One of: bluesky, linkedin, x, all ('all' means every platform listed here) |
--pace |
string | Accepted by 'blowhorn analytics activity' because --pace is a global flag, but this command does no paced work -- it opens no browser and sleeps between nothing -- so the value changes nothing about how it runs and appears only in the Pace column of the -v summary. Resolved as CLI flag, then BLOWHORN_PACE, then defaults.pace in .blowhorn.yaml (normal when none is set); an unrecognized value is rejected before anything runs |
Also takes the shared flags: --config, --log-dir, --profile, --exclude, --headless, --chrome-launch, --headed, --dry-run, --verbose.
Examples:
blowhorn analytics activity 164 --json
blowhorn analytics activity 164 --profile leeOutput: json with --json, text otherwise.
blowhorn analytics history
Print the follower history the collectors have already recorded, as one dated series read from the store: every LinkedIn page and every profile's X trend, whichever machine collected them. Tolerates the N/A cells the collectors write, and derives the 30-day net, growth rate and (LinkedIn pages only) unfollowed figures, each labelled derived in the output; X profiles carry a net change and no unfollowed count, because X measures only the total. A store that cannot be reached exits 3.
blowhorn analytics history [OPTIONS]| Flag | Type | Default | Description |
|---|---|---|---|
--since |
string | How far back to read: a number with d, w, m or y (30d, 12m, 1y), or 'all' (default: 12m) | |
--subject |
string | One page or profile name (all by default) | |
--json |
boolean | false |
Emit machine-readable JSON output |
--platform |
string | Platform scope for 'blowhorn analytics'. One of: bluesky, linkedin, x, all ('all' means every platform listed here) | |
--pace |
string | Accepted by 'blowhorn analytics history' because --pace is a global flag, but this command does no paced work -- it opens no browser and sleeps between nothing -- so the value changes nothing about how it runs and appears only in the Pace column of the -v summary. Resolved as CLI flag, then BLOWHORN_PACE, then defaults.pace in .blowhorn.yaml (normal when none is set); an unrecognized value is rejected before anything runs |
Also takes the shared flags: --config, --log-dir, --profile, --exclude, --headless, --chrome-launch, --headed, --dry-run, --verbose.
Examples:
blowhorn analytics history --json --since 12m
blowhorn analytics history --json --subject Layer5 --since all
blowhorn analytics history --subject lee --since 90dOutput: json with --json, text otherwise.
blowhorn analytics import-exports
Read the LinkedIn page content exports already on disk and record each activity's reception figures in the store: impressions, views, clicks, click-through rate, likes, comments, reposts, follows and engagement rate from each export's All posts sheet, dated by the export. Each activity is matched to its content row by its link; activities made outside Blowhorn are kept and marked unmatched. Prints rows read, matched and stored per file. Safe to run again: a reading lands once per activity and export date. --dry-run reads and matches without writing.
blowhorn analytics import-exports [OPTIONS] [paths...]| Argument | Required | Description |
|---|---|---|
paths ... |
no | Export files to read (default: every content export in the analytics folder) |
| Flag | Type | Default | Description |
|---|---|---|---|
--json |
boolean | false |
Emit machine-readable JSON output |
--platform |
string | all |
Platform scope for 'blowhorn analytics'. One of: bluesky, linkedin, x, all ('all' means every platform listed here) |
--pace |
string | Accepted by 'blowhorn analytics import-exports' because --pace is a global flag, but this command does no paced work -- it opens no browser and sleeps between nothing -- so the value changes nothing about how it runs and appears only in the Pace column of the -v summary. Resolved as CLI flag, then BLOWHORN_PACE, then defaults.pace in .blowhorn.yaml (normal when none is set); an unrecognized value is rejected before anything runs |
Also takes the shared flags: --config, --log-dir, --profile, --exclude, --headless, --chrome-launch, --headed, --dry-run, --verbose.
Examples:
blowhorn analytics import-exports
blowhorn analytics import-exports data/analytics/layer5_content_20260719_033126.xls --dry-run --jsonOutput: json with --json, text otherwise.
blowhorn analytics operations
Aggregate the run ledger, read from the store, into operations per profile, per platform, per command, per day or per host: how many runs each action made, what they confirmed, skipped and failed, and which profiles and platforms were active. Reads the ledger only - a dry run is counted apart and never as an operation, and records exist from the first run after this command shipped, so a window older than that reports zero rather than guessing. Per host is the per-machine history now that several machines share one store. A store that cannot be reached exits 3.
blowhorn analytics operations [OPTIONS]| Flag | Type | Default | Description |
|---|---|---|---|
--since |
string | How far back to read: a number with d, w, m or y (30d, 12m, 1y), or 'all' (default: 30d) | |
--group-by |
string | Aggregate per profile, platform, command, day or host -- host is the machine that ran it (default: profile) | |
--kind |
string | Which ledger records to aggregate: run (action runs, the default) or tick (scheduler passes) | |
--json |
boolean | false |
Emit machine-readable JSON output |
--platform |
string | Platform scope for 'blowhorn analytics'. One of: bluesky, linkedin, x, all ('all' means every platform listed here) | |
--pace |
string | Accepted by 'blowhorn analytics operations' because --pace is a global flag, but this command does no paced work -- it opens no browser and sleeps between nothing -- so the value changes nothing about how it runs and appears only in the Pace column of the -v summary. Resolved as CLI flag, then BLOWHORN_PACE, then defaults.pace in .blowhorn.yaml (normal when none is set); an unrecognized value is rejected before anything runs |
Also takes the shared flags: --config, --log-dir, --profile, --exclude, --headless, --chrome-launch, --headed, --dry-run, --verbose.
Examples:
blowhorn analytics operations --json --since 30d --group-by profile
blowhorn analytics operations --json --since 7d --group-by platform
blowhorn analytics operations --kind tick --group-by day --since 14d
blowhorn analytics operations --group-by host --since 30dOutput: json with --json, text otherwise.