Gargo is a terminal text editor written in Rust.
- Rust stable toolchain
- A terminal with true color support
Run with an empty scratch buffer:
cargo runOpen a file or directory:
cargo run -- path/to/file_or_directoryRun optimized build:
cargo run --release -- path/to/fileQuick install:
curl -fsSL https://github.com/aplio/gargo/raw/refs/heads/master/install.sh | shInstall a specific version:
curl -fsSL https://github.com/aplio/gargo/raw/refs/heads/master/install.sh | GARGO_VERSION=v0.1.13 shInstall to a custom directory:
curl -fsSL https://github.com/aplio/gargo/raw/refs/heads/master/install.sh | GARGO_BIN_DIR=$HOME/.bin shChecksum verification is enabled when a release includes checksums.txt. Set GARGO_SKIP_VERIFY=1 to skip verification.
- Legacy/manual install still works by downloading a release tarball from GitHub Releases and placing
gargoon yourPATH.
Supported assets:
gargo-v<version>-x86_64-apple-darwin.tar.gzgargo-v<version>-aarch64-apple-darwin.tar.gzgargo-v<version>-x86_64-unknown-linux-gnu.tar.gzgargo-v<version>-aarch64-unknown-linux-gnu.tar.gz
cargo install --path .gargo --server includes a browser-based editor whose modal core runs in-tab as
WebAssembly. The wasm bundle is embedded into the binary at build time, so
release binaries (and gargo --update) ship it automatically — no extra setup
for end users.
When building from source, generate the bundle before cargo build so it gets
embedded (it lives in assets/web_editor/pkg/, which is gitignored):
cargo build --lib --target wasm32-unknown-unknown --release
wasm-bindgen target/wasm32-unknown-unknown/release/gargo.wasm \
--out-dir assets/web_editor/pkg --out-name gargo_wasm --target webThis needs the wasm32-unknown-unknown target (rustup target add wasm32-unknown-unknown) and wasm-bindgen-cli at the exact version of the
wasm-bindgen crate in Cargo.lock. If the bundle is missing, cargo build
still succeeds and the editor's asset routes report "wasm not built".
i: enter insert modeEsc: return to normal modeCtrl+S: save current bufferCtrl+Q: close current buffer, or quit when it is the last oneSPC f: open file pickerSPC p: open command paletteSPC g: open flat changed-files sidebar with status badgesSPC G: open Git view- Mouse: left-drag an editor split border to resize pane widths/heights
docs/README.mdfor architecturedocs/CONTRIBUTING.mdfor development workflow