{
  "markdown": "# 10x-cli\n\nCLI tool for [10xDevs](https://10xdevs.pl) course content. Fetch and apply AI coding skills,\nprompts, and configs directly into your workspace.\n\n## Requirements\n\n- **Node 20+** — this is the only runtime dependency.\n\n## Install\n\n```bash\n# Zero-install — run directly with npx (no global install needed)\nnpx @przeprogramowani/10x-cli auth\nnpx @przeprogramowani/10x-cli get m1l1\n\n# Or install globally for shorter commands\nnpm install -g @przeprogramowani/10x-cli\n\n# Or download a standalone binary from GitHub Releases\n# https://github.com/przeprogramowani/10x-cli/releases\n```\n\n## Agentic Installation\n\nLet your AI coding agent handle the setup. This repo ships a [`10x-cli-setup`](skills/10x-cli-setup/SKILL.md) skill that walks your agent through installing, authenticating, and configuring the CLI — all driven by the latest README.\n\nInstall the skill with [skills.sh](https://skills.sh):\n\n```bash\n# Add the skill to your current project (symlinked)\nnpx skills add przeprogramowani/10x-cli\n\n# Or install globally so it's available in every project\nnpx skills add przeprogramowani/10x-cli -g\n\n# Target a specific agent\nnpx skills add przeprogramowani/10x-cli -a claude-code\nnpx skills add przeprogramowani/10x-cli -a cursor\n```\n\nOnce installed, just tell your agent to **set up 10x-cli** and it will pick up the skill automatically.\n\n## Quick Start\n\n```bash\n10x auth        # Authenticate with your email\n10x list        # Browse available modules and lessons\n10x get m1l1    # Fetch and apply lesson artifacts\n10x sync        # Update everything you've downloaded; show what changed\n10x doctor      # Check everything is working\n10x bench       # Show the 10xBench top-10 model leaderboard\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `10x auth` | Magic-link login with your Circle-registered email |\n| `10x list` | Browse modules and lessons in your course |\n| `10x get <ref>` | Fetch a lesson and apply artifacts to your workspace |\n| `10x sync` | Bulk-download / refresh lessons and report what changed upstream |\n| `10x doctor` | Diagnose auth, API connectivity, and local config |\n| `10x bench` | Live top-10 AI model leaderboard from [10xbench.ai](https://10xbench.ai) — no login needed |\n| `10x bench-kit <action>` | Create (`init`) and update (`update`) a company benchmark instance from the [10x-bench-kit](https://github.com/przeprogramowani/10x-bench-kit) template |\n\n### `10x get` Flags\n\n| Flag | Description |\n|------|-------------|\n| `--tool <tool>` | AI coding tool: `claude-code`, `cursor`, `copilot`, `codex`, `devin-desktop`, `gemini`, `generic` |\n| `--print` | Output artifact content to stdout instead of writing files |\n| `--type <type>` | Filter by artifact type: `skills`, `prompts`, `rules`, `configs` |\n| `--name <name>` | Filter by artifact name (requires `--type`) |\n| `--dry-run` | Show what would be written without touching the filesystem |\n| `--course <slug>` | Override the course slug (default: `10xdevs3`) |\n| `--no-course-rules` | Skip the course rules block in your rules file (`CLAUDE.md`/`AGENTS.md`); strips an existing one. Use `--course-rules` to re-enable. |\n\n#### Examples\n\n```bash\n# Fetch full lesson — writes skills, prompts, rules, configs\n10x get m1l1\n\n# Write only skills (skip prompts, rules, configs)\n10x get m1l1 --type skills\n\n# Write a single artifact\n10x get m1l1 --type skills --name code-review\n\n# Print to stdout (pipe-friendly)\n10x get m1l1 --print --type skills --name code-review\n10x get m1l1 --print --type skills --name code-review | pbcopy\n\n# Use with a different AI coding tool\n10x get m1l1 --tool cursor\n\n# Skip the course rules block (use only your rules). Persisted across runs;\n# a previously-applied block is stripped. Re-enable later with --course-rules.\n10x get m1l1 --no-course-rules\n10x get m1l2 --course-rules\n\n# An explicit rules request always applies, even with the opt-out persisted\n10x get m1l1 --type rules\n```\n\n> The `--no-course-rules` / `--course-rules` choice is saved as `courseRules`\n> in `config.json` and applies to subsequent plain `10x get` runs. An explicit\n> `--type rules` request overrides the opt-out for that run. Skills, prompts,\n> and config-templates are unaffected.\n\n### `10x sync`\n\n`10x sync` keeps your downloaded lessons up to date and tells you **what changed\nupstream** since you last fetched. By default it refreshes only the lessons you've\nalready downloaded; `--all` pulls every unlocked lesson at once.\n\nUnchanged lessons are skipped **without a download** — the catalog advertises a\nper-lesson `contentHash` that the CLI compares against what it last applied, so the\ncommon \"nothing changed\" case is a single catalog request.\n\n| Flag | Description |\n|------|-------------|\n| `--all` | Sync every unlocked lesson, not just the ones you've downloaded |\n| `--module <m>` | Limit to one module (e.g. `m2` or `2`) |\n| `--dry-run` | Preview what would change without writing anything |\n| `--force` | Ignore the cheap-skip digest and overwrite local edits with upstream |\n| `--tool <tool>` | AI coding tool (same set as `get`) |\n| `--lang <lang>` | Content language: `en` (default) or `pl` |\n| `--course <slug>` | Override the course slug (default: `10xdevs3`) |\n| `--no-course-rules` | Skip the course rules block (same semantics as `get`) |\n\n```bash\n# Refresh everything you've already downloaded; report what moved\n10x sync\n\n# Pull every unlocked lesson in one shot (fresh project)\n10x sync --all\n\n# Preview changes without writing\n10x sync --dry-run\n\n# Only module 2\n10x sync --module m2\n\n# Take all upstream updates, overwriting local edits\n10x sync --force\n```\n\nThe report classifies every resource as **upstream-updated**, **created**,\n**unchanged**, **skipped (conflict)**, or **removed**. When a file you edited\nlocally also changed upstream, sync **keeps your edit** and prints the exact\ncommand to take the update, e.g.:\n\n```\nm2l3 — conflicts (1 skipped)\n    skipped skills/auth-skill (SKILL.md) — you edited it → 10x get m2l3 --type skills --name auth-skill\n```\n\nRun that `10x get …` to take a single update, or `10x sync --force` to take them\nall. **Change visibility covers skills and prompts** — configs are create-only\n(never overwritten) and rules are sentinel-managed, so they aren't part of the\n\"what changed\" report.\n\n**Exit code is worst-outcome:** `0` when everything is clean/unchanged (a skipped\nconflict is reported, not a failure), `1` if any lesson failed to fetch. The full\nreport is still emitted on a partial failure.\n\n### `10x bench`\n\nShows the [10xBench](https://10xbench.ai) leaderboard — the top 10 AI models\nbenchmarked on vibe-coding the Przeprogramowani.pl website — rendered as\ncolor-coded score bars in your terminal. Public data, works without logging in.\n\n```bash\n10x bench             # Top 10 models with scores, runs, and cost per run\n10x bench --limit 5   # Just the top 5\n10x bench --json      # Machine-readable (also auto-selected when piped)\n```\n\nThe data refreshes whenever new benchmark results are published on 10xbench.ai.\nColors honor `NO_COLOR` and are disabled automatically when output is piped.\n\n### `10x bench-kit`\n\nCreates and maintains a **company benchmark instance** from the\n[10x-bench-kit](https://github.com/przeprogramowani/10x-bench-kit) template —\na self-hosted benchmark that scores AI agents on tasks embedded in your own\nrepositories. The CLI is a thin installer/updater; tasks, assertions, and\nscoring live in the template and the instance.\n\n| Action | Description |\n|--------|-------------|\n| `init [dir]` | Materialize a fresh instance from the template (no git history, fresh `git init`), register the detected base repo, install runner dependencies |\n| `update [dir]` | Upgrade the instance to a newer template: runtime zone replaced wholesale, skills proposed as a reviewable diff, company content untouched |\n\n| Flag | Description |\n|------|-------------|\n| `--template-version <tag>` | Template tag to install (default: latest) |\n| `--tool <id>` | Agent tool for skill placement (`claude-code`, `cursor`, `copilot`, `codex`, `devin-desktop`, `gemini`, `generic`) |\n| `--yes` | Run non-interactively, accepting defaults |\n\n```bash\n# Create an instance next to your product repo (run inside it to auto-register)\n10x bench-kit init my-benchmark\n\n# Pin the template version\n10x bench-kit init my-benchmark --template-version v0.8.0\n\n# Upgrade an existing instance to the latest template\n10x bench-kit update\n```\n\nRe-running `init` on an existing instance is a **repair**: missing template\nfiles are restored, company content is never touched. After `update`, run the\ninstance's `bench validate` to confirm the content still matches the new kit.\n\n### Global Flags\n\n- `--json` — Machine-readable JSON output (auto-detected when piped)\n- `--verbose` — Request/response diagnostics on stderr\n- `--version` — Print CLI version\n- `--help` — Show help\n\n### Lesson References\n\nLessons are referenced by module and lesson number:\n\n- `m1l1` — Module 1, Lesson 1\n- `m2l3` — Module 2, Lesson 3\n\n### Multi-Tool Support\n\nOn first run, the CLI prompts you to choose your AI coding tool. Artifacts are written to the correct directory for your tool:\n\n| Tool | Directory | Rules file |\n|------|-----------|------------|\n| Claude Code | `.claude/` | `CLAUDE.md` |\n| Cursor | `.cursor/` | `.cursor/rules/10x-course.mdc` |\n| GitHub Copilot | `.github/` | `.github/copilot-instructions.md` |\n| Codex CLI | `.agents/` | `AGENTS.md` |\n| Devin Desktop | `.devin/` | `AGENTS.md` |\n| Gemini CLI | `.gemini/` | `GEMINI.md` |\n| Generic | `.ai/` | `AGENTS.md` |\n\nOverride anytime with `--tool <name>`. Your choice is saved in `~/.config/10x-cli/config.json`.\nThe former `windsurf` ID remains accepted as an alias and is upgraded to\n`devin-desktop`; existing `.windsurf/` artifacts can be migrated by the normal\ntool-switch prompt.\n\n## Development\n\n```bash\nbun install\nbun run dev -- --help       # Run CLI from source\nbun run build               # Build dist/index.mjs (node target)\nbun run build:binary        # Build standalone binary (~59MB)\nbun test                    # Run tests\nbun run typecheck           # tsc --noEmit\nbun run lint                # oxlint\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feat/my-feature`)\n3. Commit using [conventional commits](https://www.conventionalcommits.org/) (`feat:`, `fix:`, etc.)\n4. Push and open a pull request\n\nCI runs lint, typecheck, tests, and build checks on every PR. Releases are automated on merge to `master` via conventional-commit analysis.\n\n## License\n\nMIT\n",
  "bytes": 10555,
  "sha": "40828c7081277efc9d751ee96f786e0bb9dbf4af6d5a932efa8c353d5fefa776",
  "repo_slug": "przeprogramowani/10x-cli",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/skl_przeprogramowani_10x_cli_10x_cli_setup_3aa2f9cf/readme"
}