๐Ÿฆ€ Gajae Code

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, and complete_research support session control and completion.
Boundary: RLM does not expose normal repository mutation tools such as 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.

Your browser can't display the embedded PDF. Download the example report (PDF, 3.8 MB).

Example RLM deliverable โ€” alpha_report_btcusd.pdf (22 pages, 20 figures). Generated one-shot from raw OHLCV data.