Skip to main content

Introduction

Perry is a lightweight orchestration layer for development environments with AI coding agents preconfigured and synced, designed to be used over Tailscale from day one.

What is Perry?

Perry is a self-hosted daemon that:

  • Spawns sandboxed containers for isolated development workspaces
  • Syncs coding agents and credentials into those workspaces
  • Provides remote access via CLI, Web UI, or SSH over Tailscale

Think of it as your personal development environment manager that you can access from anywhere.

Access from anywhere

Once your agent is running, you can connect from any device on your tailnet.

How It Works

┌─────────────────────────────────────────────────────────────┐
│ Your Devices │
│ Browser (Web UI) • CLI • SSH │
└─────────────────────────┬───────────────────────────────────┘
│ Tailscale / Local

┌─────────────────────────────────────────────────────────────┐
│ Perry Agent │
│ API Server • Container Management • Session Tracking │
└─────────────────────────┬───────────────────────────────────┘

┌───────────────┼───────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│Workspace │ │Workspace │ │ Host │
│Container │ │Container │ │ Machine │
└──────────┘ └──────────┘ └──────────┘

Key Features

  • Self-hosted — runs on your hardware, your data stays with you
  • Container isolation — each workspace is sandboxed with Docker-in-Docker support
  • Remote access — Tailscale-first access from any device
  • AI-ready — coding agents are pre-installed and synced
  • Credential sync — SSH keys, tokens, and configs available in workspaces

Networking first

Perry assumes you want to reach workspaces remotely. With Tailscale enabled, every workspace gets a tailnet hostname and all ports are reachable directly, without extra port mapping. If you are not using Tailscale yet, you can still forward ports with perry proxy.

Next Steps

  1. Quickstart
  2. Workspaces
  3. Configuration