Modeling Activation Metrics
PostHog/posthog
Build reusable activation models — an activation-rate metric and a per-user/per-account activated flag — on either PostHog data-warehouse views (HogQL) or an external dbt project.
SRAM AXS CLI for bikes, components, registrations, ride activities, and synced component-summary analytics.
$ npx skills add mvanhorn/printing-press-library --skill pp-axs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mvanhorn/printing-press-library pp-axs --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-skills/pp-axs .claude/skills/pp-axs && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pp-axs" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-axs into .claude/skills/pp-axs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-axs", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-axsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mvanhorn/printing-press-library --skill pp-axs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mvanhorn/printing-press-library pp-axs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .agents/skills && cp -r skills-src/cli-skills/pp-axs .agents/skills/pp-axs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pp-axs" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-axs into .agents/skills/pp-axs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-axs", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-axs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mvanhorn/printing-press-library pp-axs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/cli-skills/pp-axs .cursor/skills/pp-axs && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pp-axs" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-axs into .cursor/skills/pp-axs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-axs", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mvanhorn/printing-press-library.git --path cli-skills/pp-axs--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mvanhorn/printing-press-library --skill pp-axs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mvanhorn/printing-press-library pp-axs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/cli-skills/pp-axs .gemini/skills/pp-axs && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pp-axs" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-axs into .gemini/skills/pp-axs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-axs", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mvanhorn/printing-press-library pp-axsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mvanhorn/printing-press-library --skill pp-axs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .github/skills && cp -r skills-src/cli-skills/pp-axs .github/skills/pp-axs && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pp-axs" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-axs into .github/skills/pp-axs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-axs", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-axs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mvanhorn/printing-press-library pp-axs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/cli-skills/pp-axs .opencode/skills/pp-axs && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pp-axs" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-axs into .opencode/skills/pp-axs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-axs", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pp-axsSRAM AXS CLI for bikes, components, registrations, ride activities, and synced component-summary analytics.
Pp Axs is an agent skill from mvanhorn/printing-press-library. SRAM AXS CLI for bikes, components, registrations, ride activities, and synced component-summary analytics. Trigger phrases: list my SRAM components, register a SRAM component, show my AXS garage, my recent AXS rides, use axs, run axs.
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Official library of CLIs generated by the CLI Printing Press. Endorsed, tested, and community-contributed. The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 76de244. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadBashFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
goclaudenpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SRAM_AXS_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pp Axs loads about 3.1k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 1,354 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mvanhorn/printing-press-library at commit 76de244, republished under its Apache-2.0 licence (© mvanhorn). 1,354 words, ~3,140 tokens.
.claude/skills/pp-axs/SKILL.md (or your agent's skills folder).<!-- GENERATED FILE — DO NOT EDIT.
This file is a verbatim mirror of library/other/axs/SKILL.md,
regenerated post-merge by tools/generate-skills/. Hand-edits here are
silently overwritten on the next regen. Edit the library/ source instead.
See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->
This skill drives the axs-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
$HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:npx -y @mvanhorn/printing-press-library install axs --cli-onlyaxs-pp-cli --version$PATH for the agent/runtime that will invoke this skill.If the npx install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.4 or newer). This installs into $GOPATH/bin (default $HOME/go/bin), so add that directory to $PATH instead:
go install github.com/mvanhorn/printing-press-library/library/other/axs/cmd/axs-pp-cli@latestIf --version reports "command not found" after install, the runtime cannot see the binary directory on $PATH. Do not proceed with skill commands until verification succeeds.
SRAM AXS CLI for bikes, components, registrations, ride activities, and synced component-summary analytics.
Reach for this CLI when a rider or agent needs scriptable access to a SRAM AXS account: listing bikes and components, registering parts by serial, checking synced firmware/battery status, browsing the model catalog, reviewing ride activities, or querying synced data offline.
Do not use this CLI for:
These capabilities aren't available in any other tool for this API.
firmware-check — Show the latest synced firmware version per AXS device type.
Pick this when an agent needs the current synced firmware signal without clicking through every component.
axs-pp-cli firmware-check --jsonbattery — Latest synced battery status per AXS device type, including voltage when available.
Pick this for a quick pre-ride battery signal across synced AXS device types.
axs-pp-cli battery --jsonwear — Rank components by synced shift counts, distance, and actuations from component summaries.
Use to find the most-used drivetrain component for maintenance planning.
axs-pp-cli wear --json --select device_type,device_label,shift_count,fd_shift_count,rd_shift_countshifts — Show per-ride front/rear shift counts, chainrings, and cogs from synced component summaries.
Use for ride-by-ride drivetrain usage analysis without dumping thousands of raw gear samples.
axs-pp-cli shifts --totals --jsonsince — Show new ride activities and notifications since your last sync.
Pick this to catch up on what changed without re-reading everything.
axs-pp-cli since 7dgarage — A tree of every bike with its components and serials in one shot.
Use as the one-command overview of a rider's whole AXS setup.
axs-pp-cli garageaccount — Your SRAM account profile and settings
axs-pp-cli account accessgroups — Get your public access groupsaxs-pp-cli account export — Request a data export of your accountaxs-pp-cli account flags — Get your account feature flagsaxs-pp-cli account profile — Get your account profileactivities — Your ride activities (telemetry host)
axs-pp-cli activities list — List your ride activitiesaxs-pp-cli activities types — List activity typesbikes — Your registered bikes
axs-pp-cli bikes get — Get a bike by IDaxs-pp-cli bikes list — List your registered bikescomponents — Your AXS components (derailleurs, shifters, batteries, dropper posts)
axs-pp-cli components get — Get a component by IDaxs-pp-cli components list — List your AXS componentsdevicetypes — Catalog of AXS device types (public, no login required)
axs-pp-cli devicetypes — List all AXS device typeslinkedids — Linked third-party accounts (Strava, etc.)
axs-pp-cli linkedids list — List your linked third-party accountsaxs-pp-cli linkedids unlink — Unlink a third-party accountmodels — Catalog of component models and their firmware versions
axs-pp-cli models — List component models and latest firmware versionsnotifications — Your notifications inbox
axs-pp-cli notifications — List your notificationsproducts — Product detail lookups
axs-pp-cli products <id> — Get product detail by product IDregistrations — Register AXS components by serial number
axs-pp-cli registrations — Register a component to your account by serial numberstats — Aggregate account stats (telemetry host)
axs-pp-cli stats — Get your aggregate riding statssummaries — Activity and component usage summaries (telemetry host)
axs-pp-cli summaries activities — List per-activity summariesaxs-pp-cli summaries components — List component usage summaries (wear, shift counts, distance)units — Measurement / advanced units catalog
axs-pp-cli units — List advanced measurement unitsWhen you know what you want to do but not which command does it, ask the CLI directly:
axs-pp-cli which "<capability in your own words>"which resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code 0 means at least one match; exit code 2 means no confident match — fall back to --help or use a narrower query.
axs-pp-cli battery --jsonLists latest battery_status per synced AXS device type.
axs-pp-cli firmware-check --jsonLists latest fw_version per synced AXS device type.
axs-pp-cli wear --jsonRanks component-summary records by shift-count wear proxy.
axs-pp-cli shifts --totals --jsonTotals front and rear shifts across synced ride summaries.
axs-pp-cli registrations create --serial ABC123 --dry-runShows the registration request without sending it.
AXS uses your SRAM account (Auth0). Run axs-pp-cli auth login to sign in with your email and password (handled directly against SRAM's token endpoint — no browser), or paste an access token with axs-pp-cli auth set-token / set SRAM_AXS_TOKEN. The public device-type catalog works with no login.
Run axs-pp-cli doctor to verify setup.
Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.
Pipeable — JSON on stdout, errors on stderr
Filterable — --select keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:
axs-pp-cli activities list --agent --select id,name,statusPreviewable — --dry-run shows the request without sending
Offline-friendly — sync/search commands can use the local SQLite store when available
Non-interactive — never prompts, every input is a flag
Explicit retries — use --idempotent only when an already-existing create should count as success, and --ignore-missing only when a missing delete target should count as success
Commands that read from the local store or the API wrap output in a provenance envelope:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}Parse .results for data and .meta.source to know whether it's live or local. A human-readable N results (live) summary is printed to stderr only when stdout is a terminal AND no machine-format flag (--json, --csv, --compact, --quiet, --plain, --select) is set — piped/agent consumers and explicit-format runs get pure JSON on stdout.
When you (or the agent) notice something off about this CLI, record it:
axs-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
axs-pp-cli feedback --stdin < notes.txt
axs-pp-cli feedback list --json --limit 10Entries are stored locally at ~/.local/share/axs-pp-cli/feedback.jsonl. They are never POSTed unless AXS_FEEDBACK_ENDPOINT is set AND either --send is passed or AXS_FEEDBACK_AUTO_SEND=true. Default behavior is local-only.
Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.
Every command accepts --deliver <sink>. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:
| Sink | Effect |
|---|---|
stdout | Default; write to stdout only |
file:<path> | Atomically write output to <path> (tmp + rename) |
webhook:<url> | POST the output body to the URL (application/json or application/x-ndjson when --compact) |
Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.
A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.
axs-pp-cli profile save briefing --json
axs-pp-cli --profile briefing activities list
axs-pp-cli profile list --json
axs-pp-cli profile show briefing
axs-pp-cli profile delete briefing --yesExplicit flags always win over profile values; profile values win over defaults. agent-context lists all available profiles under available_profiles so introspecting agents discover them at runtime.
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error (wrong arguments) |
| 3 | Resource not found |
| 4 | Authentication required |
| 5 | API error (upstream issue) |
| 7 | Rate limited (wait and retry) |
| 10 | Config error |
Parse $ARGUMENTS:
help, or --help → show axs-pp-cli --help outputinstall → ends with mcp → MCP installation; otherwise → see Prerequisites above--agent)go install github.com/mvanhorn/printing-press-library/library/other/axs/cmd/axs-pp-mcp@latestclaude mcp add axs-pp-mcp -- axs-pp-mcpclaude mcp listwhich axs-pp-cli
If not found, offer to install (see Prerequisites at the top of this skill).--agent flag:axs-pp-cli <command> [subcommand] [args] --agentaxs-pp-cli <command> --help.© mvanhorn, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in cli-skills/pp-axs of mvanhorn/printing-press-library.
Open the folder on GitHubat commit 76de244
Pp Axs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pp Axs this skillmvanhorn/printing-press-library | 2.1k | — | ~3.1k | Automated safety check: Notes | Apache-2.0 | |
| Modeling Activation MetricsPostHog/posthog | 40k | — | ~1.4k | Automated safety check: Pass | Custom licence | |
| Summarize Activityalpinejs/alpine | 32k | — | ~1.6k | Automated safety check: Notes | MIT | |
| Duplicate Id Activethedaviddias/Front-End-Checklist | 74k | — | ~440 | Automated safety check: Pass | MIT | |
| Puzzle Activity Plannersickn33/agentic-awesome-skills | 47k | 1 repos | ~790 | Automated safety check: Pass | MIT | |
| Adding Activity LoggingPostHog/posthog | 40k | — | ~1.5k | Automated safety check: Pass | Custom licence |
PostHog/posthog
Build reusable activation models — an activation-rate metric and a per-user/per-account activated flag — on either PostHog data-warehouse views (HogQL) or an external dbt project.
alpinejs/alpine
Summarize recent GitHub activity — discussions, PRs, issues, events, traffic — into an actionable report so you can stay on top of the project without reading everything.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing rendered HTML, interactive components, or design-system patterns related to Use unique IDs for active elements.
sickn33/agentic-awesome-skills
Plan puzzle-based activities for classrooms, parties, and events with pre-configured generator links
PostHog/posthog
Adds or changes activity logging (the audit trail) for a Django model in PostHog.
OrchardCMS/OrchardCore
Creates custom OrchardCore workflow activities — tasks and events — with their display drivers and registration.
mvanhorn/printing-press-library
Desktop automation through the real Rust agent-desktop CLI, published in Printing Press through a small bridge.
mvanhorn/printing-press-library
Search, browse, and download Google Fonts from the terminal via the gfonts CLI.
mvanhorn/printing-press-library
The free, offline Trigger phrases: search 1688 for, find a factory on 1688 for, wholesale price on 1688 for, who is the cheapest supplier on 1688 for, compare 1688 suppliers for, use 1688, run 1688.
mvanhorn/printing-press-library
Inspect known Activity Japan plan IDs or URLs, compare dated prices and sessions, check language-sitemap coverage, and hand off to canonical booking pages.
mvanhorn/printing-press-library
Every Admin By Request portal action, plus a local SQLite mirror of audit, events, inventory and requests for ad-hoc...
mvanhorn/printing-press-library
macOS screen capture, window recording, GIF conversion, and agent evidence bundles from the terminal.
SRAM AXS CLI for bikes, components, registrations, ride activities, and synced component-summary analytics. Pp Axs is an agent skill from mvanhorn/printing-press-library. SRAM AXS CLI for bikes, components, registrations, ride activities, and synced component-summary analytics.
Pp Axs fits situations like: phrases: list my SRAM components; register a SRAM component; show my AXS garage; my recent AXS rides.
Run `npx skills add mvanhorn/printing-press-library --skill pp-axs -a claude-code`. Or copy the skill folder (cli-skills/pp-axs in mvanhorn/printing-press-library) into .claude/skills/pp-axs in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mvanhorn/printing-press-library --skill pp-axs -a codex`. Or copy the skill folder (cli-skills/pp-axs in mvanhorn/printing-press-library) into .agents/skills/pp-axs in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mvanhorn/printing-press-library --skill pp-axs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pp-axs, .gemini/skills/pp-axs, .github/skills/pp-axs and .opencode/skills/pp-axs in your project.
Going by SKILL.md and its folder, Pp Axs needs the command-line tools its instructions call (go, claude and npx) and credentials named SRAM_AXS_TOKEN. Our summary lists: Node.js; A credential in SRAM_AXS_TOKEN. Its frontmatter pre-approves these tools: Read, Bash.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Pp Axs is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Pp Axs: Modeling Activation Metrics (PostHog/posthog, 40k stars), Summarize Activity (alpinejs/alpine, 32k stars), Duplicate Id Active (thedaviddias/Front-End-Checklist, 74k stars) and Puzzle Activity Planner (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mvanhorn (a GitHub user) maintains it in mvanhorn/printing-press-library, which has 2,056 GitHub stars. The repository holds 506 skills in this directory. The repository was last updated on October 9, 2026.
Source: mvanhorn/printing-press-library on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.