Processes large-context files using an iterative, recursive LLM approach.
Install
mkdir -p .claude/skills/rlm-jdubray && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/12218" && unzip -o skill.zip -d .claude/skills/rlm-jdubray && rm skill.zipInstalls to .claude/skills/rlm-jdubray
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Run a Recursive Language Model-style loop for long-context tasks. Uses a persistent local Python REPL and an rlm-subcall subagent as the sub-LLM (llm_query).Key capabilities
- →Initialize a persistent Python REPL state
- →Scout context quickly by peeking at file content
- →Choose a chunking strategy for large context files
- →Materialize chunks as files for subagent processing
- →Invoke a subagent for chunk-level analysis
- →Synthesize a final answer from collected evidence
How it works
The skill initializes a Python REPL, chunks a large context file, delegates chunk analysis to a subagent, and then synthesizes the results into a final answer.
Inputs & outputs
When to use rlm
- →Process large documents
- →Extract information from logs
- →Analyze massive datasets
About this skill
rlm (Recursive Language Model workflow)
Use this Skill when:
- The user provides (or references) a very large context file (docs, logs, transcripts, scraped webpages) that won't fit comfortably in chat context.
- You need to iteratively inspect, search, chunk, and extract information from that context.
- You can delegate chunk-level analysis to a subagent.
Mental model
- Main Claude Code conversation = the root LM.
- Persistent Python REPL (
rlm_repl.py) = the external environment. - Subagent
rlm-subcall= the sub-LM used likellm_query.
How to run
Inputs
This Skill reads $ARGUMENTS. Accept these patterns:
context=<path>(required): path to the file containing the large context.query=<question>(required): what the user wants.- Optional:
chunk_chars=<int>(default ~200000) andoverlap_chars=<int>(default 0).
If the user didn't supply arguments, ask for:
- the context file path, and
- the query.
Step-by-step procedure
-
Initialise the REPL state
python3 .claude/skills/rlm/scripts/rlm_repl.py init <context_path> python3 .claude/skills/rlm/scripts/rlm_repl.py status -
Scout the context quickly
python3 .claude/skills/rlm/scripts/rlm_repl.py exec -c "print(peek(0, 3000))" python3 .claude/skills/rlm/scripts/rlm_repl.py exec -c "print(peek(len(content)-3000, len(content)))" -
Choose a chunking strategy
- Prefer semantic chunking if the format is clear (markdown headings, JSON objects, log timestamps).
- Otherwise, chunk by characters (size around chunk_chars, optional overlap).
-
Materialise chunks as files (so subagents can read them)
python3 .claude/skills/rlm/scripts/rlm_repl.py exec <<'PY' paths = write_chunks('.claude/rlm_state/chunks', size=200000, overlap=0) print(len(paths)) print(paths[:5]) PY -
Subcall loop (delegate to rlm-subcall)
- For each chunk file, invoke the rlm-subcall subagent with:
- the user query,
- the chunk file path,
- and any specific extraction instructions.
- Keep subagent outputs compact and structured (JSON preferred).
- Append each subagent result to buffers (either manually in chat, or by pasting into a REPL add_buffer(...) call).
- For each chunk file, invoke the rlm-subcall subagent with:
-
Synthesis
- Once enough evidence is collected, synthesise the final answer in the main conversation.
- Optionally ask rlm-subcall once more to merge the collected buffers into a coherent draft.
Guardrails
- Do not paste large raw chunks into the main chat context.
- Use the REPL to locate exact excerpts; quote only what you need.
- Subagents cannot spawn other subagents. Any orchestration stays in the main conversation.
- Keep scratch/state files under .claude/rlm_state/.
When not to use it
- →When the context file is small and fits within chat context
- →When subagents are not available for chunk-level analysis
- →When the user query does not require iterative inspection or extraction
Prerequisites
Limitations
- →Does not paste large raw chunks into the main chat context
- →Subagents cannot spawn other subagents
- →Scratch/state files must be kept under .claude/rlm_state/
How it compares
This skill processes large context files by iteratively chunking and analyzing them with a subagent, which differs from directly processing the entire file in a single chat context.
Compared to similar skills
rlm side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| rlm (this skill) | 0 | 6mo | Review | Advanced |
| jupyter-notebook | 30 | 6mo | Review | Intermediate |
| obspy-data-api | 1 | 6mo | No flags | Intermediate |
| source-coding | 1 | 7mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
jupyter-notebook
davila7
Use when the user asks to create, scaffold, or edit Jupyter notebooks (`.ipynb`) for experiments, explorations, or tutorials; prefer the bundled templates and run the helper script `new_notebook.py` to generate a clean starting notebook.
obspy-data-api
benchflow-ai
An overview of the core data API of ObsPy, a Python framework for processing seismological data. It is useful for parsing common seismological file formats, or manipulating custom data into standard objects for downstream use cases such as ObsPy's signal processing routines or SeisBench's modeling API.
source-coding
parcadei
Problem-solving strategies for source coding in information theory
biopython
davila7
Primary Python toolkit for molecular biology. Preferred for Python-based PubMed/NCBI queries (Bio.Entrez), sequence manipulation, file parsing (FASTA, GenBank, FASTQ, PDB), advanced BLAST workflows, structures, phylogenetics. For quick BLAST, use gget. For direct REST API, use pubmed-database.
graph-algorithms
parcadei
Problem-solving strategies for graph algorithms in graph number theory
rlm
brainqub3
Run a Recursive Language Model-style loop for long-context tasks. Uses a persistent local Python REPL and an rlm-subcall subagent as the sub-LLM (llm_query).