Agent skill

Utils Fix Permissions

by open-thoughts in open-thoughts/OpenThoughts-Agent

Fix file permissions on a directory tree on an HPC cluster (Leonardo, Jupiter, TACC, etc.) so other users can read your shared data, conda envs, or work directories.

Apache-2.0Auto-check passed

Install Utils Fix Permissions

skills CLI
$ npx skills add open-thoughts/OpenThoughts-Agent --skill utils-fix-permissions -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install open-thoughts/OpenThoughts-Agent utils-fix-permissions --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/open-thoughts/OpenThoughts-Agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/utils-fix-permissions .claude/skills/utils-fix-permissions && rm -rf skills-src

Use ~/.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/

Facts

Skill name
utils-fix-permissions
GitHub stars
301
Token cost
~714 tokens
SKILL.md length
177 words
Files
1
Skills in repo
44
Repo updated
First seen
Licence
Apache-2.0

At a glance

Fix file permissions on a directory tree on an HPC cluster (Leonardo, Jupiter, TACC, etc.) so other users can read your shared data, conda envs, or work directories.

  • Another user reports Permission denied reading your files
  • SKILL.md covers When to use, What it does, How to invoke and Gotchas
  • Calls ssh, bash and pip
  • After creating a new conda env

What it does

Utils Fix Permissions is an agent skill from open-thoughts/OpenThoughts-Agent. Fix file permissions on a directory tree on an HPC cluster (Leonardo, Jupiter, TACC, etc.) so other users can read your shared data, conda envs, or work directories. Runs scripts/permissions/fixpermissions.sh <dir over SSH on the target cluster — sets directories to 755, files to 644, then restores execute bits on bin/ entries, ELF binaries, and shebang scripts, and ensures all ancestor directories are traversable (o+x). Use when another user reports "Permission denied" reading your files, after creating a new…

Its SKILL.md is about 710 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: Data recipes and robust infrastructure for training AI agents. The licence is Apache-2.0.

When your agent uses it

  • Another user reports Permission denied reading your files
  • After creating a new conda env
  • Shared data dir
  • A cross-user pipeline cant access your checkpoint/ eval/trace outputs

Example prompts

  • “Permission denied”
  • “/utils-fix-permissions”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit 3bd1917. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • ssh
    • bash
    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use ssh and pip, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Utils Fix Permissions loads about 714 tokens when it runs. Until then it costs about 163 tokens; SKILL.md has 177 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~163
When it runs · the whole SKILL.md, loaded when a task matches
~714

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.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated 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.

SKILL.md

The full file from open-thoughts/OpenThoughts-Agent at commit 3bd1917, republished under its Apache-2.0 licence (© open-thoughts). 177 words, ~714 tokens.

