spyrun
Check file notify and run.
Install / Use
npx skills add yukimemi/spyrun --skill renriInstalls into whichever agent you are using.
Gemini Rules
Gemini CLI config
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of spyrun
spyrun scores 63/100 on our quality scale, 3976th of 4,624 Development & Engineering skills we index.
Its Gemini Rules is 5.9 KB long, well organised into 19 sections with 6 code examples: a thorough specification that gives an agent plenty to work with.
It has no GitHub stars yet, so there is no community track record; judge it on its content.
Maintenance, license and trust
- The repository was last updated about 6 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
- Our last check on 2026-10-18 found the source still online.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 74/100, with 3 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
spyrun compared with similar skills
All 4 of these similar skills score higher than spyrun; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| spyrun (this skill)by yukimemi | 63 | 0 | 6mo ago | Gemini Rules |
| taste-skillby Leonxlnx | 100 | 111.3k | 2d ago | CLAUDE.md |
| Agent-Reachby Panniantong | 100 | 109.7k | today | CLAUDE.md |
| ai-job-searchby ai-job-search-dev | 100 | 70.1k | 1d ago | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 46.7k | 3d ago | CLAUDE.md |
Frequently asked questions
- How do I install spyrun?
- Run
npx skills add yukimemi/spyrun. The install tabs above show the steps for each supported agent. - Which AI agents does spyrun work with?
- It is written for Gemini CLI, as a Gemini Rules file. Other agents that read the same format can often use it too.
- Is spyrun safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It declares no license and scores 74/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is spyrun still maintained?
- The repository was last updated about 6 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
Skill content
View source on GitHubrenri
renri (連理) is a single CLI for managing both git worktrees and
jj workspaces. It auto-detects the backend, dispatches to the right
one, and exposes one verb set across both.
When to use proactively
Without being asked, prefer creating a renri worktree for any of:
- Reviewer feedback on an open PR — branch off the PR branch in a worktree, push fixes, leave main untouched.
- A multi-commit feature or refactor that will land as a single PR.
- Risky or experimental changes you might want to throw away or compare against main.
- Parallel agent sessions on the same repo — one agent on feature A, another on feature B, no shared working tree to fight over.
Skip renri for:
- Trivial typo / whitespace / docs-wording fixes.
- Single-file config bumps (Cargo.toml version, dependency upgrade).
- Anything you would do directly on main without a PR.
The cost of a worktree is one renri add + one cd; the benefit is
that main stays clean and the work is named, parkable, and discardable.
When the user explicitly asks
Use this skill when the user wants to:
- Create / list / switch / remove worktrees in a parallel-development workflow (typical AI-coding pattern: one worktree per agent session).
- Spin up isolated working copies for jj workspaces, including the colocated git+jj case.
- Share base config across machines via
include = [...]/ per-host / per-OS Tera conditionals. - Clean up stale worktrees / forgotten jj workspaces.
Standard workflow for PR-style work
# 1. Create a worktree on a fresh branch
renri add fix/review-feedback
# 2. Move there (cd-wrapper from `renri shell-init` makes this work)
renri cd fix/review-feedback
# 3. Make the changes, commit, push
# ... edit / cargo test / git commit / git push -u origin fix/review-feedback
# 4. Open a PR (or push fixes to an existing PR branch)
# 5. After merge, clean up
renri remove fix/review-feedback # or: renri prune (after main pulls)
Verbs
renri init [--force]— write a starterrenri.tomlin the current directory. The template is heavily commented; uncomment what's needed.renri add <name>— create a new worktree (git) or workspace (jj). For git,<name>becomes a new branch off HEAD; for jj, a bookmark attached to the new workspace's working-copy commit. If<name>matches an existing branch / bookmark, attaches to it instead. If<name>is omitted, prompts interactively unless--non-interactiveis set.renri list(aliasls) — show all worktrees with name, path, branch, and flags.renri cd <name>— print the absolute path of a worktree on stdout. Designed to be wrapped:cd "$(renri cd foo)". The shell wrapper generated byrenri shell-init <bash|zsh|fish|powershell>does this automatically. If<name>is omitted, opens a fuzzy picker.renri remove <name>(aliasrm) — remove a worktree (git) or forget a workspace (jj) and delete its directory. Refuses to remove the main worktree. Runs configuredpre_removehooks first. If<name>is omitted, opens a fuzzy picker.renri exec <name> -- <command...>— run a command inside the named worktree, streaming stdio. If<name>is omitted, opens a fuzzy picker.renri prune— clean up stale entries: for git, removes worktree metadata for deleted directories; for jj, forgets workspaces whose root path is gone (the missingjj workspace pruneanalog).renri config show— print the resolved configuration, the computed worktree path for the current branch, and the list of config sources.renri shell-init <bash|zsh|fish|powershell>— emit a shell snippet that makesrenri cdactually change the parent shell's directory.
Global flags
--vcs git|jj— force a backend instead of auto-detecting. Auto-detection picks jj for colocated repos.--non-interactive— disable the interactive picker fallback. Use in scripts and CI; missing required arguments become errors.
Configuration
Config lives at <repo>/renri.toml and (optionally)
<config_dir>/renri/config.toml, both loaded via the
teravars library so they
support:
include = ["base.toml"]— pull in another config file.{% if system.os == "windows" %}/{% if system.host == "..." %}— per-OS / per-host overrides via Tera control flow.{{ env(name='HOME') }},{{ system.cwd }}, etc. — standard helpers from teravars.
Layout templates have access to vcs.{owner, repo, branch, host}
which renri populates from the origin remote and the working-copy
state at use time.
Hooks are typed: type = "copy" | "symlink" | "command".
Common workflows
Spinning up a worktree for an agent session:
renri add feature/auth
renri cd feature/auth # with shell-init wrapper, this cds
# now run your agent CLI in the new worktree
Per-host worktree root (laptop vs desktop):
# renri.toml
[layout]
{% if system.host == "thinkpad" %}
worktree_root = "/home/yuki/wt"
{% elif system.os == "windows" %}
worktree_root = "C:/wt"
{% else %}
worktree_root = "{{ env(name='HOME') }}/wt"
{% endif %}
Cleaning up after rm -rf-ing worktree directories:
renri prune
Per-worktree dev-server ports (no more :3000 collisions):
# renri.toml
[layout]
worktree_root = "{{ env(name='HOME') }}/wt"
[[hooks.post_create]]
type = "command"
run = "echo PORT={{ vcs.branch | hash | port_offset(start=3000, range=1000) }} > .env.local"
hash and port_offset are teravars Tera filters. The pipeline
turns each branch name into a deterministic port in [3000, 4000),
so three concurrent worktrees of the same project never fight for
the same port.
Install renri itself
The skill describes how to use renri; you still need the binary on
your PATH:
cargo install renri
# or pre-built binaries from https://github.com/yukimemi/renri/releases
For full reference, see https://github.com/yukimemi/renri.
Related Skills
taste-skill
111.3kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
Agent-Reach
109.7kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
ai-job-search
70.1kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
46.7kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
