alby.sh
Features

Everything Alby does,
in one page.

The complete tour — from agents and sessions to teams, deploys, monitoring, security and the details.

Agents

Claude, Gemini, Codex — or just a shell.

Each agent runs in its own pty locally, or a dedicated tmux session over SSH remotely. The system prompt knows your stack, sibling environments, and Alby's commit/deploy rules out of the box.

  • • Cross-device sync for remote agents (cloud-mirrored).
  • • Auto-reconnect on wake — dead SSH sockets handled silently.
  • • Activity-aware sidebar: spinner only when the agent is really working.
  • • Heartbeats: working vs viewed seconds per session.
C
Claude
Anthropic
G
Gemini
Google
</>
Codex
OpenAI
$_
Terminal
Just a shell
tmux · agent-8f3e2a1b uptime 4h 12m
[14:02] opened on MacBook Pro (office)
[18:47] laptop closed — tmux keeps running
[22:10] reopened on MacBook Air (home)
✓ reattached automatically
claude> ...resuming refactor
Sessions & reattach

Nothing dies when your Mac does.

Remote agents live in a tmux session named agent-<id> on the target box. Local agents stay in node-pty on your Mac. Activity dots come from OSC title parsing — both local and remote.

  • Union sync: local-only agents stay on the device; remote agents appear on every Mac.
  • ensureAttached on boot and every list call — stale sockets reconnect silently.
  • Stale-session handling: if tmux is gone, the tab becomes completed, not a scary red error.
  • Reconnecting overlay with a Retry button in the renderer.
Stacks & environments

One project. Many repos. All the environments.

A project is a product. A stack is one of its codebases (website, API, mobile app…). Each stack has its own environments — dev, staging, prod, deploy target.

Stack types
website webapp api frontend backend fullstack script mobile_app desktop_app library custom

Each kind gets its own icon and colour in the sidebar — a glance tells you the shape of your project.

Operational env
  • ▾ Tasks (scoped agent contexts)
  • ▾ Sessions (live terminals)
  • ▾ Files & routines
  • ▾ GitHub & settings

Local folder or SSH-reachable box — both work the same way.

Deploy env
1 Pre-commands
2 git pull (branch of your choice)
3 Post-commands

Linux bash or Windows PowerShell. One-click deploy, every step logged.

Teams & workspaces

Personal sandbox. Team command center.

Flip between Personal and any Team workspace from the top bar. Five roles, per-workspace permissions, live presence avatars, and an unread-activity rollup so nothing slips through the cracks.

  • • Invite by email — one-click accept via invite link.
  • • Presence channels per project / environment / task / agent.
  • • Unread rollup across stack / env / pin, denormalized for O(1) reads.
  • • WebSocket sync via Laravel Reverb — no refresh, ever.
Owner
Full control, billing, invites
Admin
Manage projects & members
Developer
Launch agents, deploy, commit
Viewer
Read-only across the team
Analyst
Only sees the activity reports
+ per-env scoping, coming soon
Deploy · api · production gh authenticated
Sync with GitHub
3 commits behind origin/main
1 ▸ php artisan down
2 ▸ git pull origin main
3 ▸ composer install --no-dev
3 ▸ php artisan migrate --force
3 ▸ php artisan up
Deploy

Git-aware deploys. One big green button.

Alby fetches origin for you, tells you exactly how far ahead the remote box is, warns about uncommitted files, and runs the pipeline when you're ready. First non-zero exit aborts the rest — no half-deployed states.

  • • Inline gh auth login flow if the CLI isn't ready.
  • • "No updates to deploy" state — no accidental re-runs.
  • • Pre-commands, git pull, post-commands logged with duration.
  • • Linux bash or Windows PowerShell — same UI.
Error monitoring

Your own Sentry — wired to an AI that fixes it.

