Codebase Management
giancarloerra/SocratiCode
Set up, index, and manage SocratiCode codebase indexing. An agent skill from giancarloerra/SocratiCode.
Submit, monitor, and manage GPU jobs through the anima daemon (make daemon-, make gen, make run-status, MCP bridge, discovery).
$ npx skills add sorryhyun/anima_lora --skill daemon -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sorryhyun/anima_lora daemon --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/sorryhyun/anima_lora.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/daemon .claude/skills/daemon && rm -rf skills-srcUse ~/.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/
Install the "daemon" agent skill from https://github.com/sorryhyun/anima_lora/tree/main/.claude/skills/daemon into .claude/skills/daemon/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "daemon", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/sorryhyun/anima_lora/tree/main/.claude/skills/daemonType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add sorryhyun/anima_lora --skill daemon -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sorryhyun/anima_lora daemon --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sorryhyun/anima_lora.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/daemon .agents/skills/daemon && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "daemon" agent skill from https://github.com/sorryhyun/anima_lora/tree/main/.claude/skills/daemon into .agents/skills/daemon/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "daemon", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add sorryhyun/anima_lora --skill daemon -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sorryhyun/anima_lora daemon --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sorryhyun/anima_lora.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/daemon .cursor/skills/daemon && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "daemon" agent skill from https://github.com/sorryhyun/anima_lora/tree/main/.claude/skills/daemon into .cursor/skills/daemon/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "daemon", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/sorryhyun/anima_lora.git --path .claude/skills/daemon--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add sorryhyun/anima_lora --skill daemon -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sorryhyun/anima_lora daemon --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sorryhyun/anima_lora.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/daemon .gemini/skills/daemon && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "daemon" agent skill from https://github.com/sorryhyun/anima_lora/tree/main/.claude/skills/daemon into .gemini/skills/daemon/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "daemon", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install sorryhyun/anima_lora daemonInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add sorryhyun/anima_lora --skill daemon -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sorryhyun/anima_lora.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/daemon .github/skills/daemon && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "daemon" agent skill from https://github.com/sorryhyun/anima_lora/tree/main/.claude/skills/daemon into .github/skills/daemon/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "daemon", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add sorryhyun/anima_lora --skill daemon -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install sorryhyun/anima_lora daemon --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sorryhyun/anima_lora.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/daemon .opencode/skills/daemon && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "daemon" agent skill from https://github.com/sorryhyun/anima_lora/tree/main/.claude/skills/daemon into .opencode/skills/daemon/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "daemon", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
daemonSubmit, monitor, and manage GPU jobs through the anima daemon (make daemon-, make gen, make run-status, MCP bridge, discovery).
Daemon is an agent skill from sorryhyun/anima_lora. Submit, monitor, and manage GPU jobs through the anima daemon (make daemon-, make gen, make run-status, MCP bridge, discovery). Load before launching any GPU process as an agent, checking training-run progress, batch-generating images, or wiring a new daemon client.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in AI & LLM Engineering. It works with Model Context Protocol. The repository describes itself as: optimized anima lora training script. The licence is MIT.
Read from SKILL.md and the folder at commit d3a5fc4. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
makepythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Daemon loads about 2.1k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 1,059 words of instructions outside code blocks.
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.
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.
The full file from sorryhyun/anima_lora at commit d3a5fc4, republished under its MIT licence (© sorryhyun). 1,059 words, ~2,072 tokens.
.claude/skills/daemon/SKILL.md (or your agent's skills folder).Local FIFO job queue (anima_daemon/), auto-starts on first submit. Full HTTP contract:
anima_daemon/README.md.
Agent-launched GPU work must go through the daemon. A GPU process started from a Claude Code background Bash gets killed by the harness sandbox layer after ~1 min (silent SIGKILL — no OS/OOM trace, no traceback; observed 2026-07-25). Daemon jobs also queue behind a live train run instead of OOM-colliding, and survive the terminal.
make daemon | daemon-run ARGS="<script.py> …" | daemon-wait [JOB=<id>] | daemon-attach [JOB=<id>] | daemon-jobs | daemon-log [JOB=<id>] | daemon-pause [JOB=<id>] | daemon-resume [JOB=<id>] | daemon-kill | daemon-terminate | daemon-prune
make daemon-run ARGS="<script.py> [flags]" — attach-by-default, exits
with the job's code; --queue detaches, --inline bypasses the daemon;
--stall-timeout S where 0 = off. daemon-run's own --label/--stall-timeout go
before the script path — after it every token reaches the child untouched (bench
scripts take --label themselves), and -- passes everything after it verbatim.make daemon-wait [JOB=<id>] blocks to terminal and prints the record + result
envelope, exiting with the job's code (DaemonClient.wait() programmatically) — don't
hand-roll an HTTP poll loop.daemon-pause tree-freezes the running job (SIGSTOP — VRAM held, SM idle, resume
instant; the queue does NOT advance past it; refuses accelerate launch runs).
daemon-pause RELEASE=1 is the cooperative variant for train.py jobs: the trainer
saves a resumable state at its next optimizer step and exits (run_end paused), the
GPU is freed and the queue advances; the job parks as paused + released and
daemon-resume re-enqueues it at the front with --resume <state_dir> (reload +
recompile, not instant). Protocol: pause.request / pause.ack.json in the job dir,
library/training/pause.py.--queue to any train/distill target to enqueue instead of running inline
(make lora --queue, make turbo --queue). GUI Train button, ComfyUI trainer node,
and preprocessing all submit here.--stall-timeout over a heartbeat, else
bench/_common.py::start_heartbeat() (the watchdog also spares a quiet-but-CPU-burning
tree).A job's env is daemon-env ← captured_env ← extra_env. captured_env is the
submitter's ANIMA_* / CUDA_* / HF_* / PYTORCH_* / TORCH_* / NCCL_* at submit
time (recorded in job.json); everything else — and every whitelisted var the submit
shell does not set — comes from the shell that booted the daemon, possibly days ago
(a stale-code respawn re-boots it from whichever shell submitted next).
ANIMA_VOCAB_PACK=<preview pack>, a later submit without the var trains on the
preview pack. Set every env lever the job depends on in the submit shell, and confirm
it from the job itself: captured_env in job.json, the value in
/proc/<pid>/environ, or the line the job logs (the vocab pack logs its sha).make daemon-terminate is the reset, and it is cheap when nothing is running —
all state is on disk and the next submit boots a fresh daemon from the current shell.
Use it whenever make daemon-jobs ARGS="--state queued,running,paused" reads 0 of M
and the daemon's env is in doubt (an old session booted it, an env lever changed, a
run is about to take hours). It kills the active job and discards the queue, so check
that line first.| question | command | what comes back |
|---|---|---|
| Is a job running / is the queue busy? | make daemon-jobs ARGS="--state queued,running,paused" | one line per unfinished job, then N of M jobs — a bare 0 of M is the "nothing running" answer (exit 1 = daemon down) |
| How far along is the current run? | make run-status | step N/total, it/s, ETA, last losses, last ckpt (§ Run status below) |
Did job <id> finish, and with what exit code? | make daemon-jobs ARGS="--all" | grep <id> | one line: when · id · state · rc= · duration · target · first error line |
| …and block until it does? | make daemon-wait JOB=<id> | exits with the job's own code (record + envelope on stdout) |
What argv did job <id> run? | python -c "import json;print(' '.join(json.load(open('output/daemon/jobs/<id>/job.json'))['argv']))" | the child argv on one line. Command jobs only — a train job persists method/preset/overrides/extra and builds its launch cmd at spawn, so its argv is empty |
One job's full record + its bench result.json? | python -m anima_daemon status <id> | the whole record, envelope inlined under result; reads the on-disk job.json when the daemon is down |
| Is the daemon up, on which port, running stale code? | python -m anima_daemon status | up, resolved base_url, stale_code, paused, active_job (exit 1 when down) |
daemon-jobs, daemon-log, run-status and the job.json read all work with the
daemon down.
daemon-jobs prints oldest first (| tail -5 = the five most recent), capped at 15;
filter with ARGS="--running|--failed|--done|--state s[,s]|--limit N|--all". Jobs do not
always start in submit order (a chained job waits on its parent), so ask for pending work
by state rather than trusting the newest-15 slice to contain it. make daemon-log [JOB=<id>] dumps a job's stdout from disk (ARGS="-n 200"; -n 0 = all);
daemon-attach follows a live stream only, so it has nothing for a finished job.
output/daemon/daemon.json / ~/.anima/daemon.json →
{port, root}. Never hardcode 8765 — the port falls back to ephemeral on collision.python -m anima_daemon submit|wait|status is the stdlib-only equivalent of the make
targets, for callers that can't import tasks.py.GET / (README) and GET /tools (JSON-Schema manifest).
anima_daemon/mcp.py is a stdio MCP bridge over the same surface — register the script
path as the MCP command; it discovers the daemon itself.make daemon-prune is the manual sweep — dry-run
unless ARGS="--apply". Rules and knobs: anima_daemon/README.md § Retention.make genDaemon-routed batch generation — same argv + env levers as make test, submitted as a
GPU command job (attach-by-default; --queue detaches, --inline bypasses). Lands a
gen_manifest.json in the job record: write_gen_manifest drops a result_path.json
pointer when the daemon exports ANIMA_DAEMON_JOB_DIR (a plain python inference.py is
unaffected).
make run-statusstep N/total, it/s, ETA, last losses, last ckpt, and RUNNING/OK/ERROR/DEAD (no
run_end + dead pid), digested from the run's progress.jsonl
(library/training/progress.py::read_status — importable; scripts/run_status.py is the
CLI). Covers train.py methods and make turbo.
Both launch paths are scanned: an inline run's output/logs/<name>.progress.jsonl
and a daemon job's output/daemon/jobs/<id>/progress.jsonl (the daemon overrides
--progress_jsonl with a per-job path, so the run dir under output/logs/ holds the
snapshot + TB events but no stream). Defaults to the newest stream from either;
RUN=<output_name|job id|path> selects — a daemon stream's filename is bare, so a run
name there is matched against the run_start event inside it, and the header prints
(job <id>). ARGS="--list" for all, ARGS="--json" for the dict, ARGS="--jobs-dir ''" to skip the daemon dirs.
For every scalar instead: make export-logs RUN=output/logs/<run> SUMMARY=1 prints
max-step + last value per tag (raw payload {"run", "tags": {tag: [[step, wall_time, value], …]}} — value is row[2]).
© sorryhyun, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/daemon of sorryhyun/anima_lora.
Open the folder on GitHubat commit d3a5fc4
Daemon 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Daemon this skillsorryhyun/anima_lora | 125 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Codebase Managementgiancarloerra/SocratiCode | 3.3k | 1 repos | ~1.8k | Automated safety check: Pass | AGPL-3.0 | |
| Hugging Face LLM Trainerhuggingface/skills | 11k | 3 repos | ~7.2k | Automated safety check: Pass | Apache-2.0 | |
| KtxKaelio/ktx | 1.6k | 1 repos | ~3.2k | Automated safety check: Pass | Apache-2.0 | |
| Tool Use Data Synthesissunny-glow/Auto-BenchMax | 1.3k | — | ~3.3k | Automated safety check: Pass | None | |
| Sandbaseiflytek/skillhub | 5.2k | 2 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 |
giancarloerra/SocratiCode
Set up, index, and manage SocratiCode codebase indexing. An agent skill from giancarloerra/SocratiCode.
huggingface/skills
Trains or fine-tunes language and vision models with TRL or Unsloth on Hugging Face Jobs cloud GPUs, then converts the results to GGUF.
Kaelio/ktx
Installs and configures ktx, the open-source context layer for data agents — runs ktx setup non-interactively with hidden CLI flags, configures database connections and embeddings, installs agent…
sunny-glow/Auto-BenchMax
Synthesize training data for ANY tool-use / agentic benchmark, in ANY repo.
iflytek/skillhub
Access 2,000+ AI models and API tools through one MCP interface for inference, media generation, search, scraping, embeddings, social data, and structured retrieval.
shinpr/mcp-local-rag
Searches, saves, and maintains a local document index through a local RAG MCP server.
sorryhyun/anima_lora
The model catalog (library/downloads.py) — one Asset row per weight (repo, files, destination, installed probe), packs, resolve() name order, and the rule that loaders import their default paths…
sorryhyun/anima_lora
Qwen-Image-2.1 LoRA line (NOT Anima) — running cache/train through the daemon, make gui-qwen, the CacheRequest/TrainRequest flag surface and how to add a field, model-dir resolution, cache layout…
sorryhyun/anima_lora
The trainer ↔ animetools boundary — what the curation split moved out, the typed request/stage API the make targets build, the git-pin dev loop and its stale-venv trap, and the tests that guard the…
sorryhyun/anima_lora
Free-fit native-shape bucketing — the token bands per edge tier, tier choice at preprocess time, the compiledynamicseq coupling and per-tier graph budget, and why training never needs --targetres.
sorryhyun/anima_lora
Caption pipeline — position-clause grammar (never hand-split a caption), make caption-autotag modes, make caption-position (v2 rewrite rules and gates), and the preprocess-stage wiring for both.
sorryhyun/anima_lora
The ComfyUI node map — which node lives in which standalone repo vs in-tree under customnodes/, where each is symlinked, and the vendor-sync rule for the vendor/ subsets.
Works with
Categories
Submit, monitor, and manage GPU jobs through the anima daemon (make daemon-, make gen, make run-status, MCP bridge, discovery). Daemon is an agent skill from sorryhyun/anima_lora. Submit, monitor, and manage GPU jobs through the anima daemon (make daemon-, make gen, make run-status, MCP bridge, discovery).
Daemon fits situations like: AI & LLM Engineering work in your project.
Run `npx skills add sorryhyun/anima_lora --skill daemon -a claude-code`. Or copy the skill folder (.claude/skills/daemon in sorryhyun/anima_lora) into .claude/skills/daemon in your project. Claude Code loads it when a task matches its description.
Run `npx skills add sorryhyun/anima_lora --skill daemon -a codex`. Or copy the skill folder (.claude/skills/daemon in sorryhyun/anima_lora) into .agents/skills/daemon in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sorryhyun/anima_lora --skill daemon -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/daemon, .gemini/skills/daemon, .github/skills/daemon and .opencode/skills/daemon in your project.
Going by SKILL.md and its folder, Daemon needs the command-line tools its instructions call (make and python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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.
Daemon is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Daemon: Codebase Management (giancarloerra/SocratiCode, 3.3k stars), Hugging Face LLM Trainer (huggingface/skills, 11k stars), Ktx (Kaelio/ktx, 1.6k stars) and Tool Use Data Synthesis (sunny-glow/Auto-BenchMax, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
sorryhyun (a GitHub user) maintains it in sorryhyun/anima_lora, which has 125 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 8, 2026.
Source: sorryhyun/anima_lora on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.