{"_id":"@crafter/li-metrics","_rev":"6-3abcc52887575cf5ced7d01a837b8196","name":"@crafter/li-metrics","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@crafter/li-metrics","version":"0.1.0","keywords":["linkedin","analytics","cli","agent-browser","bun"],"author":"Crafter Station","license":"MIT","_id":"@crafter/li-metrics@0.1.0","maintainers":[{"name":"raillyhugo_","email":"railly_2009@hotmail.com"},{"name":"jibaru","email":"ignacioruedaboada@gmail.com"},{"name":"cris-fast","email":"cristian.correa.cs@gmail.com"}],"homepage":"https://github.com/crafter-station/li-metrics#readme","bugs":{"url":"https://github.com/crafter-station/li-metrics/issues"},"bin":{"li-metrics":"src/cli.ts"},"dist":{"shasum":"9aff2e384502a83b0059142bdbeca2af10dae155","tarball":"https://registry.npmjs.org/@crafter/li-metrics/-/li-metrics-0.1.0.tgz","fileCount":17,"integrity":"sha512-+2KsnN8GLt4/GIWTxlvFP6PzYx1vQwwF+xR5rUdCUAamjxwIgonqec5OF6bydtRKJbBdm2kTqW+oAOXalNg97Q==","signatures":[{"sig":"MEUCIHjhSKxlhX4qEotfQwRPqshLHhpVWkykhffAbbG3NewDAiEAxYKnOCm4g6ArQ+7gQ7LXDaXyDa5lccIIT6ouOUKXpjA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60167},"type":"module","shasum":"9aff2e384502a83b0059142bdbeca2af10dae155","engines":{"bun":">=1.3.11 <2"},"scripts":{"dev":"bun src/cli.ts","test":"bun test","check":"biome check src tests package.json tsconfig.json biome.json README.md","verify":"bun run typecheck && bun run check && bun test","typecheck":"tsc --noEmit","test:repeat":"bun test && bun test && bun test","release:check":"bun run verify && bun pm pack --dry-run","test:coverage":"bun test --coverage","prepublishOnly":"bun run release:check"},"_npmUser":{"name":"raillyhugo_","email":"railly_2009@hotmail.com"},"_integrity":"sha512-+2KsnN8GLt4/GIWTxlvFP6PzYx1vQwwF+xR5rUdCUAamjxwIgonqec5OF6bydtRKJbBdm2kTqW+oAOXalNg97Q==","repository":{"url":"git+https://github.com/crafter-station/li-metrics.git","type":"git"},"_npmVersion":"10.8.3","description":"Read-only LinkedIn post analytics CLI for authenticated browser sessions","directories":{},"_nodeVersion":"24.3.0","dependencies":{"commander":"^14.0.2","agent-browser":">=0.31.1 <0.34.0","read-excel-file":"^9.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"fflate":"^0.8.3","@types/bun":"^1.3.3","typescript":"^5.9.3","@biomejs/biome":"2.5.5"},"_npmOperationalInternal":{"tmp":"tmp/li-metrics_0.1.0_1785006218698_0.6606135337990768","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@crafter/li-metrics","version":"0.1.1","keywords":["linkedin","analytics","cli","agent-browser","bun","scriptc","native"],"author":{"name":"Crafter Station"},"license":"MIT","_id":"@crafter/li-metrics@0.1.1","maintainers":[{"name":"raillyhugo_","email":"railly_2009@hotmail.com"},{"name":"jibaru","email":"ignacioruedaboada@gmail.com"},{"name":"cris-fast","email":"cristian.correa.cs@gmail.com"}],"homepage":"https://github.com/crafter-station/li-metrics#readme","bugs":{"url":"https://github.com/crafter-station/li-metrics/issues"},"bin":{"li-metrics":"src/cli.ts"},"dist":{"shasum":"99b07bfc3ff1f765aa7d59b043771ff59dbe3ea7","tarball":"https://registry.npmjs.org/@crafter/li-metrics/-/li-metrics-0.1.1.tgz","fileCount":19,"integrity":"sha512-2KhZ3ADnBmuBThhxzYF5nEumWmgRURrXpLpIrrDb68bWRiHxO5qIshQnwDC9AlY+vLtX4acP49W+dh2vGq6Gxw==","signatures":[{"sig":"MEQCIGLhUYTsW0wme0C8MP2B81AvEBiOPYRtp2gCABD16zzaAiB28G/yAiXyt0OEjZ/1ccDG5q0XrQ74D6LAqMoIt205Wg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@crafter%2fli-metrics@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":77685},"type":"module","engines":{"bun":">=1.3.11 <2"},"gitHead":"c1c94e23d36e6f4f8332545b46bd9a43b613dcb4","scripts":{"dev":"bun src/cli.ts","test":"bun test","check":"biome check src tests package.json tsconfig.json biome.json README.md","verify":"bun run typecheck && bun run check && bun test","typecheck":"tsc --noEmit","test:repeat":"bun test && bun test && bun test","native:build":"mkdir -p dist && scriptc build src/cli.ts --no-keep-c -o dist/li-metrics","native:smoke":"dist/li-metrics --json schema post.metrics > /tmp/li-metrics-native-schema.json && bun src/cli.ts --json schema post.metrics > /tmp/li-metrics-bun-schema.json && cmp /tmp/li-metrics-native-schema.json /tmp/li-metrics-bun-schema.json","release:check":"bun run verify && bun pm pack --dry-run","test:coverage":"bun test --coverage","prepublishOnly":"bun run release:check","native:coverage":"scriptc coverage src/cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:29702cb5-7e16-409a-ad8f-2fefebbc4460"}},"repository":{"url":"git+https://github.com/crafter-station/li-metrics.git","type":"git"},"_npmVersion":"12.0.1","description":"Read-only LinkedIn post analytics CLI for authenticated browser sessions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"agent-browser":">=0.31.1 <0.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"fflate":"^0.8.3","scriptc":"0.0.14","@types/bun":"^1.3.3","typescript":"^5.9.3","@types/node":"^26.1.1","@biomejs/biome":"2.5.5"},"_npmOperationalInternal":{"tmp":"tmp/li-metrics_0.1.1_1785006595470_0.09118395451063521","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@crafter/li-metrics","version":"0.1.2","keywords":["linkedin","analytics","cli","agent-browser","bun","scriptc","native"],"author":{"name":"Crafter Station"},"license":"MIT","_id":"@crafter/li-metrics@0.1.2","maintainers":[{"name":"raillyhugo_","email":"railly_2009@hotmail.com"},{"name":"jibaru","email":"ignacioruedaboada@gmail.com"},{"name":"cris-fast","email":"cristian.correa.cs@gmail.com"}],"homepage":"https://github.com/crafter-station/li-metrics#readme","bugs":{"url":"https://github.com/crafter-station/li-metrics/issues"},"bin":{"li-metrics":"src/cli.ts"},"dist":{"shasum":"72f2d2a2c392f8fed4bcbb9f0ec82db3a6c84127","tarball":"https://registry.npmjs.org/@crafter/li-metrics/-/li-metrics-0.1.2.tgz","fileCount":26,"integrity":"sha512-zGbzYnhEWWqLsxdv/NU/nFlHJedTy99IuA6LbEk3GbjMqf+KwDVnrKWc46db8WKzsR1RlaVRdfD6wf5wW0CLFg==","signatures":[{"sig":"MEYCIQD/rO1367RCQMKM5WWfMBVIK5uZB24qHby66Kw/LJWthAIhAKPYvJCADB3p3FDE/oihj1cxnCegToc4w8NFKRHv9+Ms","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@crafter%2fli-metrics@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98157},"type":"module","engines":{"bun":">=1.3.11 <2"},"gitHead":"dfb57d024b491e4a0da6d3ef71d0b6a5d998a3cd","scripts":{"dev":"bun src/cli.ts","test":"bun test","check":"biome check src tests package.json tsconfig.json biome.json README.md","verify":"bun run typecheck && bun run check && bun test","typecheck":"tsc --noEmit","test:repeat":"bun test && bun test && bun test","native:build":"mkdir -p dist && scriptc build src/native-cli.ts --no-keep-c -o dist/li-metrics","native:smoke":"dist/li-metrics --json schema post.metrics > /tmp/li-metrics-native-schema.json && bun src/cli.ts --json schema post.metrics > /tmp/li-metrics-bun-schema.json && cmp /tmp/li-metrics-native-schema.json /tmp/li-metrics-bun-schema.json","release:check":"bun run verify && bun pm pack --dry-run","test:coverage":"bun test --coverage","prepublishOnly":"bun run release:check","native:coverage":"scriptc coverage src/native-cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:29702cb5-7e16-409a-ad8f-2fefebbc4460"}},"repository":{"url":"git+https://github.com/crafter-station/li-metrics.git","type":"git"},"_npmVersion":"12.0.1","description":"Read-only LinkedIn post analytics CLI for authenticated browser sessions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"picocolors":"^1.1.1","agent-browser":">=0.31.1 <0.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"fflate":"^0.8.3","scriptc":"0.0.14","@types/bun":"^1.3.3","typescript":"^5.9.3","@types/node":"^26.1.1","@biomejs/biome":"2.5.5"},"_npmOperationalInternal":{"tmp":"tmp/li-metrics_0.1.2_1785024736531_0.7676099055142853","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@crafter/li-metrics","version":"0.2.0","keywords":["linkedin","analytics","cli","agent-browser","bun","scriptc","native"],"author":{"name":"Crafter Station"},"license":"MIT","_id":"@crafter/li-metrics@0.2.0","maintainers":[{"name":"raillyhugo_","email":"railly_2009@hotmail.com"},{"name":"jibaru","email":"ignacioruedaboada@gmail.com"},{"name":"cris-fast","email":"cristian.correa.cs@gmail.com"}],"homepage":"https://github.com/crafter-station/li-metrics#readme","bugs":{"url":"https://github.com/crafter-station/li-metrics/issues"},"bin":{"li-metrics":"src/cli.ts"},"dist":{"shasum":"c4cee595009fe68b9def63eb22d050aca20d3591","tarball":"https://registry.npmjs.org/@crafter/li-metrics/-/li-metrics-0.2.0.tgz","fileCount":27,"integrity":"sha512-AUusXpv9RHxLh6Bx9XFs9GruUw2NuYnryDBtHkPBLWr4M67AYqTatgFhchl1Gr0FYmj9gF8YBP44yTQP37h1pA==","signatures":[{"sig":"MEUCIQCaNd+uv6sM9GtFs/FeVwFe53zT27pFOPGyV4QfFSnY7wIgDn7yXVduFiXWtv92VLuA3dKHyCqyha20usSe9tKP5wM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@crafter%2fli-metrics@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":123710},"type":"module","engines":{"bun":">=1.3.11 <2"},"gitHead":"b9410b08e193f714c52fb986e003855f6f4010a8","scripts":{"dev":"bun src/cli.ts","test":"bun test","check":"biome check src tests package.json tsconfig.json biome.json README.md","verify":"bun run typecheck && bun run check && bun test","typecheck":"tsc --noEmit","test:repeat":"bun test && bun test && bun test","native:build":"mkdir -p dist && scriptc build src/native-cli.ts --no-keep-c -o dist/li-metrics","native:smoke":"dist/li-metrics --json schema post.metrics > /tmp/li-metrics-native-schema.json && bun src/cli.ts --json schema post.metrics > /tmp/li-metrics-bun-schema.json && cmp /tmp/li-metrics-native-schema.json /tmp/li-metrics-bun-schema.json","release:check":"bun run verify && bun pm pack --dry-run","test:coverage":"bun test --coverage","prepublishOnly":"bun run release:check","native:coverage":"scriptc coverage src/native-cli.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:29702cb5-7e16-409a-ad8f-2fefebbc4460"}},"repository":{"url":"git+https://github.com/crafter-station/li-metrics.git","type":"git"},"_npmVersion":"12.0.1","description":"Read-only LinkedIn post analytics CLI for authenticated browser sessions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"picocolors":"^1.1.1","agent-browser":">=0.31.1 <0.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"fflate":"^0.8.3","scriptc":"0.0.14","@types/bun":"^1.3.3","typescript":"^5.9.3","@types/node":"^26.1.1","@biomejs/biome":"2.5.5"},"_npmOperationalInternal":{"tmp":"tmp/li-metrics_0.2.0_1785048447040_0.5452899336369958","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-07-25T19:03:38.548Z","modified":"2026-09-06T05:34:06.130Z","0.1.0":"2026-07-25T19:03:38.829Z","0.1.1":"2026-07-25T19:09:55.607Z","0.1.2":"2026-07-26T00:12:16.689Z","0.2.0":"2026-07-26T06:47:27.171Z"},"bugs":{"url":"https://github.com/crafter-station/li-metrics/issues"},"author":{"name":"Crafter Station"},"license":"MIT","homepage":"https://github.com/crafter-station/li-metrics#readme","keywords":["linkedin","analytics","cli","agent-browser","bun","scriptc","native"],"repository":{"url":"git+https://github.com/crafter-station/li-metrics.git","type":"git"},"description":"Read-only LinkedIn post analytics CLI for authenticated browser sessions","maintainers":[{"email":"railly_2009@hotmail.com","name":"raillyhugo_"},{"email":"ignacioruedaboada@gmail.com","name":"jibaru"},{"email":"cristian.correa.cs@gmail.com","name":"cris-fast"},{"email":"shiara.arauzo@gmail.com","name":"shiaraarauzo"},{"email":"hi@cueva.io","name":"cuevaio"}],"readme":"# li-metrics\n\nRead-only LinkedIn post analytics CLI for an authenticated Dia session.\n\nThis is an unofficial project and is not affiliated with LinkedIn.\n\nIt uses `agent-browser` over CDP, keeps authentication inside the browser, and\nstores append-only receipts. It does not publish, react, comment, copy cookies,\nor call LinkedIn's internal RSC endpoints directly.\n\n## Requirements\n\n- Bun\n- agent-browser `>=0.31.1 <0.34.0`\n- `unzip`\n- Dia running with remote debugging on port `9222`\n- An authenticated LinkedIn session in Dia\n\n## Setup\n\n```bash\nbun add -g @crafter/li-metrics\nli-metrics doctor\n```\n\nFor local development:\n\n```bash\nbun install\nbun run src/cli.ts doctor\n```\n\n## Native build\n\nScriptC can compile the CLI into a host-native executable:\n\n```bash\nbun run native:coverage\nbun run native:build\n./dist/li-metrics --json schema post.metrics\n./dist/li-metrics doctor\n```\n\nThe current build compiles 100% of analyzed statements statically and does not\nembed a JavaScript engine. Browser commands still require `agent-browser`, and\nXLSX imports require the system `unzip` executable.\n\n## Commands\n\n```bash\nli-metrics posts week\nli-metrics posts week --no-details\nli-metrics post metrics \"https://www.linkedin.com/feed/update/urn:li:share:...\"\nli-metrics checkpoint capture \"urn:li:share:...\"\nli-metrics backfill \"urn:li:activity:...\" \"urn:li:activity:...\"\nli-metrics trend\nli-metrics cohort --since 2026-06-30\nli-metrics import xlsx ~/Downloads/SinglePostAnalytics_*.xlsx\nli-metrics receipt list\nli-metrics reconcile receipt-a.json receipt-b.json\nli-metrics brief week\nli-metrics schema\n```\n\nThe default is concise, colored output for humans. Use `--json` for one\nmachine-readable result or `--ndjson` for streams. Agents must always select\none of those structured modes and must not parse the human presentation.\n\nSet\n`LI_METRICS_AGENT_BROWSER_BIN` only when `agent-browser` is not on `PATH`.\n\n`backfill` captures multiple posts sequentially and writes one append-only\nlifetime receipt per successful input. It continues after individual failures\nand exits nonzero when any input fails.\n\n`trend` and `cohort` are local-only. `trend` compares the earliest and latest\ncheckpoint for each post. `cohort --since YYYY-MM-DD` keeps the latest receipt\nfor posts published on or after the selected date, ranks them by impressions,\nand reports engagement, profile-view, follower-conversion, and save rates.\nPublication dates are derived from LinkedIn activity or share URNs when a\nreceipt does not include an explicit date.\n\n## Agent skill\n\nInstall the repository skill, then load the version-matched instructions from\nthe CLI:\n\n```bash\nbunx skills add crafter-station/li-metrics -g\nli-metrics skills get core\nli-metrics skills get core --full\n```\n\nThe installable discovery stub lives at `skills/li-metrics/SKILL.md`. The\noperational guide is served by the installed CLI so command guidance stays\naligned with that release.\n\nThe browser provider currently supports LinkedIn's 7-day Content analytics\nview. Per-post detail values are lifetime snapshots. Capture consistent\ncheckpoints before drawing causal conclusions because LinkedIn can revise\nmetrics after publication.\n\nEnglish and Spanish LinkedIn interfaces are supported. Other interface\nlanguages fail explicitly instead of writing incomplete receipts.\n\nXLSX imports are bounded to 25 MB compressed, 100 MB uncompressed, 1,000 ZIP\nentries, and 10,000 worksheet rows.\n\n## Releases\n\nReleases use npm Trusted Publishing from `.github/workflows/release.yml`.\nConfigure the npm publisher with:\n\n- Organization or user: `crafter-station`\n- Repository: `li-metrics`\n- Workflow filename: `release.yml`\n- Environment: none\n- Allowed action: `npm publish`\n\nRun the `Release` workflow and select `patch`, `minor`, or `major`. The first\nrun commits the version bump to `main`; the resulting push verifies, publishes,\ntags, and creates the GitHub release through OIDC.\n","readmeFilename":"README.md"}