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 installs vis-agent — the only Vis command there is.
curl -fsSL https://github.com/Blockether/vis/releases/download/installer/install-vis-agent | bash
vis-agent help
vis-agent runtime # what runs, and where it lives
vis-agent update # move the command and its runtime to the newest commit
Clojure library:
;; deps.edn
{:deps {com.blockether/vis {:mvn/version "0.1.39"}}}
Vis Companion is the phone client for a Vis gateway you run yourself — it drives the same sessions as the TUI (see Gateway & pairing). Both stores are in public testing; no invite, no tester list, just the link.
| Platform | Public test link | Status |
|---|---|---|
| iOS / iPadOS | https://testflight.apple.com/join/4anYT4Wk | TestFlight public link, open to anyone with the URL (requires the free TestFlight app) |
| Android | https://play.google.com/apps/testing/com.blockether.viscompanion | Play open testing (beta track), package com.blockether.viscompanion |
The app is useless on its own: it needs a gateway. Start one with vis-agent gateway, then pair by scanning the QR it prints. Feedback goes to karol@blockether.com (or the TestFlight feedback button).
There is nothing to choose: how Vis was installed decides what runs, and everything it installs lives under ~/.vis. Where the command file sits decides nothing either — a copy of the wrapper inside a checkout still runs the runtime Vis owns, never the tree around it.
| Runtime | Runs | Comes from |
|---|---|---|
native | the private vis-agent-native sidecar beside the command | a release bundle or the container image |
jvm | clojure -M:vis from the source Vis owns, pinned to main's newest commit | install-vis-agent |
vis-agent runtime # what runs, where it lives, what the source is pinned to
vis-agent update # move the command and its runtime to the newest
vis-agent update takes the installed runtime forward and carries the command with it; it never swaps one runtime for the other. A native build wins whenever one is installed. Full detail: Runtime distributions.
Apache License 2.0 — see LICENSE.
The models the voice extension can install are third parties' work and keep their own terms — every one of them is credited in THIRD_PARTY_MODELS.md, which is generated from the manifest the installer reads.
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 |