OXIS 2open source · Windows & Linux

Your real shell,
programmable.

OXIS is a development workspace built around the shell you already use — PowerShell, bash, zsh or fish. It adds tabs and split panes, a built-in editor, per-project workspaces with tasks and workflows, and Lua for everything else.

Free and open source · Apache 2.0 · all downloads

Windows 10 & 11Linux x64self-updatingno telemetry
A live demo of the prompt — click it and type 'help. It simulates OXIS; nothing runs on your machine.
What it is

More than a terminal.
A workspace around your shell.

OXIS starts your actual shell in a real pseudo-console and leaves it alone. Around it, it puts the things you would otherwise juggle across several apps — and makes each of them scriptable.

01 · REAL SHELLS

Your shell, unchanged

Your profile, aliases and prompt load as usual. Anything that doesn't start with ' goes straight to the shell — REPLs, prompts and full-screen programs like vim and htop included. Pick a different shell per tab.

pwsh 7Windows PowerShellcmdGit BashWSLbashzshfish
02 · WORKSPACES

One per project

A workspace links to the project's folder and its own Git remote, and carries its tasks, workflows and plugins. Home shows its state at a glance: branch, changes, tasks and recent files.

'workspace init'task test'workflow check
03 · LUA

Programmable throughout

Commands, workflows, keymaps, events and Home panels are plain Lua 5.4 — in a plugin, a project's workspace.lua or your config.lua. Save, and it reloads. Plugins declare their permissions.

oxis.commandoxis.workflowoxis.askoxis.every
Home

The project at a glance.

Home is the workspace's start page: its folder, Git remote and plugins; the tasks you run most, one click each; and the project's Git state, today's activity and recent files beside them.

  • Git: the branch, what's changed and the last commit; Today: the commands, tasks and workflows you ran
  • The workspaces list sits beside it; 'hide workspace tucks it away
  • Plugins can add their own card with oxis.dashboard
OXIS Home: the acme-web workspace with its tasks, Git state, today's activity and recent files
Terminal

Tabs, splits and one prompt.

Every tab and split pane is its own shell, opened in the folder you're working in. One prompt at the bottom sends to the focused pane, with history, reverse search and completion in any shell.

  • Tab completes files, Git branches, npm run scripts, SSH hosts and make targets; history suggests the rest
  • Ctrl+Shift+Space labels every URL, path and hash on screen — type the letter to copy
  • Fold, re-run or copy any command's output; 'broadcast types into every pane at once
  • Hyperlinks, clipboard and progress from the tools that send them (OSC 8, 52, 9;4)
Two split panes in OXIS: Git on the left, the project's tests on the right
Editor

An editor beside your shell.

'edit opens any file next to the prompt, with a file tree, tabs and a minimap. Mistakes are underlined as you type, names are suggested, and HTML and Markdown get a live preview.

  • Ctrl+P to any file, search in files, find & replace, go to symbol
  • Vim's Normal, Insert and Visual modes — or turn them off
  • Click src/app.ts:12:5 in a compiler error to open it right there
The OXIS editor with the file tree open beside a JavaScript file
Commands

Everything is a command.

Start a line with an apostrophe and OXIS takes it: more than 60 built-in commands for files, themes, tasks, workflows, plugins and workspaces. Ctrl+Shift+P finds any of them as you type.

  • The palette also searches plugin commands, tasks and your history
  • Ctrl+, opens Settings: every setting, grouped and searchable
  • 'update install swaps in the newest build and rolls back if it doesn't start
The OXIS command palette searching for a command
In the box

Everything ships in one binary.

One native program, written in Rust and drawn by the GPU (Direct3D 12, Vulkan or Metal). Nothing to install beside it: Lua 5.4 is inside.

Per-tab shells

PowerShell, Git Bash, WSL or cmd on Windows; your $SHELL on Linux. 'shell gitbash opens a tab with another.

Session restore

Tabs, splits, folders, recent output and unsaved editor text come back after a restart.

Workspaces

Per-project folder, Git remote, tasks, workflows and plugins; detects Node, Go, Rust and Python projects and suggests tasks.

Workflows

Steps with retries, conditions, environment and parallel runs, failing on real exit codes.

Lua plugins & Market

