Repository navigation
R package 0.16.0 · clauder-mcp 0.16.0 · clauder 0.1.0
Agents can now work in a live Python session as well as an R one, and both
halves work in Positron as well as RStudio.
Python sessions
import clauder
clauder.start()The agent executes code in that session, where your loaded dataframes and
fitted models already are, and sees the figures it draws. Works in Positron,
Jupyter, VS Code, or a bare REPL. clauder is a separate PyPI package, so R
users never install it and Python users never need R.
Sessions announce their language, so one bridge reaches both and an agent picks
either by name:
Active sessions (2):
analysis [python] — port 8790, pid 8088, started 2026-09-14T10:50:09
modelling [r] — port 8787, pid 84615, started 2026-09-14T09:12:44
A Python session gets the live environment, plots, logging with attribution,
and multi-agent coordination. It does not get the editor or the manuscript
audit tools, which drive the IDE through rstudioapi and have no Python
equivalent. The 27 tools that run R code now say so plainly instead of
returning a Python syntax error. Full matrix in the README.
Positron
R in Positron needs nothing special, but three things were stopping it, and two
of them also affected RStudio.
- Editor tools required a non-empty
ctx$id. Positron returns a usable
editor context whose id is NULL, and everyrstudioapicall here treats
id = NULLas the current document, so all four editor tools refused to work
there. Where RStudio fills an id in, behaviour is unchanged. - A supplied
pathcould not open a file into an empty editor, because the
context check ran first. It now opens the path, then reads the context. documentOpenfalls back tonavigateToFile, which Positron implements.
suggest_edit stages the change unsaved rather than using
showEditSuggestion(), which Positron does not implement. Accept by saving,
reject with undo.
Fixes
search_project_codecould hang R for minutes. It walkedroot_dir
recursively with no bound, androot_dirdefaults to".". In a session
whose working directory was the home folder it read every R file on the
machine, with no output and no way to tell what was wrong. It now refuses the
home directory and/rather than walking them by accident, skips vendored
directories, and caps the scan with a partial-search notice. Pass
allow_wide = TRUEto do it deliberately.- The coordination roster listed agents from weeks earlier. The log is
append-only, so a reused session name accumulates every agent that ever wrote
to it. Agents not seen for a day are now omitted; the log is untouched and
hide_after_s = Infshows all of it. - A busy port now moves to the next free one instead of failing.
Citation
citation("ClaudeR") prints a formatted reference and BibTeX entry, and GitHub
shows a "Cite this repository" button.
Install
devtools::install_github("IMNMV/ClaudeR")Restart R afterwards. For the bridge, uvx --refresh clauder-mcp. For Python
sessions, pip install clauder.