A fully automatic, domain-aware AI research agent for Geoscientists, Remote Sensing researchers, and GIScientists — powered entirely by Claude Code skills.
$ npx -y skills add grind-lab-core/night_owl_research_agent --agent claude-code
A fully automatic, domain-aware AI research agent for Geoscientists, Remote Sensing researchers, and GIScientists — powered entirely by Claude Code skills.

NORA runs inside Claude Code. There is no Python entry point, no server to spin up, and no build step — you just drop the skills into Claude Code's skill directory and invoke the launcher.
Install Claude Code first. Any of the official distributions works:
npm install -g @anthropic-ai/claude-code
claude --version
Sign in once with your Anthropic account so Claude Code can reach the API.
git clone https://github.com/GRIND-Lab-Core/night_owl_research_agent.git
cd night_owl_research_agent
Claude Code looks for skills under ~/.claude/skills/ (user-level, available in every project) or <project>/.claude/skills/ (project-local). Copy the entire skills/ folder from this repo into one of those locations.
macOS / Linux (user-level — recommended):
mkdir -p ~/.claude/skills
cp -R skills/* ~/.claude/skills/
Windows PowerShell (user-level):
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.claude\skills" | Out-Null
Copy-Item -Recurse -Force .\skills\* "$env:USERPROFILE\.claude\skills\"
Windows bash / Git Bash:
mkdir -p "$USERPROFILE/.claude/skills"
cp -R skills/* "$USERPROFILE/.claude/skills/"
Project-local alternative (skills only visible when Claude Code is opened in this folder):
mkdir -p .claude/skills
cp -R skills/* .claude/skills/
Also copy the launcher slash command so /launcher is available:
# macOS / Linux
mkdir -p ~/.claude/commands
cp .claude/commands/launcher.md ~/.claude/commands/
# Windows PowerShell
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.claude\commands" | Out-Null
Copy-Item -Force .\.claude\commands\launcher.md "$env:USERPROFILE\.claude\commands\"
Verify the install — open Claude Code and run:
/skills
You should see the NORA skills (full-pipeline, lit-review, idea-discovery-pipeline, deploy-experiment, paper-draft, …) listed.
Open the night_owl_research_agent folder in Claude Code (this gives NORA access to CLAUDE.md, RESEARCH_PLAN.md, output/, memory/, and tools/), then pick one of the two entry points:
Option A — interactive launcher (best for first-time users):
/launcher
The launcher walks you through a short questionnaire — research topic, stage to start from, control flags (AUTO_PROCEED, HUMAN_CHECKPOINT, COMPACT_MODE, REVIEWER_DIFFICULTY) — and routes to the correct skill.
Option B — end-to-end pipeline (best when you already know what you want to run):
Skill: full-pipeline
"Your research direction here, e.g. 'urban soundscape inequality via street-view + audio foundation models'"
or, if you prefer a slash-style invocation:
/full-pipeline "your research direction"
full-pipeline chains all four stages:
idea-discovery-pipeline → deploy-experiment → auto-review-loop → generate-report
and then hands off to paper-writing-pipeline for the manuscript.
Tip: for reproducibility, fill in RESEARCH_PLAN.md (or BRIEF.md) in the project root before launching. When either file is present, skills read it as the authoritative brief and ignore conflicting $ARGUMENTS.
.mcp.json and register with Claude Code (/mcp inside the chat) to enable filesystem, fetch, arxiv_mcp, geo_mcp, github, and brave_search. See mcp/README_MCP.md.settings.json wires harness/hooks/*.sh into Claude Code's lifecycle (writes handoff.json on session end, validates tool use, sends desktop notifications). On Windows, run the hook scripts via Git Bash or WSL.wandb login once on the host where deploy-experiment will launch training.ANTHROPIC_API_KEY (for Claude Code), plus any optional keys you want to use (SEMANTIC_SCHOLAR_API_KEY, GITHUB_TOKEN, BRAVE_API_KEY).| Requirement | Why |
|---|---|
| Claude Code (CLI / desktop / web / VS Code) | Runtime for skills |
| Anthropic account + API credit | Powers the agent |
Python 3.10+ with pip install arxiv requests | tools/arxiv_fetch.py, tools/semantic_scholar_fetch.py |
Conda env with geopandas, pysal, libpysal, esda, spreg, mgwr, rasterio, xarray | Track B (spatial) experiments |
| CUDA GPU (local / remote SSH / Modal) | Track A (deep-learning) experiments — optional |
NORA automates the complete academic research lifecycle using Claude Code skills — Markdown-defined workflows that Claude reads and executes, selecting appropriate tools and methods based on context.
nvidia-smi → CUDA, then MPS, then none); when a local GPU is detected, every pilot launches on it instead of silently falling back to CPU or remote.deploy-experiment so any ML/DL workload (pilot or full) executes on the local GPU when present.medium / hard / nightmare reviewer modes via Codex MCP, codex exec, or a Claude subagent. Domain personas (giscience, remote-sensing, spatial-data-science) apply geo-specific must-checks only where the paper's claims actually depend on them instead of penalizing every paper for missing MAUP / GWR discussion.output/NARRATIVE_REPORT.md, then runs paper-writing-pipeline to produce a journal-ready manuscript (Markdown → LaTeX → PDF/DOCX) with journal-specific profiles for IJGIS, IEEE TGRS, ISPRS JPRS, RSE, AAG, TGIS, and more.NORA is a skills-first system. All research logic lives in Markdown skill files that Claude reads and executes.

Skills describe workflow logic in Markdown. Claude reads a skill to understand the workflow, then decides the exact sequence of actions based on context — the skill provides guidelines and decision frameworks, not rigid procedures.
You (or /launcher)
↓ invokes
Skill SKILL.md ←─── reads domain knowledge from skills/knowledge/
↓ Claude decides what to do
CLI tools (tools/arxiv_fetch.py, etc.) + inline Python + MCP servers as needed
↓ produce
Output files (reports, paper-cache, figures, manuscript)
↓ read by
Next skill in pipeline
The single installed slash command is /launcher. Every other skill is invoked by name (Claude Code's native Skill tool) or by being called internally from another skill.
23 workflow skills in skills/ plus domain knowledge in skills/knowledge/. Each skill is a self-contained Markdown workflow file.
| Skill | What it does |
|---|---|
full-pipeline | Master pipeline: idea discovery → experiment → review → report → paper |
lit-review | Search + synthesize + gap analysis (ArXiv, Semantic Scholar, local papers, Zotero, Obsidian) |
idea-discovery-pipeline | Full idea pipeline: lit-review → generate-idea → novelty-check → idea-review → experiment-design-pipeline |
generate-idea | Brainstorm 8–12 ideas, filter, pilot-test top 3, rank (called by idea-discovery-pipeline) |
novelty-check | Verify idea novelty via multi-source search + external reviewer |
idea-review | External critical review of research ideas (Codex MCP) |
refine-research | Iterative method refinement via external review (up to 5 rounds, score ≥ 9) |
experiment-design | Claim-driven experiment roadmap with run order, budget, decision gates |
experiment-design-pipeline | One-shot wrapper: refine-research → experiment-design |
deploy-experiment | Deploy experiments — mandatory local-GPU check at Step 0, then Track A (GPU ML) and/or Track B (CPU spatial) |
data-download | Discover, evaluate, download datasets with provenance tracking |
spatial-analysis | Research-question-driven spatial analysis: classification → ESDA → method → conditional diagnostics → interpretation, with a human checkpoint before adding or skipping heavyweight spatial checks |
auto-review-loop | Up to 4 adversarial review rounds with per-criterion floors |
generate-report | Consolidate lit-review + idea + experiment + review artifacts into output/NARRATIVE_REPORT.md |
paper-writing-pipeline | Orchestrates paper-plan → paper-figure-generate → paper-draft → paper-review-loop → paper-covert |
paper-plan | Build section outline + figure plan (output/PAPER_PLAN.md) |
paper-figure-generate | Generate publication-quality figures, maps, diagrams, and captions |
paper-draft | Turn output/PAPER_PLAN.md into a journal-quality Markdown manuscript |
paper-review-loop | Reviewer-editor review of the draft manuscript and iterative revision |
paper-covert | Convert final manuscript into venue submission package (modular LaTeX, PDF, DOCX) |
submit-check | Validate manuscript against target-journal requirements |
training-check | Monitor running experiments for stalls/failures |
| File | Domain |
|---|---|
spatial-methods.md | Spatial statistics, regression, autocorrelation |
geoai-domain.md | GeoAI, spatial deep learning, foundation models |
academic-writing.md | Academic writing conventions |
apa-citations.md | APA 7th edition citation formatting |
disaster-resilience.md | Disaster management, community resilience |
environmental-health.md | Environmental epidemiology, exposure assessment |
literature-mining.md | Literature search and synthesis strategies |
research-iteration.md | Iterative research refinement patterns |
Edit CLAUDE.md before starting a long run:
night-owl-research-agent is a Claude Code plugin with 22 hand-picked skills, indexed on Flowy in the Research category. Install it with the command on its page. It includes auto-review-loop, data-download, deploy-experiment. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it