{{REPO}}-grant-permissions

{{REPO}}-grant-permissions is a skill for Claude Code from steph-dove/klaussy-agents. It costs 95 tokens per session (2,663 once invoked), scanned A, a copy of fastapi-grant-permissions, MIT.

A permission setup tool that detects a repository's development commands and writes a curated allow-list to the agent's local permission file. It covers routine development actions while keeping sensitive files excluded.

In plain words
What is it for?
Use it to allow the repository's reading, editing, testing, linting, formatting, type-checking, building, and run commands.
Why use it?
It reduces repeated approval prompts for normal repository work. The proposed commands are shown before the permission file is changed.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: mentions CLAUDE.md; mentions Claude Code; built for aider.

Part of the klaussy plugin — 79 skills, 3 hooks, 1 MCP server shipped together

Good fit Use it to allow the repository's reading, editing, testing, linting, formatting, type-checking, building, and run commands.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/steph-dove/klaussy-agents/grant-permissions
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add steph-dove/klaussy-agents --skill grant-permissions
Clone the repo
git clone --depth 1 https://github.com/steph-dove/klaussy-agents

Made for: Claude Code.

Or install klaussy, the plugin that ships this one along with the rest of its 79 skills, 3 hooks, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for {{REPO}}-grant-permissions

README.md
[![agentmods](https://agentmods.dev/badge/skills/steph-dove/klaussy-agents/grant-permissions/github.svg)](https://agentmods.dev/skills/steph-dove/klaussy-agents/grant-permissions)
Your own site
<a href="https://agentmods.dev/skills/steph-dove/klaussy-agents/grant-permissions"><img src="https://agentmods.dev/badge/skills/steph-dove/klaussy-agents/grant-permissions/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for {{REPO}}-grant-permissions

Your own site · 80×15
<a href="https://agentmods.dev/skills/steph-dove/klaussy-agents/grant-permissions"><img src="https://agentmods.dev/badge/skills/steph-dove/klaussy-agents/grant-permissions.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 95 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,663 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. ✓ AI security review Sonnet 5 · 7 Sept 2026 📄 Read the review
Origin 95% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00095 $0.02663
Opus 5 $0.00048 $0.01332
Sonnet 5 $0.00019 $0.00533
Haiku 4.5 $0.00010 $0.00266

Measured 9d ago against content hash 65faa162bd3c, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

{{REPO}}-grant-permissions scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

This is a copy

95% identical to fastapi-grant-permissions — 8 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

src/klaussy/templates/skills/grant-permissions/SKILL.md · 78 lines

How it starts

The opening of the file, as written. The whole thing — 78 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Grant the permissions a developer needs to work in this repo without a prompt on every routine command, while keeping sensitive files off-limits.

Permissions live in your agent's config file, not in memory or preferences — this skill edits that file. It does NOT loosen anything silently: propose the allow-list, show it, then write it.

{{PERMISSIONS_TARGET}}

Steps

  1. Find the repo's real commands. Read CLAUDE.md and any rules files first. If there's no CLAUDE.md (common on third-party repos), fall back to README.md, CONTRIBUTING.md, package.json scripts, a Makefile/justfile/Taskfile.yml, and a scripts/ directory. Capture test, lint, format, type-check, build, and especially the run/dev/start command — that's the one people forget to allow.
  2. Detect the stack and its runner from marker files:
    • pyproject.toml / setup.pypython, pytest, ruff, mypy/pyright, pip, uv
    • package.jsonnpm, npx, node, yarn, pnpm (read its scripts)
    • go.modgo; Cargo.tomlcargo; Makefilemake
    • docker-compose.yml / Dockerfiledocker, docker compose
    • A scripts/ directory or a Makefile is the entrypoint in many repos (FastAPI runs bash scripts/test.sh; httpx runs scripts/test, scripts/check, scripts/lint). A Bash(pytest *) rule does NOT cover scripts/test — allow the runner itself (next step) or the tests still prompt.
  3. Read the current permission file(s) so you merge instead of clobbering. Preserve every existing allow/deny entry and any hook config.
  4. Build the allow-list (curated mode — the default):
    • The file tools: reading, editing, creating files, and searching. These are table stakes — an agent that has to ask before reading a file or writing a new one is unusable for local dev. In Claude Code that's the bare names Read, Edit, Write, Grep, Glob (no parens — a bare name allows the tool for any path, and the step-5 denies still win), which is the same baseline klaussy settings writes. On any other agent, translate to its vocabulary rather than copying those names: Gemini gates read_file/write_file/replace/glob/search_file_content, opencode has no per-tool names at all (its permission.read / permission.bash maps cover this instead). The permissions note at the top of this skill names the file and syntax yours actually uses — that wins over the Claude spelling here.
    • Bash(git *)
    • The hosting provider's CLI, from git remote get-url origin: a GitHub host means Bash(gh *), GitLab means Bash(glab *). Bitbucket has no first-party CLI, so there's nothing to add there. The review, address-review, restack, and PR skills all shell out to this one, and it's easy to miss because no marker file announces it.
    • Navigation/inspection builtins that otherwise block compound commands (see the compound-command note): Bash(cd *), Bash(ls *), Bash(pwd), Bash(echo *), Bash(mkdir *), Bash(which *), Bash(cat *), Bash(head *), Bash(tail *), Bash(wc *), Bash(find *), Bash(grep *), Bash(rg *), Bash(sort *), Bash(diff *)
    • Everyday file moves: Bash(cp *), Bash(mv *), Bash(touch *). rm is deliberately not here — deleting is the one routine command worth a prompt. Add it only on request.
    • one Bash(<tool> *) per stack command from step 2 (e.g. Bash(pytest *), Bash(npm *), Bash(cargo *))
    • the repo's runner if it uses one: Bash(bash scripts/*), Bash(sh scripts/*), Bash(./scripts/*), Bash(scripts/*), Bash(make *)
    • the run/dev command as its own entry (e.g. Bash(fastapi dev *), Bash(uvicorn *), Bash(npm run dev *), Bash(docker compose *))
  5. Keep sensitive files denied. Add to deny if absent (see the Edit vs Write rule below): Read(**/.env) + Edit(**/.env), and the same pair for **/.env.*, **/.envrc, **/credentials.json, **/.aws/credentials, **/.npmrc, **/*.pem, **/*.key, **/id_rsa, **/id_ed25519. For agents with an ignore file (.cursorignore, .geminiignore), add the secret globs there too — those block Bash reads that per-tool deny rules miss (see safety note).
  6. Merge and write. Union new entries into the existing arrays, drop exact duplicates, write valid JSON (or the agent's format). Report exactly what you added.
  7. Tell the user how to widen or narrow it — that broad mode exists, and that removing an entry re-enables its prompt.

Read the full file on GitHub · 78 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 78 lines · 0 tokens per session scan E 65faa162bd3c

Subscribe to this mod's changes

{{REPO}}-grant-permissions is a skill published in the GitHub repository steph-dove/klaussy-agents (16 stars, last pushed 15d ago), licensed MIT. It adds 95 tokens to every session and 2,663 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. It is 95% identical to fastapi-grant-permissions, differing in 8 lines, and is treated as a copy.