A terminal you live in.

A fullscreen TUI that hosts a real, interactive shell in a large left pane, with an AI agent chat sidebar on the right. The agent sees your terminal, investigates in a hidden shell, and can type into your visible pane on request.

curl -fsSL https://sensus.sh/install | bash

detach any time: shells and agent turns keep running

A real shell, not a simulation.

The left pane is one real PTY per tab, rendered by an embedded VT (Ghostty).vim, htop, colors, mouse, and scrollback behave like a real terminal, because it is one.

  • one PTY per tab, per-tab sessions
  • full-color VT, mouse passthrough
  • scrollback, resize, works over SSH
1:vim2:htop3:zsh
1import { createSignal } from "solid-js"
2import { theme } from "./theme"
3
4export function StatusBar() {
5 const [tab] = createSignal(0)
6 return <text fg="{theme.accent}">{tab()}</text>
7}
~
~
-- INSERT --7,1  All
host homelabcwd /home/opsshell bashrecent: sudo fail2ban-client status sshd
chat
❯ you⧉ copy  ↺ revert
harden ssh on homelab
✱ copilot⧉ copy
Two gated changes: the drop-in and a reload. Both run with sudo, in order.
▸ plan · 2 approvals
❯ ✓ [1/2] shell_background  sudo tee /etc/ssh/sshd_config.d/hardening.conf
sudo tee /etc/ssh/sshd_config.d/hardening.conf <<'EOF'
PermitRootLogin prohibit-password
PasswordAuthentication no
EOF
✓ [2/2] shell_background  sudo systemctl reload sshd
[A approve all]
[N deny all]
[↵ confirm]
[esc cancel]
▸ shell_session  systemctl status sshd
● done

The agent lives beside you.

One tab = one shell = one chat session. The agent sees the cwd, shell, and recent output, including git status when there is one. It investigates in a hidden shell, and shell_sessiontypes into your visible pane on request, special keys included.

It keeps notes between sessions: environment memory, a host map of this machine, and a journal of what it did. Plain markdown under ~/.config/sensus/, alongside your own AGENTS.md instructions.

  • every action asks first · allow rules skip the card
  • pane typing is free · nothing runs until you confirm
  • plan cards: approve all / deny all / confirm
  • sudo steps: masked password prompt, cached for the session
  • /yolo flips to full-auto when you want it

Nothing to clean up.

Sensus runs as a child of your shell, never exec'd. Exit (or detach withCtrl+A d) and you are back at a plain prompt: the shells and the agent's work keep running in the local daemon, re-attachable on the next boot. Closing a tab never kills its shell; type exit in the pane to end one.

❯ sensus# the TUI opens; shells run in the local daemon
…
❯ Ctrl+A d# detach: back to this prompt, nothing killed
❯ sensus# reattach: tabs, shells, and sessions are still there

Your model, your endpoint.

Sensus speaks to any configured endpoint through the Vercel AI SDK: a hosted API, a model on your homelab box, or a gateway. sensus init walks you through the setup.

config, memory, and sessions live in ~/.config/sensus/

openai-compatible
/chat/completionsdefault
openai
Responses API
anthropic
Messages API
google
Gemini

Install sensus.

One line. The release binary is checksum-verified.

curl -fsSL https://sensus.sh/install | bash

Linux or macOS · x86_64/aarch64 · works over SSH

Pin a release with --version v0.0.96 · install system-wide with -g ·build from source