Academic Paper Writing Pipeline
Imbad0202/academic-research-skills
Runs a 12-agent pipeline that plans, drafts, cites, reviews and formats academic papers, with modes for revision, rebuttals, abstracts and citation checks.
Entry point for research writing in Oleafly. An agent skill from Oleafly/Oleafly.
$ npx skills add Oleafly/Oleafly --skill oleafly-research-loop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Oleafly/Oleafly oleafly-research-loop --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/Oleafly/Oleafly.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src-tauri/resources/skills/oleafly-research-loop .claude/skills/oleafly-research-loop && 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 "oleafly-research-loop" agent skill from https://github.com/Oleafly/Oleafly/tree/main/src-tauri/resources/skills/oleafly-research-loop into .claude/skills/oleafly-research-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "oleafly-research-loop", 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/Oleafly/Oleafly/tree/main/src-tauri/resources/skills/oleafly-research-loopType 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 Oleafly/Oleafly --skill oleafly-research-loop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Oleafly/Oleafly oleafly-research-loop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Oleafly/Oleafly.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src-tauri/resources/skills/oleafly-research-loop .agents/skills/oleafly-research-loop && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "oleafly-research-loop" agent skill from https://github.com/Oleafly/Oleafly/tree/main/src-tauri/resources/skills/oleafly-research-loop into .agents/skills/oleafly-research-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "oleafly-research-loop", 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 Oleafly/Oleafly --skill oleafly-research-loop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Oleafly/Oleafly oleafly-research-loop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Oleafly/Oleafly.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src-tauri/resources/skills/oleafly-research-loop .cursor/skills/oleafly-research-loop && 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 "oleafly-research-loop" agent skill from https://github.com/Oleafly/Oleafly/tree/main/src-tauri/resources/skills/oleafly-research-loop into .cursor/skills/oleafly-research-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "oleafly-research-loop", 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/Oleafly/Oleafly.git --path src-tauri/resources/skills/oleafly-research-loop--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 Oleafly/Oleafly --skill oleafly-research-loop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Oleafly/Oleafly oleafly-research-loop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Oleafly/Oleafly.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src-tauri/resources/skills/oleafly-research-loop .gemini/skills/oleafly-research-loop && 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 "oleafly-research-loop" agent skill from https://github.com/Oleafly/Oleafly/tree/main/src-tauri/resources/skills/oleafly-research-loop into .gemini/skills/oleafly-research-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "oleafly-research-loop", 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 Oleafly/Oleafly oleafly-research-loopInstalls 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 Oleafly/Oleafly --skill oleafly-research-loop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Oleafly/Oleafly.git skills-src && mkdir -p .github/skills && cp -r skills-src/src-tauri/resources/skills/oleafly-research-loop .github/skills/oleafly-research-loop && 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 "oleafly-research-loop" agent skill from https://github.com/Oleafly/Oleafly/tree/main/src-tauri/resources/skills/oleafly-research-loop into .github/skills/oleafly-research-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "oleafly-research-loop", 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 Oleafly/Oleafly --skill oleafly-research-loop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Oleafly/Oleafly oleafly-research-loop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Oleafly/Oleafly.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src-tauri/resources/skills/oleafly-research-loop .opencode/skills/oleafly-research-loop && 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 "oleafly-research-loop" agent skill from https://github.com/Oleafly/Oleafly/tree/main/src-tauri/resources/skills/oleafly-research-loop into .opencode/skills/oleafly-research-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "oleafly-research-loop", 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.
oleafly-research-loopEntry point for research writing in Oleafly. An agent skill from Oleafly/Oleafly.
Oleafly Research Loop is an agent skill from Oleafly/Oleafly. Entry point for research writing in Oleafly. Load this first when the user says they are writing a paper, starting a literature review, drafting related work, checking citations, preparing figures, responding to reviewers, or getting a submission ready. It sets the project layout every other research skill honours, plans the work with updatetodos, and names the exact skill to load at each stage of the loop.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files and assets (for example `assets/claims.md`, `assets/reading-list.md` and `assets/source-note.md`). Compatibility notes: Works in any Oleafly project. Stages that compile need a document engine (LaTeX, Typst or Markdown). Handoffs to vendored skills need Python 3.11 or newer on…
It sits in Research & Science, covering Literature review, LaTeX and Citation management. It works with LaTeX. The repository describes itself as: The local-first AI assisted research workspace for scientific writing & publishing. Research, Write, Compile, Verify and Publish in LaTeX • Typst • Markdown • Git-native • Open…. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit aa643a0. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
update_todosget_todoslist_notesremember_noteproject_maplist_filessearch_projectread_filecompileload_skill…and 5 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3From 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.
Works in any Oleafly project. Stages that compile need a document engine (LaTeX, Typst or Markdown). Handoffs to vendored skills need Python 3.11 or newer on the login shell PATH.
From compatibility in the SKILL.md frontmatter.
Oleafly Research Loop loads about 3.7k tokens when it runs, and up to ~7.1k if it reads all its reference files. Until then it costs about 108 tokens; SKILL.md has 1,717 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 Oleafly/Oleafly at commit aa643a0, republished under its MIT licence (© Oleafly). 1,717 words, ~3,700 tokens.
.claude/skills/oleafly-research-loop/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.This is the router for a whole research project. It does two jobs. It fixes the file layout that every other Oleafly research skill reads and writes, so a sweep done in one session is still findable three weeks later. And it tells you which skill to load for the stage you are actually in, so you do not improvise a procedure that already exists.
Load this skill when the work spans more than one step. For a single question ("what is the DOI for this paper") answer it directly and skip the loop.
Do this once per session, in this order. It is cheap and it stops you from rebuilding state that already exists.
list_notes with {}. Earlier turns may have recorded the bibliography path, the venue, the citation style, or a naming convention. Notes beat guessing.list_files with {}. Look for research/, figures/, review/, and any .bib file. This tells you whether the layout below already exists or has to be created.project_map with {} when the tool is offered. It returns files, sections, labels, bibKeys, macros, inputGraph, unresolvedRefs and unresolvedCites. bibKeys and unresolvedCites are the two fields the research skills depend on. The tool is only available when the document engine advertises a document index, so if it is not in your tool list, fall back to step 4.search_project with {"query": "\\addbibresource"} and then {"query": "\\bibliography{"} for LaTeX, or {"query": "bibliography"} for Typst and Markdown. The hit tells you which .bib file the project actually compiles against. Use that file. Do not create references.bib when another one is already wired in.If list_files shows no research/ directory, create the layout in step 3 before doing any literature work.
update_todos takes {"todos": [{"id": "...", "content": "...", "status": "pending"}]} and replaces the whole list every call, so always send the full list. Statuses are pending, in_progress, completed, cancelled. Keep exactly one item in_progress. The list is capped at 30 items and each content at 240 characters.
Write the plan in loop stages, not in tool calls. A good first plan for "help me write this paper" looks like this.
{"todos": [
{"id": "sweep", "content": "Build the reading list for the research question", "status": "in_progress"},
{"id": "related", "content": "Draft related work from the reading list", "status": "pending"},
{"id": "claims", "content": "Audit the claims in the draft against their sources", "status": "pending"},
{"id": "figures", "content": "Prepare the figures the argument needs", "status": "pending"},
{"id": "review", "content": "Self review the full manuscript", "status": "pending"},
{"id": "submit", "content": "Run the pre-submission checks for the target venue", "status": "pending"}
]}Update the list when the shape of the work changes, not after every tool call.
Create what is missing with create_file and {"path": "research/notes", "is_dir": true}. The layout is the contract between skills, so do not rename parts of it to suit one session.
| Path | Holds | Written by |
|---|---|---|
research/reading-list.md | One table of every paper considered, with status | oleafly-literature-sweep |
research/sources/<key>.md | Abstract plus provenance for one paper | oleafly-literature-sweep |
research/sources/<key>.pdf | The downloaded PDF for one paper, when there is one | oleafly-literature-sweep |
research/notes/*.md | Your own reading notes, synthesis, open questions | any skill, and the user |
research/claims.md | The claim audit table | oleafly-verify-claims |
review/*.md | Review reports, response letters, checklists | the review and submission skills |
figures/ | Generated and inserted figures | oleafly-figure-prep, insert_figure |
the project .bib | Every citation the document compiles against | oleafly-literature-sweep, oleafly-related-work |
<key> is the citation key, formed as <firstauthor><year>-<slug>, all lowercase ASCII. First author surname, four digit year, then two or three words from the title joined by hyphens. vaswani2017-attention-transformer. Use the same key for the .bib entry, the source note, and the PDF, so the three always line up. If the project's existing .bib uses a different key scheme, follow the project. Consistency inside one bibliography matters more than this convention.
Record the deviation with remember_note when you follow a project scheme instead of this one.
Load one skill at a time with load_skill and {"id": "<skill id>"}. It returns the skill's absolute directory, its file tree, its frontmatter, and its instructions. Read a supporting file with read_skill_file and {"id": "<skill id>", "path": "references/handoffs.md"}.
| Stage | You are doing this | Load |
|---|---|---|
| Research | Finding and annotating papers | oleafly-literature-sweep |
| Research | Judging whether the evidence in a paper holds up | scientific-critical-thinking |
| Research | A formal systematic review with screening counts | literature-review |
| Research | Raw access to eleven literature APIs, DOI and PMID resolution, open-access PDFs | paper-lookup |
| Research | Finding datasets, code, tools rather than papers | research-lookup |
| Research | Generating and sharpening research ideas | scientific-brainstorming, hypothesis-generation |
| Research | Designing a study or sizing it | experimental-design, statistical-power |
| Research | Analysing data inside the project | oleafly-data-analysis, then exploratory-data-analysis or statistical-analysis |
| Authoring | Starting a manuscript from nothing | oleafly-manuscript-scaffold |
| Authoring | Writing related work or background | oleafly-related-work |
| Authoring | Checking that the prose is supported by its citations | oleafly-verify-claims |
| Authoring | Cleaning, deduplicating, reformatting a bibliography | citation-management |
| Authoring | Prose quality, IMRaD structure, reporting guidelines | scientific-writing |
| Authoring | Fixing a compile that will not go green | oleafly-latex-build |
| Authoring | Starting from a venue template | template-generate, venue-templates |
| Authoring | Turning an imported PDF or messy source into project source | pdf-to-latex, import-refine |
| Figures | Building or repairing figures in the project | oleafly-figure-prep |
| Figures | Plotting data | scientific-visualization |
| Figures | Conceptual diagrams and schematics | scientific-schematics |
| Review | Reviewing your own manuscript before anyone else sees it | oleafly-review-manuscript |
| Review | Writing a formal referee report | peer-review |
| Review | Judging a venue, a journal, or an author record | scholar-evaluation |
| Submission | Format, page limits, anonymity, checklist for a venue | oleafly-pre-submission |
| Submission | Answering reviewers point by point | oleafly-response-letter |
| Submission | Grant and funding applications | research-grants |
| Communication | Slides and posters from the paper | oleafly-slides-and-posters |
| Communication | Beamer decks and poster layouts in detail | scientific-slides, pptx-posters |
| Tooling | Driving an OpenResearch experiment from the project | openresearch |
Full trigger phrases are in references/handoffs.md. Read it when the user's request does not map cleanly onto a row above.
remember_note takes {"content": "..."} and the note survives into later sessions. Save a fact only when a future turn would get the work wrong without it.
Worth saving: the path of the bibliography the project compiles against, the citation key scheme when it differs from this skill's, the target venue and deadline, the citation style, a user preference about tone or terminology, and whether Python is available (step 6).
Not worth saving: anything already visible from project_map or list_files, the content of a paper, or a step you are about to do anyway. Notes are read on every turn, so noise there is expensive. Remove a stale one with forget_note and its id from list_notes.
Several vendored skills ship Python scripts. Check the interpreter once per session, before the first script, not before each one.
Call run_command with {"command": "python3 --version"}.
remember_note and {"content": "python3 <version> is available for vendored skill scripts"}.paper-lookup and scientific-writing scripts will fail. Use the native Oleafly tools instead and tell the user which step was skipped.literature_search, verify_citation and project_library_search alone. Tell the user plainly that the deeper database coverage needs Python 3.11 or newer on their PATH, and do not try to install it.run_command runs one shell line from the project root through the login shell, with a 120 second timeout and a 200 KiB output cap. Every call asks the user for approval under the default policy, so batch related work into one command rather than issuing five. When a script produces more than a screenful, redirect it to a file under research/ and read it back with read_file, which is cheaper and does not get truncated at 200 KiB.
Scripts live inside the skill directory, not the project, so always call them by absolute path with the directory load_skill returned.
python3 "<skill dir>/scripts/search_openalex.py" "graph neural network expressivity" --limit 25 -o research/sources/openalex-raw.jsonQuote the path. Skill directories can contain spaces.
Reading ten papers in one context is slow and the details blur. Spawn one agent per paper when you have more than three to read.
spawn_agent takes {"task_name": "read_vaswani2017", "prompt": "..."} and returns immediately. The prompt must be self contained. The subagent shares your project tools and approval gates, and it cannot spawn agents of its own.
A prompt that works:
Read research/sources/vaswani2017-attention-transformer.pdf with read_file.
Write research/notes/vaswani2017-attention-transformer.md containing:
the problem the paper attacks, the method in three sentences, the evidence
offered, the stated limitations, and one line on how it relates to
<the project's research question>.
Do not edit any other file. Reply with the three sentence method summary.Give each agent a distinct output path so two agents never write the same file. Collect with wait_agent and {"timeout_ms": 300000}, which returns whichever finishes first. Then close_agent with {"agent": "<id or task path>"}, because finished agents keep counting toward the concurrency limit until closed.
Do not spawn agents for work that mutates the manuscript. Parallel writes to the same section conflict and the loser is silently discarded.
| What happened | What to do |
|---|---|
project_map is not in your tool list | The engine has no document index. Use search_project and read_file instead, and say so once rather than retrying |
A tool returns {"error": "No project open"} | Stop. Ask the user to open a project. Nothing in this loop works without one |
A tool result has "declined": true | The user refused that action. Do not retry it or route around it. Ask what they would prefer |
run_command reports timed_out | The 120 second cap was hit. Split the command, narrow the query, or use the native tools |
compile returns success: false | Read errors, then get_log with {} for context, fix the source, compile again. Do not proceed to the next stage on a red build |
A vendored script is missing from the tree load_skill returned | The skill was installed without it. Fall back to the native tool path and note the gap in your answer |
| The user asks for a paper you cannot verify | Say you could not verify it. Never write a citation key or a .bib entry for a paper you have not resolved through verify_citation |
update_todos reflects the stages actually remaining, with one item in_progress.research/, figures/ and any review/ directories the work needs exist.project_map or search_project.remember_note.compile is green, or the user has been told exactly what is broken and why.references/handoffs.md maps user phrasing to a skill id.references/project-layout.md gives the file formats, key rules, and provenance fields in full.references/tooling.md covers approval behaviour, subagent limits, and the vendored script surface.assets/reading-list.md, assets/source-note.md and assets/claims.md are the starting templates for the three shared files.© Oleafly, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (references, assets) in src-tauri/resources/skills/oleafly-research-loop of Oleafly/Oleafly.
Open the folder on GitHubat commit aa643a0
Oleafly Research Loop 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 |
|---|---|---|---|---|---|---|
| Oleafly Research Loop this skillOleafly/Oleafly | 206 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Academic Paper Writing PipelineImbad0202/academic-research-skills | 51k | — | ~16k | Automated safety check: Pass | Custom licence | |
| Arxiv MCP Serverblazickjp/arxiv-mcp-server | 3.2k | — | ~353 | Automated safety check: Pass | Apache-2.0 | |
| Arxiv Paper Writerappautomaton/latex-arxiv-SKILL | 457 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Arxiv Paper Writeryunshenwuchuxun/latex-paper-skills | 265 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Paper SkillcLin-c/paper-skill | 118 | — | ~2.6k | Automated safety check: Pass | MIT |
Imbad0202/academic-research-skills
Runs a 12-agent pipeline that plans, drafts, cites, reviews and formats academic papers, with modes for revision, rebuttals, abstracts and citation checks.
blazickjp/arxiv-mcp-server
A skill your agent uses when finding, comparing, reading, or monitoring arXiv papers, including requests for abstracts, citation graphs, original LaTeX, section-level technical details, or…
appautomaton/latex-arxiv-SKILL
Write LaTeX ML/AI review articles for arXiv using the IEEEtran template and verified BibTeX citations.
yunshenwuchuxun/latex-paper-skills
Writes ML/AI review and survey papers for arXiv using the IEEEtran LaTeX template with verified BibTeX citations.
cLin-c/paper-skill
End-to-end, Chinese-first academic research and publication workflow for reading papers, literature reviews, research framing, manuscript planning and writing, Chinese-English translation, LaTeX…
EvoScientist/EvoSkills
Generates structured literature survey reports from collected papers using a multi-stage pipeline: outline generation (query-type adaptive) → draft survey → section-by-section expansion → summary…
Oleafly/Oleafly
Perform bounded, local exploratory analysis of explicitly supported scientific files.
Oleafly/Oleafly
Design experiments and studies BEFORE data is collected — choosing a design, randomizing, blocking, and laying out treatment combinations so results are interpretable.
Oleafly/Oleafly
Create and audit truthful, accessible, publication-ready scientific figures with Matplotlib, Seaborn, or Plotly.
Oleafly/Oleafly
Facilitates evidence-aware scientific ideation with independent generation, structured discussion, explicit assumptions, transparent evaluation, adversarial review, and decision logs.
Oleafly/Oleafly
Turn a research question into an annotated reading list with provenance.
Oleafly/Oleafly
Turn reviewer comments and the changes already made into a point-by-point response letter, in LaTeX or Typst and in plain text.
Works with
Categories
Entry point for research writing in Oleafly. An agent skill from Oleafly/Oleafly. Oleafly Research Loop is an agent skill from Oleafly/Oleafly. Entry point for research writing in Oleafly.
Oleafly Research Loop fits situations like: says they are writing a paper; starting a literature review; drafting related work; checking citations.
Run `npx skills add Oleafly/Oleafly --skill oleafly-research-loop -a claude-code`. Or copy the skill folder (src-tauri/resources/skills/oleafly-research-loop in Oleafly/Oleafly) into .claude/skills/oleafly-research-loop in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Oleafly/Oleafly --skill oleafly-research-loop -a codex`. Or copy the skill folder (src-tauri/resources/skills/oleafly-research-loop in Oleafly/Oleafly) into .agents/skills/oleafly-research-loop 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 Oleafly/Oleafly --skill oleafly-research-loop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/oleafly-research-loop, .gemini/skills/oleafly-research-loop, .github/skills/oleafly-research-loop and .opencode/skills/oleafly-research-loop in your project.
Going by SKILL.md and its folder, Oleafly Research Loop needs the command-line tools its instructions call (python3). Our summary lists: Python 3. Its frontmatter pre-approves these tools: update_todos, get_todos, list_notes, remember_note, project_map, list_files, search_project, read_file, compile, load_skill, read_skill_file, run_command, spawn_agent, wait_agent, close_agent. Compatibility (from SKILL.md): Works in any Oleafly project. Stages that compile need a document engine (LaTeX, Typst or Markdown). Handoffs to vendored skills need Python 3.11 or newer on the login shell PATH..
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.
Oleafly Research Loop is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Oleafly Research Loop: Academic Paper Writing Pipeline (Imbad0202/academic-research-skills, 51k stars), Arxiv MCP Server (blazickjp/arxiv-mcp-server, 3.2k stars), Arxiv Paper Writer (appautomaton/latex-arxiv-SKILL, 457 stars) and Arxiv Paper Writer (yunshenwuchuxun/latex-paper-skills, 265 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Oleafly (a GitHub organization) maintains it in Oleafly/Oleafly, which has 206 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 8, 2026.
Source: Oleafly/Oleafly on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.