Vis is a coding agent that writes Python into a sandboxed GraalPy runtime, keeps durable state outside the context window, and inspects/changes the host project through tools.
One command clones Vis, checks the runtime tools, and puts the vis launcher on your PATH.
macOS & Linux (bash):
curl -fsSL https://raw.githubusercontent.com/Blockether/vis/main/bin/install-source | bashThen confirm:
vis helpPrereqs: git, java 25+, and the Clojure CLI 1.12+ — the installer checks for them and tells you what's missing. Building the native binary locally needs Oracle GraalVM or GraalVM CE 25+ with at least 16 GB RAM.
vis is the stable command. It proxies to the best available distribution, in this order:
- managed native binary from
vis update($VIS_HOME/install, default~/.vis/install) - repo native binary (
target/visortarget/vis.exe) - repo JVM uberjar (
target/vis.jar) - live source (
clojure -M:vis)
Use vis --jvm ... to skip native and force the JVM path. The JVM path needs a stock JDK 25 (e.g. sdk install java 25.0.3-tem) or a GraalVM matching the pinned Truffle line (graal-25.1.3); a mismatched GraalVM (e.g. CE 25.0.2) is rejected at startup with a clear message.
vis native # builds target/vis(.exe) and target/vis.jar
clojure -M:format check
clojure -M:lint src extensions test build.clj
clojure -M:test