Download SKILL.mdSave it as .claude/skills/utils-fix-permissions/SKILL.md (or your agent's skills folder).
name
utils-fix-permissions
description
Fix file permissions on a directory tree on an HPC cluster (Leonardo, Jupiter, TACC, etc.) so other users can read your shared data, conda envs, or work directories. Runs `scripts/permissions/fix_permissions.sh <dir>` over SSH on the target cluster — sets directories to 755, files to 644, then restores execute bits on bin/ entries, ELF binaries, and shebang scripts, and ensures all ancestor directories are traversable (o+x). Use when another user reports "Permission denied" reading your files, after creating a new conda env or shared data dir, or when a cross-user pipeline can't access your checkpoint/ eval/trace outputs.

utils-fix-permissions

Set shared-readable permissions on an HPC directory tree.

When to use

  • Another user reports "Permission denied".
  • A shared conda env or data directory needs read access.
  • A cross-user pipeline cannot read checkpoint, eval, or trace output.
  • rsync or scp preserved 600/700 permissions.

What it does

scripts/permissions/fix_permissions.sh <dir> performs these passes:

PassAction
0Ensure all ancestor directories up to / are traversable (o+x) — only touches dirs you own
1Set all directories to 755 (rwxr-xr-x)
2Set all files to 644 (rw-r--r--)
3Restore 755 on executables in bin/ directories
4Restore 755 on ELF binaries (detected by \x7f ELF magic header)
5Restore 755 on shell scripts with shebang (#!)

Files remain owner-writable; collaborators receive read and execute.

How to invoke

SSH to the target cluster and run the script from the repo root:

bash
# Leonardo example
ssh Leonardo 'cd $WORK/OpenThoughts-Agent && bash scripts/permissions/fix_permissions.sh /leonardo_work/AIFAC_5C0_290/bfeuer00'

# TACC example (large tree — run on a compute node if login node is loaded)
ssh TACCVista 'cd $SCRATCH/OpenThoughts-Agent && bash scripts/permissions/fix_permissions.sh $SCRATCH/eval_jobs'

# Jupiter example
ssh Jupiter 'cd $DCFT && bash scripts/permissions/fix_permissions.sh /p/home/../../public'
Large directories

For big trees, use an interactive compute node:

bash
# TACC
ssh TACCVista 'srun -p gh-dev -N 1 -n 1 -t 08:00:00 --account=CCR24067 bash -c "cd $SCRATCH/OpenThoughts-Agent && bash scripts/permissions/fix_permissions.sh $SCRATCH/miniconda3"'

# Leonardo (idev or sbatch)
ssh Leonardo 'srun -p boost --account=AIFAC_5C0_290 --time=08:00:00 -N 1 bash -c "cd $WORK/OpenThoughts-Agent && bash scripts/permissions/fix_permissions.sh $WORK"'

Gotchas

  • Use chmod -R g+w <dir> when shared editing is required.
  • Rerun after pip install for a shared conda environment.
  • Pass 0 changes only owned NFS directories.
  • Safe to rerun; it is idempotent.

© open-thoughts, 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

Files

Just SKILL.md in .agents/skills/utils-fix-permissions of open-thoughts/OpenThoughts-Agent.

Open the folder on GitHubat commit 3bd1917

Compare with similar skills

Utils Fix Permissions 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.

Utils Fix Permissions compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Utils Fix Permissions this skillopen-thoughts/OpenThoughts-Agent301—~714Automated safety check: PassApache-2.0
Vector Clusterruvnet/ruflo74k—~540Automated safety check: NotesMIT
AI Behavior Trees Utility AIgamedev-skills/awesome-gamedev-agent-skills1.4k—~2kAutomated safety check: PassApache-2.0
Permission Managersickn33/agentic-awesome-skills47k1 repos~595Automated safety check: PassMIT
More Trees AutomationComposioHQ/awesome-claude-skills77k3 repos~742Automated safety check: PassNone
Directory Submissionscoreyhaines31/marketingskills54k2 repos~6.7kAutomated safety check: PassMIT

Similar skills

  • Vector Cluster

    ruvnet/ruflo

    Cluster code by graph community detection via npx ruvector@0.2.25 hooks graph-cluster (spectral / Louvain)

    74k GitHub stars~540 tokensUpdated today
    Auto-check: notes
  • AI Behavior Trees Utility AI

    gamedev-skills/awesome-gamedev-agent-skills

    Build a production behavior-tree runtime (Blackboard, action/condition leaves, sequence/selector/parallel composites, decorators) and a Utility AI system (response curves — linear, exponential…

    1.4k GitHub stars~2k tokensUpdated 12 days ago
    Game DevelopmentAuto-check passed
  • Permission Manager

    sickn33/agentic-awesome-skills

    Manage opencode permissions: review always-allow lists, suggest safe read-only commands, configure permission patterns

    47k GitHub starsUsed in 1 repo~595 tokens
    DevelopmentAuto-check passed
  • More Trees Automation

    ComposioHQ/awesome-claude-skills

    Automate More Trees tasks via Rube MCP (Composio). An agent skill from ComposioHQ/awesome-claude-skills.

    77k GitHub starsUsed in 3 repos~742 tokens
    Productivity & AutomationAuto-check passed
  • Directory Submissions

    coreyhaines31/marketingskills

    When the user wants to submit their product to startup, SaaS, AI, agent, MCP, no-code, or review directories for backlinks, domain rating, and discovery.

    54k GitHub starsUsed in 2 repos~6.7k tokens
    Marketing & SEOAuto-check passed
  • Exploring LLM Clusters

    PostHog/posthog

    Official

    Investigate AI observability clusters — understand usage patterns in AI/LLM traffic, compare cluster behavior, compute cost/latency metrics, and drill into individual traces within clusters.

    40k GitHub stars~3.1k tokensUpdated today
    DevOps & CloudAuto-check passed

More from open-thoughts/OpenThoughts-Agent

All 44 skills in this repo
  • Analyze Dataset Token Length

    open-thoughts/OpenThoughts-Agent

    Analyze the token length of an OT-Agent conversation-format (ShareGPT-style) dataset — the per-trace distribution (median/p90/max) and/or counts under a token threshold + a metadata predicate (e.g.

    301 GitHub stars~1.5k tokensUpdated 11 days ago
    Auto-check passed
  • Analyze Id Eval Ranking

    open-thoughts/OpenThoughts-Agent

    Given a list of models (HF name stubs) that have valid agentic ID eval scores in Supabase, build a ranking table: raw per-benchmark accuracy on the 3 ID benchmarks (SWE-Bench-100…

    301 GitHub stars~3.1k tokensUpdated 11 days ago
    Auto-check passed
  • Analyze Job History Iris

    open-thoughts/OpenThoughts-Agent

    Run the Iris harbor job-history analyzer (scripts/iris/analyzeirisharborjob.py) on a datagen/eval job and read its JSON sidecar for trustworthy throughput / preemption / productive-trial stats.

    301 GitHub stars~2.9k tokensUpdated 11 days ago
    Auto-check passed
  • Analyze Rl Behavior

    open-thoughts/OpenThoughts-Agent

    Run the full RL behavioral-analysis pipeline (scripts/analysis/analyzerlbehavior.py) on a trained RL model to understand WHAT changed vs its pre-RL baseline, WHY, whether it PERSISTS, and its EVAL…

    301 GitHub stars~4.2k tokensUpdated 11 days ago
    Auto-check passed
  • Analyze Training Run Iris

    open-thoughts/OpenThoughts-Agent

    Detailed health check for a Levanter/executor TRAINING run on the marin Iris cluster (e.g.

    301 GitHub stars~2k tokensUpdated 11 days ago
    Auto-check passed
  • Code Create Staged Plan

    open-thoughts/OpenThoughts-Agent

    DESIGN a non-trivial codebase change (Harbor / MarinSkyRL / vLLM / OT-Agent / LLaMA-Factory) as a dependency-ordered STAGED PLAN before writing code — a feature port, a multi-step fix with parity…

    301 GitHub stars~1.5k tokensUpdated 11 days ago
    Auto-check passed

Questions about Utils Fix Permissions

What does Utils Fix Permissions do?

Fix file permissions on a directory tree on an HPC cluster (Leonardo, Jupiter, TACC, etc.) so other users can read your shared data, conda envs, or work directories. Utils Fix Permissions is an agent skill from open-thoughts/OpenThoughts-Agent.) so other users can read your shared data, conda envs, or work directories.

When should I use Utils Fix Permissions?

Utils Fix Permissions fits situations like: another user reports Permission denied reading your files; after creating a new conda env; shared data dir; A cross-user pipeline cant access your checkpoint/ eval/trace outputs.

How do I install Utils Fix Permissions in Claude Code?

Run `npx skills add open-thoughts/OpenThoughts-Agent --skill utils-fix-permissions -a claude-code`. Or copy the skill folder (.agents/skills/utils-fix-permissions in open-thoughts/OpenThoughts-Agent) into .claude/skills/utils-fix-permissions in your project. Claude Code loads it when a task matches its description.

How do I install Utils Fix Permissions in Codex?

Run `npx skills add open-thoughts/OpenThoughts-Agent --skill utils-fix-permissions -a codex`. Or copy the skill folder (.agents/skills/utils-fix-permissions in open-thoughts/OpenThoughts-Agent) into .agents/skills/utils-fix-permissions in your project. Codex loads it when a task matches its description.

Can I use Utils Fix Permissions in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add open-thoughts/OpenThoughts-Agent --skill utils-fix-permissions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/utils-fix-permissions, .gemini/skills/utils-fix-permissions, .github/skills/utils-fix-permissions and .opencode/skills/utils-fix-permissions in your project.

What does Utils Fix Permissions need to run?

Going by SKILL.md and its folder, Utils Fix Permissions needs the command-line tools its instructions call (ssh, bash and pip). Our summary lists: Python 3.

Does Utils Fix Permissions access the network?

SKILL.md contains no URLs. Its commands use ssh and pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Utils Fix Permissions safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Utils Fix Permissions use?

Utils Fix Permissions is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Utils Fix Permissions use?

About 714 tokens (SKILL.md is roughly 2.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Utils Fix Permissions?

Skills that share tags, products or a category with Utils Fix Permissions: Vector Cluster (ruvnet/ruflo, 74k stars), AI Behavior Trees Utility AI (gamedev-skills/awesome-gamedev-agent-skills, 1.4k stars), Permission Manager (sickn33/agentic-awesome-skills, 47k stars) and More Trees Automation (ComposioHQ/awesome-claude-skills, 77k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Utils Fix Permissions?

open-thoughts (a GitHub organization) maintains it in open-thoughts/OpenThoughts-Agent, which has 301 GitHub stars. The repository holds 44 skills in this directory. The repository was last updated on September 28, 2026.

Source: open-thoughts/OpenThoughts-Agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.