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 | bash
Then confirm:
vis help
Prereqs: git, java 25+, and the Clojure CLI 1.12+ — the installer checks for them and tells you what's missing. Building the native binary needs GraalVM Community Edition 25.1.3 — exactly that edition and version, pinned in .graalvm-version — plus at least 16 GB RAM. Get it with bin/require-graalvm --install, then sdk env (the repo ships a .sdkmanrc). Oracle GraalVM and stock JDKs are rejected by the build, on purpose: CE's Classpath Exception is what keeps the shipped binary FOSS, and Truffle hard-refuses any other version against the org.graalvm.* pins in deps.edn.
vis runsvis is the stable command. It proxies to the best available distribution, in this order:
vis update ($VIS_HOME/install, default ~/.vis/install)target/vis)target/vis.jar)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 and target/vis.jar
clojure -M:format check
clojure -M:lint src extensions test build.clj
clojure -M:test
Can you improve this documentation? These fine people already did:
Karol Wojcik, blockether-deployer & Karol WójcikEdit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |