← All skills
reticle
59 / 100 · Review before installing
Check before installing. Some of what it can do is expected: a coding skill usually runs build and test commands.
By reticlehq/reticle (GitHub) · coding · 1,266 stars · scanned at commit 9d5855e
Works with any agent that supports SKILL.md skills.
What this skill can do
Downloads and installs other software
The author does not mention this.
Found in 590 places.
Show 17 more
- MIGRATION.md, line 21
| `ANTHROPIC_API_KEY`, `OPENAI_API_KEY` or `JEV_API_KEY` set for explore | Link the project instead: `npx @reticlehq/server connect`. Every plan includes credit - MIGRATION.md, line 126
RETICLE_ADVERTISE_ALL_TOOLS=1 npx @reticlehq/server serve - MIGRATION.md, line 151
npx @reticlehq/server init --flow "a user checks out" - MIGRATION.md, line 157
npx @reticlehq/server init - MIGRATION.md, line 169
npx @reticlehq/server verify <url> --explore --persona "a user checks out" - MIGRATION.md, line 241
- `npx @reticlehq/server doctor` — one command, checks the whole setup - README.md, line 98
| Your coding agents' MCP config | So your agent gets the `reticle_*` tools | One `reticle` entry that runs the installed copy (`node <path>/bin/reticle.js mcp` - README.md, line 108
**See the plan before anything is written:** `npx @reticlehq/server init --dry-run` writes nothing. `--no-mcp` skips agent registration. `--files-only` writes t - README.md, line 118
**You need:** Node 20.11+ (no Node? `brew install node` or [nodejs.org](https://nodejs.org)) and a web app you run locally with a dev server. For step 2, a codi - README.md, line 126
npx @reticlehq/server - README.md, line 140
npx @reticlehq/server init - README.md, line 152
npx @reticlehq/server init - README.md, line 158
npx @reticlehq/server init --dry-run # show the plan, write nothing - README.md, line 159
npx @reticlehq/server init --app apps/web # monorepo: wire this app - README.md, line 165
npx @reticlehq/server status - README.md, line 219
npx @reticlehq/server init --env KEY=VALUE # something the app needs to boot (repeatable) - README.md, line 220
npx @reticlehq/server init --files-only # write the files, don't boot the app
and 570 more places
Sends data to these websites: raw.githubusercontent.com, app.test
This is disclosed by the author in the skill's SKILL.md or README.
Found in 352 places.
Show 17 more
- action/ci-check.mjs, line 262
const res = await fetch(`${cloud}${CHECKS_PATH}`, { - action/ci-check.test.mjs, line 228
const page = await fetch(preview.url, { - adapters/build/vite/src/build.integration.test.ts, line 296
expect(await (await fetch(url)).text()).not.toContain('tok_'); - adapters/build/vite/src/build.integration.test.ts, line 301
expect(await (await fetch(url)).text()).toContain('tok_written_later'); - adapters/build/vite/src/define-warning.integration.test.ts, line 178
await fetch(`${base.replace(/\/$/, '')}/src/main.js`).catch(() => undefined); - adapters/build/vite/src/source-edit-freshness.integration.test.ts, line 86
const res = await fetch(`${base}${path}`); - adapters/realm/browser/src/observers/ipc.self-observation.test.ts, line 57
await window.fetch(tauriIpcUrl(RETICLE_TAURI_CAPTURE_COMMAND), { method: 'POST' }); - adapters/realm/browser/src/observers/ipc.self-observation.test.ts, line 68
expect(await window.fetch(tauriIpcUrl(RETICLE_TAURI_CAPTURE_COMMAND))).toBe(response); - adapters/realm/browser/src/observers/ipc.self-observation.test.ts, line 78
await window.fetch(tauriIpcUrl('archive_todo'), { method: 'POST' }); - adapters/realm/browser/src/observers/ipc.self-observation.test.ts, line 92
await window.fetch(tauriIpcUrl('archive_todo'), { method: 'POST' }); - adapters/realm/browser/src/observers/ipc.self-observation.test.ts, line 93
await window.fetch(tauriIpcUrl('archive_todo'), { method: 'POST' }); - adapters/realm/browser/src/observers/ipc.self-observation.test.ts, line 105
await window.fetch(tauriIpcUrl(`${RETICLE_TAURI_CAPTURE_COMMAND}_audit`), { method: 'POST' }); - adapters/realm/browser/src/observers/network-error-bodies.test.ts, line 53
await fetch('https://app.test/auth/v1/signup', { method: 'POST' }); - adapters/realm/browser/src/observers/network.body-reason.test.ts, line 49
await fetch('/mcp', { method: 'POST' }); - adapters/realm/browser/src/observers/network.body-reason.test.ts, line 158
vi.stubGlobal('XMLHttpRequest', FakeXhr); - adapters/realm/browser/src/observers/network.body-reason.test.ts, line 164
const xhr = new XMLHttpRequest(); - adapters/realm/browser/src/observers/network.initiator-frame.test.ts, line 16
const AXIOS = ' at dispatchXhr (http://localhost:5173/node_modules/axios/lib/adapter.js:12:3)';
and 332 more places
Runs commands on your computer
This is disclosed by the author in the skill's SKILL.md or README. Expected for a coding skill.
Found in 423 places.
Show 17 more
- action/ci-check.mjs, line 256
spawnSync(cmd, [...pre, 'verify', url, '--results-json', resultsPath, ...storageArgs], { - adapters/build/vite/src/cjs-loadable.test.ts, line 2
import { execFileSync } from 'node:child_process'; - adapters/build/vite/src/cjs-loadable.test.ts, line 58
execFileSync(process.execPath, [join(PKG_ROOT, 'scripts', 'build-cjs.mjs')], { - adapters/lint/eslint/src/unlinted-dirs.test.ts, line 5
import { execFileSync } from 'node:child_process'; - adapters/lint/eslint/src/unlinted-dirs.test.ts, line 26
const REPO = execFileSync('git', ['rev-parse', '--show-toplevel'], { - adapters/realm/browser/scripts/embed-heroicons.mjs, line 6
import { execSync } from 'node:child_process'; - adapters/realm/browser/scripts/embed-heroicons.mjs, line 119
execSync(`pnpm exec prettier --write --log-level silent "${outPath}"`, { - adapters/realm/browser/src/core-boundary.test.ts, line 2
import { execFileSync } from 'node:child_process'; - adapters/realm/browser/src/core-boundary.test.ts, line 22
const REPO_ROOT = execFileSync('git', ['rev-parse', '--show-toplevel'], { - adapters/realm/browser/src/directory-reach.test.ts, line 3
import { execFileSync } from 'node:child_process'; - adapters/realm/browser/src/directory-reach.test.ts, line 28
execFileSync('git', ['rev-parse', '--show-toplevel'], { - adapters/realm/browser/src/registry/declared-platform.test.ts, line 2
import { execFileSync } from 'node:child_process'; - adapters/realm/browser/src/registry/declared-platform.test.ts, line 35
const source = execFileSync('git', ['grep', '-rhoE', 'ReticleCommand\\.[A-Z_]+', '--', 'src'], { - adapters/realm/cli/src/process/node-supervisor.test.ts, line 163
`const { spawn } = require('node:child_process'); - adapters/realm/cli/src/process/node-supervisor.ts, line 1
import { spawn } from 'node:child_process'; - apps/cli-smoke/smoke.mjs, line 10
import { spawn } from 'node:child_process'; - apps/e2e/client-compat.mjs, line 20
import { spawn } from 'node:child_process';
and 403 more places
Can call paid AI services billed to you
The author does not mention this.
Found in 9 places.
Show 6 more
- bench/harness/explore-cost.mjs, line 75
const r = await fetch('https://api.anthropic.com/v1/messages', { - bench/harness/intent-effect.mjs, line 149
const r = await fetch('https://api.anthropic.com/v1/messages', { - bench/harness/long-horizon.mjs, line 103
const r = await fetch('https://api.anthropic.com/v1/messages', { - bench/harness/openai-agent-loop.mjs, line 19
const BASE = (process.env.BENCH_OPENAI_BASE_URL ?? 'https://api.openai.com/v1').replace(/\/$/, ''); - bench/pw-vs-reticle/mcp-head-to-head.mjs, line 33
const LLM_URL = process.env.BENCH_LLM_URL ?? 'https://api.openai.com/v1/chat/completions'; - bench/pw-vs-reticle/mcp-head-to-head.mjs, line 34
const ANTHROPIC_URL = process.env.BENCH_ANTHROPIC_URL ?? 'https://api.anthropic.com/v1/messages';
Changes files outside its own folder
The author does not mention this.
Found in 4 places.
Show 1 more
Other copies in this repository
reticlehq/reticle has 2 more folders with a skill named reticle. This page shows the lowest-scoring copy.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'reticle' ] || [ -L ~/.agents/skills/'reticle' ]; then echo 'A skill folder named reticle already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/reticlehq/reticle' "$d" && git -C "$d" checkout --quiet '9d5855e46979cfc7e9f7f4de2f2e16200a08921f' -- '.' && mkdir -p ~/.agents/skills && cp -R "$d/." ~/.agents/skills/'reticle' && rm -rf ~/.agents/skills/'reticle'/.git && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'reticle' ~/.claude/skills/'reticle' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for reticlehq/reticle shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/reticlehq/reticle/)
Score history
| Date | Version | Score |
|---|
| 2026-11-11 | 9d5855e | 59 |
| 2026-11-08 | 955e45b | 59 |
| 2026-11-07 | 955e45b | 39 |