Mode guide
gjc rlm research mode
Run a notebook-style research session with a persistent Python kernel, live notebook capture, and a synthesized report โ without giving the session write/edit tools.
Start a research session
gjc rlm is for research, not implementation: analyze data, inspect files, search the web, compute statistics, make plots, and produce a report. It runs in two ways from the same command.
# Interactive โ open a REPL-style research session you drive cell by cell
gjc rlm
# Interactive with a seed question
gjc rlm "What drives the spike in orders?"
# Autonomous (one-shot) โ hand it a task and let it research end to end
gjc rlm "task: extract alpha and visualize with data ./BTCUSD.parquet and write a PDF report with visualizations"
# Load an optional data/project brief
gjc rlm --data ./DATA.md "task: find the strongest signal and explain the evidence"
Use a normal gjc session instead when the task is implementation or repository mutation.
Autonomous vs interactive
- Autonomous (one-shot). Prefix your prompt with
task:to set an explicit objective. RLM plans, runs Python cells, reads your data, iterates on the analysis, and synthesizes the final deliverable on its own โ no further input needed. Ideal for "analyze this dataset and produce a report" jobs. - Interactive. Launch with no
task:and steer the session like a notebook โ ask a question, inspect the result, ask the next one. You can still ask it to write a report at any point.
--data is optional
--data DATA.md loads a short brief describing your dataset, columns, conventions, and goals so the agent starts with context. It is optional โ if you point RLM at a data file directly in the task (e.g. ...with data ./BTCUSD.parquet...), it will read and profile the data itself before analyzing, even without a DATA.md.
What tools does RLM get?
RLM is intentionally constrained. It exposes a hard-gated research toolset rather than the full coding-agent mutation surface.
pythonโ persistent Python kernel for analysis, plotting, and computation.readโ inspect files, docs, images metadata, archives, URLs, and data sources.web_searchโ gather current external information when needed.- Inspection-only bash prefixes,
goal, andcomplete_researchsupport session control and completion.
edit, write, task, or browser automation. The allowlist is asserted after tool-registry assembly so leaked tools fail the launch.Artifacts
Each RLM run writes durable research artifacts under .gjc/rlm/<session>/:
notebook.ipynbโ every executed Python cell, written live with atomic temp-rename updates and post-write validation.report.mdโ synthesized when the session exits.- metadata and state files used to resume/report the research session.
Recommended loop
# 1. (Optional) jot a short data brief
cat DATA.md
# 2a. Autonomous: hand RLM a task and walk away
gjc rlm "task: find the strongest signal and explain the evidence with data ./DATA.parquet"
# 2b. Or interactive: drive it cell by cell
gjc rlm
> profile ./DATA.parquet, then test which signals predict forward returns
# 3. Review the outputs under .gjc/rlm/<session>/ (notebook.ipynb, report.md)
# plus any files the agent was asked to write (e.g. a PDF report)
Example: one-shot alpha report
This report was produced by a single autonomous run โ no DATA.md, just a task pointing at a data file:
gjc rlm "task: extract alpha and visualize with data <Datapath> and write report with pdf with visualizations"
From that one prompt, RLM profiled ~6.8M one-minute BTC/USD bars, computed information coefficients across 41 signals and 205 signal-horizon pairs, ran cost/capacity analysis, generated 20 figures, and assembled a 22-page PDF with an executive summary, conclusions, and an appendix โ entirely on its own.