SSH · Containers · Monitoring · AI

Every host, one workspace.

Files, terminal, live metrics and container orchestration for every server you run — down to the shell inside the container.

Free & open source · Linux & Windows today · No account, no backend

pear — edge-01.prod.internal
Pear desktop workspace showing hosts, file browser, terminal and the Claude assistant
workspaces & live vitals split panes, two hosts Claude Code, on your box
Any SSH host Workspaces Docker Engine Docker Swarm Proxmox VE LXC & QEMU guests Live metrics Jump into any container Bastion / jump hosts Cross-host transfers Port forwards Claude Code
1 conn

Shell, SFTP and exec multiplexed over a single SSH connection per host.

3 stacks

Docker, Swarm and Proxmox detected on connect — the dashboard reshapes itself.

2–10s

One polling loop for vitals. You pick the interval, or turn it off.

0 servers

No account, no sync, no telemetry. Keys stay in your OS keychain.

One tool, the whole fleet

Stop juggling five apps to run one server.

Connection manager, split-pane SFTP, editor, terminal, resource monitor and container dashboard — in one keyboard-fast workspace.

prodhomelabci

Workspaces, not a flat list

Group hosts into colour-coded workspaces. A host can live in several. Recents and quick connect sit on top.

edge-01 /etc/nginxnas /opt/stacks

Split panes, two hosts

Tabbed panes, split side by side. Drag a file from prod to the homelab box; right-click for the rest.

edge-01naslocal $ systemctl status nginx ● active (running) 6d 4h $

Live terminal

A real PTY per host — shared dock, per host, or inside a pane. The shell follows the directory you're browsing.

Editor

Read the config, ship the fix, never leave the host.

Syntax highlighting and line numbers for nginx, systemd units, JSON, YAML and shell. Works the same inside a container.

/etc/nginx/sites-available/api.pear.sh

Editing an nginx config on a remote host
cpu 34%mem 6.1/16Grx 1.2MB/s

Live resource monitor

Per-core CPU, memory, load, network and every mount — plus micro-meters under each host row and per-container stats.

prodyounas streamstream

Cross-host transfers

Nothing buffered in memory. Same-host is a server-side move; cross-host streams through you, with optional SHA-256 that fails the job on mismatch.

1 · tailscale 100.84.2.9 ✓ 2 · 10.0.4.11 3 · edge-01.example.net

Connection profiles

An ordered endpoint list per host, tried one at a time — first success wins.

Never parallel: parallel dialing multiplies auth attempts, trips fail2ban and spams key-touch prompts.
youbastiondb-01app-01app-02 one tunneled channel

Bastion? Just point at it.

Set a host's via and Pear multiplexes shell, exec and SFTP through it — a real forwardOut channel, not ssh -J. Chains work, and via-hosts nest under their bastion.

Auth stays end to end: the bastion authenticates itself and never sees the target's credentials.
this pcno ssh prodnas local pty · local files · relay endpoint

Your own machine is a host too.

The local PC sits in the same tree with no SSH involved — native PTY, local file browsing, and a valid source or target for transfers. Relay prod → laptop → homelab in one queue.

It adapts to the box

Orchestration that knows what it's looking at.

Pear probes the host on connect and builds the dashboard that fits what it found.

ssh connectdocker infoswarm?pvesh?dashboard
Docker

Containers & images

  • Running / stopped at a glance
  • Ports and image tags inline
  • Live CPU & memory per container
  • system df strip when disk is reclaimable
Swarm

Cluster & replicas

  • Node roles, leader & health
  • Desired-vs-running replica bars
  • Task inspector: service ps → logs
  • Convergence state across the cluster
Proxmox

VMs & LXC guests

  • VMID, OS and guest type
  • Live CPU & memory per guest
  • Node capacity & uptime
  • Jump into any guest
Swarm cluster dashboard with host vitals: CPU, memory, disk, network and cluster health
Host vitals sit above every dashboard — one round-trip per sample.
Swarm task inspector drawer showing docker service ps output and streamed task logs
Task inspector: service ps to pick a task, then its logs.
Sub-hosts

A shell, a file browser and an editor — inside the container.

Hit Jump in on any container or guest and you get a full workspace in it, reusing the parent's SSH connection. The sub-host holds no credentials of its own.

pve-01ct:103app
Nodepve-01ssh
LXCct:103pct enter
Dockerappdocker exec

It's recursive. A container inside an LXC guest inside a Proxmox node is just a deeper breadcrumb — and one SSH connection at the bottom of it.

Ephemeral, or pinned

Sub-hosts vanish on disconnect. Pin one and it stays in the tree — open terminals and editors keep working.

VMs work differently, honestly

A QEMU VM has no exec tunnel. Pear finds its IP via the guest agent and opens real SSH tunneled through the node — or a serial console (qm terminal) when there's no agent.

Binary-safe both ways

Files stage through the parent, never shell-encoded. No shell in the image? You get told — has no shell (distroless?) — not a blank pane.

Your Claude, your machine

An AI copilot that actually operates your servers.

Claude Code runs as your own local CLI on your own subscription — Pear never sees those credentials. It reaches your hosts only through Pear's tools, on a loopback-only MCP server with a fresh token per run.

Transparent reasoning

Every tool run shown — the exact command and its output, timed to the millisecond.

Permission-gated actions

Ask each time or grant a session. Nothing restarts or deletes without your yes.

Plans, findings and questions

Structured diagnoses, and a real question when there's a real choice to make.

A narrow surface, not a blank shell

Claude's own Bash stays on your laptop. Server-side goes through Pear's audited tools.

The Claude Code dock diagnosing a 502 incident — thinking, tool runs, a diagnosis report and a question about which image tag to roll back to
run_commandread_filewrite_filelist_dirhost_vitalscontainersservice_taskslogstransferport_forward

exposed on 127.0.0.1 only · random bearer token per run · over the SSH connections Pear already holds open

On the roadmap

The same workspace, sized for touch.

Hosts, files, containers, terminal and the Claude dock, reflowed for a phone and for a tablet's two-column split.

Android · in closed testing

Want early access? request a testing invite — a Google account email is all it takes.

Workspace host list on a phone
Workspaces & hosts
Swarm cluster nodes on a phone
Swarm cluster & nodes
Claude Code on a phone
Claude Code
No backend

Keys live in your OS keychain.

No account, no server, no sync. Hosts, keys and settings exist only on your machine.

01

Encrypted at rest

Passwords, passphrases and private keys go through Electron safeStorage — Keychain, DPAPI, libsecret.

02

The UI never holds a secret

The interface process sees a "has a secret" flag. Not the plaintext, not even the ciphertext.

03

Honest degradation

No real keyring on the box? Pear won't write a weakly-obfuscated secret to disk and call it safe. It prompts you at connect.

Get Pear

Free, open source, no account.

Linux and Windows builds today. macOS needs someone with a Mac to build it.

macOS

Not built yet

Build from source

Linux

AppImage · .deb · .rpm

Download

Windows

x64 · 10 & 11

Download .exe

All builds live on GitHub Releases  ·  Android is in closed testing on Google Play — request an invite.