julia-evaluation

Activates when user asks to run, evaluate, or test Julia code in a persistent REPL session, or mentions Julia REPL, Julia session, or hot-reloading Julia changes.

Julia REPL — Behavioral Rules

Use the MCP tools (eval, reset, pkg, activate, session, revise, log_viewer, info) for interactive Julia work. Prefer julia script.jl via bash for one-shot scripts.

Before Every Eval

Always display code in a readable julia code block BEFORE calling eval. The MCP permission prompt shows code as an escaped string which is unreadable.

After Eval

MCP tool results are collapsed in Claude Code. For visual output (plots, heatmaps), tell the user to expand the tool result (Ctrl+O) to see it with full color — do NOT paste ANSI art into your message (it loses colors and streams token-by-token). For structured text (tables, matrices, DataFrames), paste in a fenced code block. Do not paste simple scalars or errors.

Revise vs Reset

Prefer revise — it preserves session state. Only reset when required.

ChangeAction
Function/method body or signaturerevise(action="revise")
Struct layout (Julia < 1.12)reset required
Corrupted state / stuck codereset required

After editing .jl files, call revise(action="revise") to hot-reload (the PostToolUse hook may do this automatically).

Error Recovery

ErrorFix
UndefVarErrorRe-run definition or check spelling
MethodErrorCheck argument types
LoadErrorpkg(action="add", packages="...")
cannot redefinereset (struct layout change)
Hung/infiniteeval(code=..., timeout=5) or reset

First Use

On first Julia use in a conversation, ask which environment to activate (current directory, specific path, or global).

Capabilities

  • Sessions persist variables, functions, and packages across evals
  • Multiple named sessions provide isolated workers
  • timeout parameter kills hung code and respawns the worker
  • max_output prevents context overflow from large results
  • isolated=true evals in a fresh module without polluting Main
  • ephemeral=true evals in a disposable temporary session