Show HN: Marimo pair – Reactive Python notebooks as environments for agents
TL;DR Highlight
This is an open-source tool that allows you to directly drop-in an AI agent into a running Marimo notebook session, using the notebook's reactive execution state itself as the agent's working memory.
Who Should Read
Python developers who want to interactively integrate AI agents like Claude Code into their data science or ML experiments with Marimo/Jupyter notebooks. It's particularly suitable for those who want agents to collaborate within a 'live' session rather than simply submitting temporary scripts.
Core Mechanics
- marimo-pair is a tool that directly attaches an agent to a running Marimo notebook session, allowing the agent to read and execute notebook cells and manipulate its state.
- Marimo uses a reactive execution model with Python notebooks, unlike traditional Jupyter. When a variable in one cell changes, other dependent cells are automatically re-executed. This structure allows the notebook runtime itself to serve as the agent's persistent memory.
- Installation is done with a single line: `npx skills add marimo-team/marimo-pair`, and it supports the Agent Skills open standard, working with any agent tool. A dedicated plugin for Claude Code is also available.
- The core scripts used by the agent are simple: `discover-servers.sh` (detecting running Marimo servers) and `execute-code.sh` (executing code). Access to the notebook can be automatically detected without a token (--no-token) or authenticated using the `MARIMO_TOKEN` environment variable.
- Unlike traditional agent approaches that submit ephemeral scripts, agents working with marimo-pair can understand the notebook's cell structure and current state, enabling more natural collaboration between humans and models with shared context.
- According to the development team, this project was a unique engineering experience of creating an 'API that is consumed by the model'. They were able to repeatedly change the skill interface without version migration because the model could read documentation and discover new features within the session.
- Marimo notebooks' ability to well-describe their current state and structure is a key advantage, providing agents with rich context. The agent can explore and experiment while simultaneously creating reproducible artifacts (the notebook).
- Currently, the project has received 169 stars on GitHub (as of 2025) and is in its early stages, released up to v0.0.11. It is open-source under the Apache-2.0 license.
Evidence
- A user shared their experience successfully completing a data science task with a Medicaid dataset using marimo-pair, stating that it 'worked right away without bugs'.
- Users noted that Marimo's reactive model's inability to reassign variables caused confusion for the agent (Claude). The LLM repeatedly 'forgot' that variables cannot be absolutely reassigned due to the graph structure, which is a necessary trade-off for Marimo's interactivity.
- A developer who used an external persistent store like BigQuery for agent state isolation when building a multi-agent trading system acknowledged the advantage of marimo-pair's approach: 'If the runtime itself is memory, you get reproducibility for free'.
- A developer from Posit introduced a simple REPL-based MCP tool (mcp-repl) and sparked a detailed discussion about the design trade-offs between 'maintaining a simple interaction model like REPL and keeping the context small' and 'introducing a notebook structure like Marimo early on to allow the model to explore and generate artifacts simultaneously'.
- Similar open-source projects like Jeremy Howard's solveit and ipyai (fast.ai/answer.ai), and independent developers' agentnb, cleon, and replsh were shared in the comments, demonstrating that the idea of 'using notebooks as agent execution environments' is being explored by multiple teams simultaneously.
How to Apply
- If you are already using Claude Code and performing data analysis in Marimo notebooks, you can install the plugin with the commands `/plugin marketplace add marimo-team/marimo-pair` → `/plugin install marimo-pair@marimo-team-marimo-pair`, allowing Claude to directly access and execute cells in the currently open notebook session and view the results.
- If you are annoyed by repetitive Bash permission prompts, you can add the absolute path of the installed skill's scripts to the `permissions.allow` array in `.claude/settings.json` to automatically allow them. Configure per-project in the project root's `.claude/settings.json`, or globally in `~/.claude/settings.json`.
- If you want to manage data analysis work reproducibly as a team, the agent's work is saved cell by cell in the notebook, making the notebook itself an experimental artifact and a prompt history. Leveraging this feature to version control agent work results in the notebook ensures reproducibility.
- If you are using an agent tool other than Claude Code, you can install it with `npx skills add marimo-team/marimo-pair` if the tool supports the Agent Skills open standard. If npx is not available, you can use `uvx deno -A npm:skills add marimo-team/marimo-pair` if uv is installed.
Code Example
# Claude Code plugin installation
/plugin marketplace add marimo-team/marimo-pair
/plugin install marimo-pair@marimo-team-marimo-pair
# Agent Skills (npx) installation
npx skills add marimo-team/marimo-pair
# Installation in uv environment (when npx is not available)
uvx deno -A npm:skills add marimo-team/marimo-pair
# Allow automatic detection without token when running Marimo server
marimo edit notebook.py --no-token
# Use environment variable for authentication if required
export MARIMO_TOKEN=your_token_here
# .claude/settings.json - Automatic Bash permission allowance configuration
{
"permissions": {
"allow": [
"Bash(bash /path/to/skills/marimo-pair/scripts/discover-servers.sh *)",
"Bash(bash /path/to/skills/marimo-pair/scripts/execute-code.sh *)"
]
}
}Terminology
Related Papers
Show HN: ctx – Search the coding agent history already on your machine
Claude Code, Cursor, Codex 등 코딩 에이전트가 이전 세션의 논의·결정·실패 시도를 잊지 않도록 SQLite로 인덱싱해 재사용할 수 있게 해주는 오픈소스 CLI 도구다.
Micro-Agent: Beat Frontier Models with Collaboration Inside Model API
vLLM 팀이 단일 모델 API 호출 뒤에서 여러 모델이 협업하는 'Micro-Agent' 개념을 공개했습니다. 별도의 에이전트 코드 없이 라우터 레이어에서 모델 조합을 실행해 GPT-4급 결과를 더 저렴하게 낼 수 있다는 아이디어입니다.
Ornith-1.0: self-improving open-source models for agentic coding
Gemma 4와 Qwen 3.5를 기반으로 파인튜닝한 코딩 특화 오픈소스 모델로, RL(강화학습)을 통해 스캐폴드(에이전트 실행 구조)까지 함께 최적화하는 방식을 주장하지만, 커뮤니티에서는 벤치마크 과최적화에 불과하다는 의심을 받고 있다.
Entity Binding Failures in Tool-Augmented Agents
AI 에이전트가 올바른 도구를 선택해도 잘못된 대상에 실행하는 'Entity Binding 실패' 문제를 정의하고, 이를 막는 실행 정책을 평가한 논문.
Herdr: Agent multiplexer that lives in your terminal
여러 AI 코딩 에이전트(Claude, Codex 등)를 하나의 터미널에서 동시에 실행·관리할 수 있는 Rust 기반 오픈소스 툴로, tmux처럼 세션이 유지되고 SSH로 원격 접속도 가능해 멀티 에이전트 워크플로우를 크게 단순화해준다.
Ornith-1.0: Self-scaffolding LLMs for agentic coding
모델이 문제 풀이 전략(scaffold)을 직접 생성하고 개선하는 자기강화 학습 프레임워크를 적용한 오픈소스 코딩 특화 LLM으로, 9B 소형 모델부터 397B 대형 모델까지 라인업을 갖추고 SWE-Bench 등 주요 벤치마크에서 Claude Opus 4.7을 능가하는 성능을 보여줬다.