Drop a <script> in your HTML or a cURL in your backend. Every uncaught exception lands in Alby, deduplicated, grouped by fingerprint, with the exact stack frame.

  • new_issue · regression · every_event — three independent triggers.
  • Email · Slack · native desktop push — per user, per app, synced across devices.
  • Statuses: open, resolved, excluded (drops future events with the same fingerprint).
  • Deep linksalby://issues/<uuid> opens the app to that issue.
Issue · #4822 OPEN · 142 events
DivisionByZeroError
at InvoiceBuilder::computeTax — InvoiceBuilder.php:87
AI
Auto-fix armed — Claude
3 of 5 per day used · draft PR in queue
ready

Auto-fix: from red alert to pull request, hands-free.

Flip one switch on a Stack and Alby spins up Claude, Gemini or Codex against the target env as soon as a new issue fires. Pick the agent, the env, and a daily cap. A draft commit shows up in your queue — review and push.

Activity · acme-api · last 7 days
AP
git.commit_push main 42s · 2m
AP
deploy.run production · v0.1.7 1m 14s · 3m
MC
agent.run claude · "fix invoice 500" 4m 22s · 11m
SR
env.creds.update staging · SSH key rotated — · 32m
Activity & git UI

Every commit. Every deploy. Attributed.

Commit / push / pull / fetch / discard run through Alby's right-sidebar buttons, so each action is logged with the clicking user, the duration, and the result. Agents are instructed to delegate git to the UI — nothing sneaks past you.

  • • Filter by actor, action, environment, time range.
  • • Wall time / agent worked / viewed — side by side.
  • • Cyan for git, emerald for deploys, violet for agent runs.
  • • Analyst role sees only this — perfect for finance & ops.
Trust & security

Signed. Notarized. Your code stays yours.

🛡

Apple-notarized build

Every release is signed with a Developer ID certificate and notarized by Apple. Gatekeeper approves on first launch.

🔐

Encrypted credential vault

SSH passwords AES-encrypted at rest, decrypted only on the device that authenticates. Private keys never leave unprotected.

🔑

OAuth via PKCE loopback

Google & Microsoft sign-in with PKCE. Tokens in Electron safeStorage — no keychain prompts, no plaintext on disk.

📦

No secrets in git

Apple creds, API keys and app-specific passwords live outside the repo. Source code stays on your infra, always.

📡

Scoped broadcasts

Live updates over private & presence Laravel Reverb channels, authorized by your token — per user / team / project.

Auto-updated, transparently

electron-updater polls a signed release manifest every 6h. User menu has a manual "check now" with progress indicator.

Everything else

The full list.

Small pieces of polish that make the whole thing feel right.

Workspace filter

Flip between Personal and any Team at the top of the window. Every list re-scopes instantly.

Unread-activity rollup

Per-project, per-stack, per-env, per-pin unread dots. Tells you where to look before you click.

Tasks & routines

Scope an agent to a purpose. Routines = cron-driven recurring agent runs for triage, monitoring, summaries.

Cross-device sync

Projects, envs, tasks, issues — all persisted server-side. A new Mac is ready in one login.

Deep-link URLs

alby://issues/<uuid> from any email or Slack message jumps straight to the right view.

Native notifications

Per-issue tag so a noisy prod deploy collapses into one Notification Center entry.

Heartbeats & time tracking

Working vs viewing seconds per session. Useful for client billing and internal reporting.

Dev & prod isolation

npm run dev uses a separate userData dir — dev instance & packaged app never fight.

Arch-aware hardening

Native-module mismatch errors + window visibility fallbacks — the app never boots invisible.

Windows remote support

Step-by-step guide to stand up OpenSSH on Windows, with Tailscale fallback instructions.

macOS-first client

Apple Silicon & Intel, signed & notarized. Windows / Linux clients on the roadmap.

Auto-updater

electron-updater with delta downloads. Manual "check now" in the user menu.

Ready to try it?

Free during early access. Download the Mac app and connect your first server in a minute.