oasishq
v0.7.0
Published
Oasis CLI — durable shared local coding-agent sessions with native resume, lazy wake, presence, and in-terminal controls
Maintainers
Readme
Oasis CLI
A terminal host that turns local coding-agent sessions (Claude Code, Codex, Pi, OpenCode, Hermes, Kilo, and Devin) into durable shared CLI rooms with one terminal UI for the host and everyone invited to the session. CLI sessions do not create workspace Agents and stay out of the Oasis workspace Room list. Legacy shells such as aider and plain zsh remain available in a raw PTY.
╭────────────────────────┬─────────────────────────────────────────────╮
│ ORGANIZATION │ ▄▄▄▄▄▄ │
│ ▸ Mercury Prod │ ▄▀▀▀▀▀▀▀▀▄ │
│────────────────────── │ ▀▀▀▀▀▀▀▀▀▀ │
│ ROOMS ↻ ctrl+r │ ▀▀▀▀▀▀ │
│ ● Silverssz proton │ O A S I S │
│ │ Start a room: │
│ │ ▸ [ Claude Code ] │
│ ├─ ~/Documents/MercuryV2 ────────────────────┤
│ │ ❯ cd <folder> · tab completes · enter runs │
╰────────────────────────┴─────────────────────────────────────────────╯Install
npm install -g oasishq
oasisRequires macOS and Node ≥ 18.17. Legacy PTY sessions also require python3.
Auto-update
Every oasis launch checks npm for a newer release; if one exists it installs
it and restarts itself before the landing appears — no manual upgrades. Set
OASIS_NO_AUTO_UPDATE=1 to skip the check (e.g. to pin a version).
What it does
oasisopens the landing: your CLI session rooms on the left (green dot = that machine's CLI is live right now), harness picker on the right.- Pick a harness → a new private CLI session is born with a random codename ("Quiet Osprey"); after your first prompt an LLM retitles it to what you're actually working on. Invite teammates from the in-room member picker.
- Coding agents run in-pane through the same provider adapters as Oasis Desktop. Messages, thinking/status, tool activity, streaming replies, slash controls, skills, and approval/question pickers render in the terminal.
- Everyone sees the same Room UI. The machine with the local runtime hosts the work; attached teammates use the same composer and receive the same live state through the existing Room channel.
- Sessions survive app exits. Reopening a Room resumes its provider-native Claude/Codex/ACP thread. Dormant runtimes suspend after 15 minutes and wake on the next human message; only confirmed deletion permanently removes one.
- One agent, multiple humans. Every human message wakes the session's sole
runtime; no
@agenttag is required or added to the transcript. - Legacy shells run in a real PTY.
ctrl+qdetaches; select the room to return while the Oasis process remains open. - In-room sidebar (
ctrl+bto focus, everything clickable): rename the room, add org members from a searchable dropdown, see owner / directory / status / members. - The ❯ bar on the landing runs
cdwith shell-style tab completion, and\login/\logout/\orgfor auth and org switching. - Auth: Auth0 device flow (
\login→ confirm a code in the browser). Tokens live in~/.oasis/credentials.json(0600) and renew silently.
Keys
| Where | Key | Does |
| --- | --- | --- |
| landing | ↑/↓ ←/→ | move · switch panes |
| landing | enter | run bar command / start or resume the selection |
| landing | backspace on a room | confirm permanent delete (owner) / leave (member) |
| landing | ctrl+r | refresh rooms |
| session | ctrl+b | focus the room sidebar |
| session | ctrl+q | back to landing (session keeps running) |
| coding room | /model /mode /thinking | change supported runtime controls |
| legacy session | \ | command mode: \oasis \rename <name> \quit |
| anywhere | ctrl+c | quit oasis |
Config
Defaults target production Oasis. Override in ~/.oasis/config.json or env:
OASIS_API_URL, OASIS_AUTH0_DOMAIN, OASIS_AUTH0_CLIENT_ID,
OASIS_AUTH0_AUDIENCE, OASIS_HOME.
