marimo-pair
Drive a live marimo notebook as a workspace: run Python in the same kernel the user does, inspect live notebook state, and commit durable notebook changes.
Skill by itzmetanjim
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/itzmetanjim-marimo-pair
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/marimo-pair
Tools it pre-approves 5
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Bash(bash**/scripts/discover-servers.sh*),**/scripts/execute-code.shRead
What's inside
- Skill name
marimo-pair- Description
- Drive a live marimo notebook as a workspace: run Python in the same kernel the user does, inspect live notebook state, and commit durable notebook changes. Use when the user wants to start a marimo notebook or pair on an active marimo session.
- License
- AGPL-3.0
- Allowed tools
- Bash(bash, **/scripts/discover-servers.sh, *),, Bash(bash, **/scripts/execute-code.sh, *),, Read
- Instructions
- 282 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Pre-approves some shell commands
Files (8)
- SKILL.md
- execution-context.md · reference/
- finding-marimo.md · reference/
- gotchas.md · reference/
- notebook-improvements.md · reference/
- rich-representations.md · reference/
- discover-servers.sh · scripts/
- execute-code.sh · scripts/
SKILL.md (first lines)
marimo is a reactive Python runtime for building reproducible Python programs
(marimo notebooks). Cells are connected by the variables they define and
reference. Running a cell re-executes dependents in dataflow order. The active
runtime holds the kernel namespace, cell state, and dataflow graph. The
notebook (`.py` file) is the artifact the kernel writes from that state while a
session is running.
A user interacts with the same runtime via a notebook UI with cells, outputs,
and widgets.
**WARNING. The active runtime is the source of truth.** During a session, you
SHOULD NOT modify the associated `.py` file directly. File edits WILL NOT reach
the active kernel or user, and the kernel may overwrite them on save. Use
`marimo._code_mode` (`cm`) for notebook changes. Reading disk is fine, but
prefer `ctx.cells[...].code` for current cell code.
## Connect to a Notebook
Use the bundled script (`bash scripts/execute-code.sh`) or MCP
(`execute_code(...)`) to run Python in a live marimo kernel.
`execute-code.sh` always takes `--url`. If the user provides a notebook URL,
target it directly:
```bash
bash scripts/execute-code.sh --url http://localhost:2718 -c "print('connected')"
```
Pass code with `-c CODE`, `-` for stdin, or a file path:
```bash
bash scripts/execute-code.sh --url http://localhost:2718 - <<'PY'
import marimo._code_mode as cm
async with cm.get_context() as ctx:
cid = ctx.create_cell("x = df.head()")
ctx.run_cell(cid)
PY
```
If the user gives no URL, find or start a notebook. Look for a running server
with `bash scripts/discover-servers.sh`, MCP `list_sessions()`, or local
process context, and pass the `url` it reports to `--url`. With one notebook
open, the script targets it automatically; with several, pass `--file` with
the notebook's file key.
If no server is running and the user wants a notebook, start marimo with
`--no-token` (and without `--headless`) so it auto-registers for discovery. The
notebook UI must be open for `execute-code` to target it. The right invocation
depends on context (project tooling, global install, sandbox mode). If the
notebook file contains a PEP 723 `#
/// script` header, it MUST be opened with `--sandbox` — otherwise marimo
ignores the inline dependencies. See
[finding-marimo.md](reference/finding-marimo.md) for the full decision tree and
[execution-context.md](reference/execution-context.md) for selector resolution,
scripts, MCP, and shell quoting.
## Scratchpad Scope
`execute-code` evaluates Python in marimo's scratchpad: a temporary namespace
with a shallow copy of the kernel globals. Notebook variables are available by
name, but new top-level bindings and rebindings are discarded after each call.
In-place mutations to notebook-owned objects can persist because those names
still reference live objects.
Each call reports stdout and stderr from the scratchpad, plus console output
from notebook cells it causes to run, including reactive descendants.
### Ordinary Python
Use ordinary Python in the scratchpad to inspect variables, sample data, test
transformations, probe APIs, check imports, and read widget state.
```python
print(df.head())
x = 10
print(x)
```
Here `df` comes from notebook globals, while `x` is a scratchpad-local binding.
`x` exists for this call only and WILL NOT be added to notebook globals.
### Persist with `cm`
Top-level scratchpad assignments and rebindings are temporary. To persist work,
including new variables, you MUST submit changes through `marimo._code_mode`
(`cm`).
`marimo._code_mode` is a PRIVATE, UNSTABLE agent API (note the leading
underscore). It exists for tools like this skill to drive a live kernel from
the scratchpad. DO NOT import it from notebook cells, library code, or
anything a user would run — methods can change or disappear across marimo
versions and kernels. Treat every `import marimo._code_mode as cm` as
scratchpad-only.
At session start, inspect what `cm` exposes in the active kernel:
```python
import marimo._code_mode as cm
help(cm)
```
Open a code-mode context to queue notebook changes.
```python
import marimo._code_mode as cm
async with cm.get_context() as ctx:
cid = ctx.create_cell("x = df.head()")
ctx.run_cell(cid)
```
The scratchpad supports top-level async code. Use `async with` directly;
wrapping it in `asyncio.run(...)` is unnecessary and can conflict with the
kernel's event loop.
After this block exits and the new cell runs, `x` is notebook state. LaterFrom itzmetanjim/coolton, AGPL-3.0.
More from itzmetanjim/coolton
- 0.564score
slack-bot-builder
terminal-skills
Builds Slack bots and integrations using the Slack API (Bolt framework).
SkillBFreshness: B★ 3Claude Code +9 - 0.564score
retro-marimo-pair
itzmetanjim
Session retrospective for improving marimo-pair and marimo._code_mode.
SkillBFreshness: B★ 3Claude Code +9 - 0.519score
agent-email-patterns
itzmetanjim
Architecture patterns for AI agents that communicate over email -- why agents need dedicated inboxes rather than human email accounts, infrastructure/provider…
SkillCFreshness: C★ 3Claude Code +9 - 0.519score
agentmail
itzmetanjim
Build with the AgentMail TypeScript or Python SDK for inbox, message, thread, draft, attachment, domain, allow/block list, webhook, and WebSocket workflows…
SkillCFreshness: C★ 3Claude Code +9 - 0.516score
agentmail-sdk
itzmetanjim
Deprecated alias of the agentmail skill, kept so existing installs and pinned URLs keep resolving.
SkillCFreshness: C★ 3Claude Code +9 - 0.516score
email-for-ai-agents
itzmetanjim
Deprecated alias of the agent-email-patterns skill, kept so existing installs and pinned URLs keep resolving.
SkillCFreshness: C★ 3Claude Code +9 - 0.514score
agentmail-mcp
itzmetanjim
Configure or troubleshoot the hosted AgentMail MCP server for Codex, Claude Code, Cursor, or another Streamable HTTP MCP client.
SkillCFreshness: C★ 3Claude Code +9 - 0.514score
agentmail-cli
itzmetanjim
Operate AgentMail from a shell with the official CLI.
SkillCFreshness: C★ 3Claude Code +9 - 0.511score
rossmann-voice
itzmetanjim
Louis Rossmann's writing voice for general prose: testable-number density, high sentence-length variance, claim-then-proof structure, contractions, contempt…
SkillCFreshness: C★ 3Claude Code +9 - 0.511score
agentmail-toolkit
itzmetanjim
Add AgentMail tools to agent frameworks with the TypeScript or Python AgentMail Toolkit.
SkillCFreshness: C★ 3Claude Code +9 - 0.510score
agentmail-manage-inboxes
itzmetanjim
Create, list, inspect, update, or delete AgentMail inboxes through the connected MCP server.
SkillCFreshness: C★ 3Claude Code +9 - 0.510score
agentmail-check-email
itzmetanjim
Read, search, summarize, and triage AgentMail inboxes through the connected MCP server.
SkillCFreshness: C★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Aug 17, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- AGPL-3.0
- Repository
- github.com/itzmetanjim/coolton
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from itzmetanjim
- 0.564score
retro-marimo-pair
itzmetanjim
Session retrospective for improving marimo-pair and marimo._code_mode.
SkillBFreshness: B★ 3Claude Code +9 - 0.519score
agent-email-patterns
itzmetanjim
Architecture patterns for AI agents that communicate over email -- why agents need dedicated inboxes rather than human email accounts, infrastructure/provider…
SkillCFreshness: C★ 3Claude Code +9 - 0.519score
agentmail
itzmetanjim
Build with the AgentMail TypeScript or Python SDK for inbox, message, thread, draft, attachment, domain, allow/block list, webhook, and WebSocket workflows…
SkillCFreshness: C★ 3Claude Code +9 - 0.516score
agentmail-sdk
itzmetanjim
Deprecated alias of the agentmail skill, kept so existing installs and pinned URLs keep resolving.
SkillCFreshness: C★ 3Claude Code +9 - 0.516score
email-for-ai-agents
itzmetanjim
Deprecated alias of the agent-email-patterns skill, kept so existing installs and pinned URLs keep resolving.
SkillCFreshness: C★ 3Claude Code +9 - 0.514score
agentmail-mcp
itzmetanjim
Configure or troubleshoot the hosted AgentMail MCP server for Codex, Claude Code, Cursor, or another Streamable HTTP MCP client.
SkillCFreshness: C★ 3Claude Code +9
Cite this page
marimo-pair skill. Agent Mart. https://agentmart.dev/skills/itzmetanjim-marimo-pair (last updated 2026-10-24)