AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
An agentic development environment for Julia: AI agents drive a keyboard-driven TUI + REPL to read, run, and surface code — and coordinate across sessions and machines.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
An opinionated, agentic development system for the Julia language.
Drive Claude Code agents from the keyboard — they write and run the code; you
steer, watch, and review.
A real working session (5120×2160) — nav · preview · agent · inline REPL figure · state-colored session strip. Click for full size.
Ship of Tools turns Julia development into directing Claude Code agents — you
steer, watch, and review; they write and run the code. It is opinionated: the
layout is designed, not configured.README 전문 보기 ↗Pre-1.0: interfaces still change between releases.
Ship of Tools is an agentic development environment for Julia: you and a Claude Code session share one Julia REPL, in a desktop window that also shows your figures and files; Codex sessions run alongside without it for now. Linux; Windows and macOS run as frontends to a Linux backend (macOS is experimental). See Platforms.
The window is GPU-rendered, with a keyboard-driven, terminal-style layout: a navigation tree, a file preview, an agent pane and a Julia REPL drawer. The agents write code and run it in the persistent REPL while you watch and review the results.
Compared with Claude Code next to a REPL in tmux, or with VS Code, its Julia extension and a Claude Code panel:
Agents
git in a shell session. To change a file yourself, focus the preview and press e for the built-in editor; Ctrl+S saves.Julia live loop
r on a .jl file runs it in a fresh REPL, restarting the session's REPL and dropping whatever the agent had built in Main; Shift+R includes it in the current one. The drawer is Ship of Tools' own input line, with pkg mode (]) and history, but no ? help, ; shell or Tab completion. See Dispatching code.wglshow(fig) opens an interactive WGLMakie figure in your browser; Pluto notebooks run on the backend host.Previews
Machines
Extend
See the feature gallery for a short recording of each one.
Install frontend and backend on one Linux machine yourself:
curl -fsSL https://raw.githubusercontent.com/kalidke/ship-of-tools/main/scripts/install.sh | bash -s -- --local
Or start a coding-agent session (Claude Code or Codex) on the target machine and say:
Install Ship of Tools: fetch https://raw.githubusercontent.com/kalidke/ship-of-tools/main/docs/INSTALL-AGENT.md and follow it.
Use --backend <ssh-alias> for a frontend here with the backend on a remote host, or --be-only for a headless backend.
To update a Linux or macOS machine, tell a coding agent running there "update sot from the repo", or run bash ~/.local/share/sot/repo/current/scripts/install.sh yourself: with no options it moves to the newest release on the channel the machine already runs, never moves backwards, takes its role from the hosts.toml entry for this computer (else a role flag, else what the install recorded), and ends with one PASS, ONE STEP LEFT or FAIL line.
Needs on every machine:
juliaup default 1.12, if your default channel is older; SOT_JULIA_BIN, if set, names the daemon's Julia and must meet the floor too).--be-only backend is a static binary with no glibc floor).Optional on the backend machine: node/npm for typeset math, poppler-utils for PDF previews and ffmpeg for video poster frames.
What it touches:
~/.local/share/sot, plus user lingering (loginctl enable-linger) so the user-level sotd systemd service keeps the backend running after logout on Linux.~/.sot-comm/claude-layer, which only a session Ship of Tools starts (a row, or ccb) loads, except four onboarding skills (sot-install, sot-setup, sot-statusline-setup, sot-gh-auth) that stay in your global ~/.claude/skills because you run them before any row exists; the work-state hooks are carried by that same session, so a claude you start yourself sees neither. Two mail hooks (the end-of-turn check and the subagent guard) are merged into your settings.json and ~/.claude-auth/<name>/settings.json. An install removes the skills and hooks an earlier release put in your own folders only where they are exact copies of what it shipped; anything else of yours stays. The Codex skills and plugin still go into your global ~/.codex and ~/.agents.--dangerously-bypass-approvals-and-sandbox --dangerously-bypass-hook-trust). What each setting means is in How agent sessions are launched.No isolated mode yet: try it under a separate user account or in a VM. See What the installer changes.
The full list, Windows, source builds and updating are in Install details.
Run sot-launch (or the desktop entry). Then:
| Key | What happens |
|---|---|
s, then [+ create new] | Start a session in a project directory (Quickstart) |
f / m | Files mode / Modules mode in the navigation pane; the preview follows the cursor |
Ctrl+J | Show or hide the Julia REPL |
Ctrl+? / F1 | The focused pane's actions / the searchable Help drawer |
The full walkthrough is Your first session; every key is in Keybindings.
A preview for a new file type is a small Julia package: a FileType subtype, a matches method and a preview method, with no Rust changes. A third-party plugin currently loads only from a source checkout, not from a release install; see Discovery.
The documentation home has a short CSV example, and the HDF5 preview tutorial walks through a full one.
In active development. Linux; Windows and macOS run as frontends to a Linux backend (macOS is experimental). See Platforms.
Read the contributing guide before opening a PR; design decisions are in docs/history/adr/.
Dual-licensed: AGPL-3.0-or-later, with a commercial license available for products and services that cannot meet the AGPL's source-sharing terms. Details in LICENSING.md.