Real Lua 5.4 with LuaRocks and C modules, each plugin in its own VM with declared permissions; 'market install adds more.

Language tools

Language servers for the editor: Rust, TypeScript, Python, Go, C/C++ and more built in; Lua, Zig, Ruby, PHP and Terraform from the Market.

Built-in editor

Live problems, suggestions, search, minimap, Vim modes and a Markdown and HTML preview.

Quick select & images

Copy anything on screen with two keys; 'imgcat shows pictures in the output.

Recording & triggers

'record saves a tab as an asciinema cast; 'trigger highlights the lines that matter, with a sound or notification.

Summon key

Win+` brings OXIS to the front from anywhere; Open in OXIS on folders in Explorer.

Self-updating

'update install installs the newest build; 'version shows the exact commit and build.

Private by default

No account and no telemetry. Network use is visible: update checks, the Market, and what plugins declare.

Lua

Your workspace
is a program.

Write a plugin in OXIS's own editor, save it, and it's live. The same API drives the plugins in the Market.

--[[@manifestversion: 1.0.0description: open a pull request for a branchpermissions: shell]]oxis.command("pr", function(args, rest)  local branch = rest ~= "" and rest or "HEAD"  oxis.echo("opening a PR for " .. branch)  oxis.run("gh pr create --web --head " .. oxis.quote(branch))end, "open a GitHub PR")oxis.autocmd("ShellOpen", function()  oxis.echo("pr ready — try 'pr my-branch")end)
oxis.workflow("release", {  env = { NODE_ENV = "production" },  steps = {    { task = "install" },    { run = "npm run build", retry = 2 },    { run = "npm test", continueOnError = true },    { command = "version" },            -- an 'command    { condition = "env:DEPLOY",      run = "npm run deploy" },         -- only when DEPLOY is set    { parallel = {        { command = "plugin list" },        { command = "workspace info" } } },  },}, "build, test and deploy")-- 'workflow release
oxis.command("ship", function()  oxis.ask("Deploy to production? (yes/no)", function(answer)    if answer ~= "yes" then return oxis.echo("not shipped", "dim") end    local spin, i = { "⠋", "⠙", "⠹", "⠸", "⠼", "⠴" }, 0    local line = oxis.line("⠋ deploying…", "accent")    local tick = oxis.every(0.08, function()      i = i + 1; line:set(spin[i % #spin + 1] .. " deploying…")    end)    oxis.process.spawn({ cmd = "npm", args = { "run", "deploy" } }, {      exit = function(code)        tick:stop()        line:set(code == 0 and "✓ deployed" or "✗ deploy failed",                 code == 0 and "ok" or "err")      end,    })  end, { label = "ship" })end, "deploy, after asking")
{  "name": "harbour",  "extends": "slate",  "purple": "#5cc8ff", "purple2": "#2f8fd8",  "success": "#7ee787", "statusBg": "#1f6fb2",  "font": "'Fira Code', monospace",  "fontSize": 14, "ligatures": true,  "promptText": "⚓ ❯", "glow": 0.25,  "cursorStyle": "bar", "radius": 6,  "backgroundGradient":    "linear-gradient(160deg, #0e1018 40%, #12304a)"}// 'theme import harbour.json · or tweak live:// 'theme set glow 0.45
Themes

Ten themes. 73 settings.
All of them yours to change.

Pick one — this page and the demo above follow it. In OXIS, 'theme set <key> <value> changes anything live and keeps your own copy.

A live theme editor

'theme edit opens every setting with a live preview: colours, fonts, spacing, glow, background images and gradients.

The OXIS theme editor

Themes are just JSON

Drop files in ~/.oxis/themes/, extend a built-in with "extends", or 'theme import one. Unknown keys are reported, never fatal.

bgpurplestatusBgpromptTextglowfontligaturesradiuscursorStylesynKeywordbackgroundGradientcss
OXIS Home in each of its ten built-in themes
Screens

Straight from the app.

Every picture here is a screenshot or recording of OXIS itself.

Market

Extend your workspace.

Every free plugin is a plain, readable Lua script — read it, fork it, or install it with 'market install <name>. Publish yours with 'plugin publish, which files it for review. Premium plugins will be monthly subscriptions via Stripe; none can be bought yet.

'market search › 0 shown
prices for reference — premium plugins check out through Stripe
Install

Up and running in a minute.

Downloads come from oxis.space, signed and checked; GitHub Releases has the same files.

Checking for the latest release…

Windows 10 & 11 (x64)

The installer (no administrator needed: it adds OXIS to the Start menu, your PATH and Explorer's Open in OXIS), or the program alone.

  1. Run the installer, or the .exe on its own.
  2. Type 'help, or just start typing commands you already know.
  3. 'update install keeps you on the newest release from then on.
PowerShell
PS> Invoke-WebRequest https://github.com/oxlaboratory/oxis/downloads.oxis.space/v1/releases/…/oxis-windows-x64.exe -OutFile oxis.exe
PS> .\oxis.exe

Linux (x64)

A .deb for Debian and Ubuntu, or the program alone. X11 or Wayland, with Vulkan (or OpenGL ES 3).

  1. Install the package, or chmod +x the program and run it.
  2. OXIS opens your $SHELL — bash, zsh or fish.
bash
$ curl -LO https://downloads.oxis.space/v1/releases/…/oxis_amd64.deb
$ sudo apt install ./oxis_amd64.deb
$ oxis

macOS (Apple silicon) — not yet

Not released yet: there's no Mac build until OXIS has been built and used on a Mac. Build it from source for now (Rust stable; see From source).

  1. Make it runnable: chmod +x oxis-macos-arm64.
  2. It isn't signed yet: the first time, right-click it → Open.
  3. OXIS opens your $SHELL — zsh by default.
zsh
% curl -LO https://downloads.oxis.space/v1/releases/…/oxis-macos-arm64
% chmod +x oxis-macos-arm64 && xattr -d com.apple.quarantine oxis-macos-arm64
% ./oxis-macos-arm64

Build it yourself

Rust (stable). On Linux also the X11, Wayland and ALSA headers: libx11-dev libxkbcommon-dev libxcursor-dev libxrandr-dev libxi-dev libwayland-dev libasound2-dev. On macOS, Xcode's command line tools.

  1. cargo run --release -p oxis-app builds and opens OXIS.
  2. cargo test --workspace runs the tests, window tests included.
  3. The build knows its commit, so 'update can tell how far behind it is.
terminal
$ git clone https://github.com/oxlaboratory/oxis.git
$ cd oxis
$ cargo run --release -p oxis-app   # → target/release/oxis
Questions

Good questions.

What is OXIS, exactly?
A development workspace that runs your real shell — not an imitation of one — with tabs and split panes, a built-in editor, per-project workspaces, tasks, workflows and Lua plugins around it. Every part can be changed: themes, keymaps, commands and the Home screen.
Do I have to change shells or relearn anything?
No. OXIS runs the shell you already use — PowerShell 7 (or Windows PowerShell) on Windows and your $SHELL on Linux, including zsh and fish; 'shell <name> opens a tab with another, and OXIS_SHELL changes the default. Your profile, aliases and prompt load as usual, and anything not starting with ' goes straight to the shell.
Does OXIS collect any data?
No telemetry and no account. OXIS only goes online to check GitHub for updates ('config set updateCheckOnStartup false turns that off), to browse the Market, and for requests your plugins make — which need the net permission. 'update install counts itself in the public download total once a day ('config set countInstalls false turns that off).
Is it free?
Yes. OXIS is open source under the Apache License 2.0, and free Market plugins stay free. Premium plugins are planned as optional monthly subscriptions; none can be bought yet.
How do updates work — and how do I know what I'm running?
At startup and with 'update, OXIS asks GitHub whether there's a newer release. 'update install downloads it, swaps it in and puts the old one back if the new one fails to start. A build from source follows its branch instead. 'version shows the version, the commit it was built from, your system and your shell.
Can I bring my setup with me?
Your shell profile works as-is. On top of that, ~/.oxis/config.lua runs at startup, themes are JSON files in ~/.oxis/themes/, each project can carry a .oxis/workspace.lua, and 'backup / 'restore move everything between machines.
What about macOS?
Not yet. OXIS 2 is written to build on macOS (Apple silicon), but there's no Mac release until it has been built and used on a Mac. Building from source is the way for now (below), and issues and pull requests from Mac users are very welcome.
Get started

Keep your shell.
Program the rest.

Install OXIS, open your project, and type 'help.