From julia-mcp
Use when running Julia code, managing Julia sessions, or working with Julia projects. Provides guidance on using the Julia MCP server's persistent REPL sessions and background job execution. DON'T FORGET TO LOAD THIS BEFORE USING THE MCP SERVER
How this skill is triggered — by the user, by Claude, or both
Slash command
/julia-mcp:julia-replThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use `julia_eval` instead of running Julia via Bash. The MCP server maintains a persistent Julia session with Revise.jl loaded, so:
Use julia_eval instead of running Julia via Bash. The MCP server maintains a persistent Julia session with Revise.jl loaded, so:
A PreToolUse hook on Bash will block foreground julia commands and redirect you to julia_eval. Background Bash Julia is allowed with a reminder. Do not fight the hook — use the MCP server.
Default: do not set a timeout parameter at all. The built-in default (60s) handles the vast majority of calls — short computations, tests of a function, plot generation, quick queries. Setting a timeout yourself is almost always wrong:
timeout=0 speculatively. Backgrounding has real overhead — the poller spins up, you have to wait on a Bash task, and a 20-second job becomes a multi-step polling dance. If the job turns out to be short, you have wasted time and tokens for no reason.timeout=0 when you have concrete reason to believe the job will run for minutes or longer — a large training run, a full test suite on a fresh session, heavy precompilation after ]add, a long simulation. "It might be slow" is not sufficient; estimate based on what the code actually does.timeout=0 for those either.julia_eval returns [BACKGROUNDED] job_id=<id> sentinel=<path>.poll-sentinel.sh Bash command to run.Bash(command="<provided command>", run_in_background=true). A PermissionRequest hook auto-approves poll-sentinel.sh commands, so no user confirmation is needed.tail -f on a log file written alongside the sentinel. When the job finishes it prints === SUCCESS === or === ERROR === and exits, which surfaces as a TaskOutput notification.Once a background job is running and the poller is attached, do not keep calling julia_job_status or TaskOutput to "check in" on it. This is a common failure mode: the agent polls every few seconds, burning tokens and time, when the poller is already going to notify on completion.
julia_job_status or TaskOutput if (a) the user explicitly asks for a status update, or (b) you genuinely need partial output to decide what to do next (rare — usually you can wait).julia_job_cancel(job_id) to abort a running job if needed.While a background job is running, julia_eval calls to the same session are rejected. You can:
julia_job_statusjulia_job_canceljulia command (it won't have the persistent session, but works independently)Revise.jl handles code changes automatically. A PreToolUse hook on julia_restart will deny the first attempt and allow the second. This is a speed bump, not a wall — only restart if the session is truly broken.
npx claudepluginhub jacobadenbaum/julia-mcp-plugin --plugin julia-mcpCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.