← Back to Home

Paseo — Self-Hosted Orchestrator for All Your Coding Agents

Paseo — Self-Hosted Orchestrator for All Your Coding Agents

If you use multiple AI coding agents — Claude Code for architecture, Codex for implementation, Copilot for quick fixes — you've felt the friction of switching between different CLIs, terminals, and contexts. Each agent has its own interface, its own configuration, and its own way of managing files. Paseo solves this by giving you a single daemon that orchestrates all of them.

Paseo is an open-source, self-hostable platform that runs a daemon on your machine and lets you drive any coding agent from a desktop app, mobile app, web UI, or CLI. It launched in late 2025 and has already gained 7,400+ stars on GitHub, trending strongly among developers who work with multiple agent providers.

Why It's Trending

Coding agents have become essential tools, but the ecosystem is fragmented. Developers who want the best model for each task — Claude for planning, GPT-5 for coding, Copilot for inline suggestions — end up juggling multiple terminals and remembering different command syntaxes.

Paseo's appeal is simple: one interface, any agent. You install the daemon once, connect your existing agent CLIs (Claude Code, Codex, GitHub Copilot, OpenCode, Pi), and control them all from a single pane of glass. The mobile app means you can also start or check on agents from your phone — a feature that's surprisingly rare in the coding agent space.

The project hit #1 on Hacker News and has been growing steadily since, driven by its clean architecture, native mobile apps, and genuine commitment to self-hosting and privacy.

Architecture Overview

Paseo Architecture

Paseo follows a daemon-client architecture. At the center is the Paseo Daemon — a local server that manages agent processes, WebSocket connections, and an MCP server for agent-to-agent orchestration. Clients (desktop app, mobile app, web UI, and CLI) all connect to this daemon, either locally or through an optional encrypted relay for remote access.

The daemon communicates with each agent provider's CLI (Claude Code, Codex, etc.) via their standard command-line interfaces, wrapping them in a uniform API. The MCP server allows agents themselves to use Paseo — one agent can spawn another, wait for results, and incorporate them into its workflow.

For remote access, Paseo offers a relay system with end-to-end encryption. You pair your daemon with your mobile app via a QR code, and the connection goes through Paseo's relay without exposing your machine to the network. You can also self-host the relay with TLS for full control.

Prerequisites

Before installing Paseo, you need at least one coding agent CLI installed and configured:

  • Claude Codenpm install -g @anthropic/claude-code
  • Codexnpm install -g @openai/codex
  • GitHub Copilotnpm install -g @github/cli-copilot
  • OpenCodepip install opencode
  • Pinpm install -g @pi-ai/cli

You'll also want the GitHub CLI (gh) installed and authenticated — Paseo uses it for PR-aware worktrees and orchestration features.

Installation

Desktop App (Recommended)

The desktop app is the simplest way to get started. It bundles its own daemon and starts it automatically.

  1. Download from paseo.sh/download or the GitHub releases page
  2. Open the app — the daemon starts automatically
  3. Scan the QR code in Settings from the mobile app to pair your phone

CLI / Headless Installation

For servers, remote machines, or headless setups:

npm install -g @getpaseo/cli
paseo

This starts the daemon and prints a QR code in the terminal. Scan it from the mobile app or connect via the web UI.

The daemon's configuration and state live under ~/.paseo by default (configurable via PASEO_HOME).

Configuration

Paseo is configured through a JSON file at PASEO_HOME/config.json. Key settings include:

{
  "daemon": {
    "host": "127.0.0.1",
    "port": 6767,
    "mcp": {
      "enabled": true,
      "injectIntoAgents": true
    }
  },
  "providers": {
    "claude": {
      "enabled": true,
      "model": "claude-sonnet-4-20250514"
    },
    "codex": {
      "enabled": true
    }
  }
}

For remote access through a self-hosted relay with TLS:

{
  "daemon": {
    "relay": {
      "enabled": true,
      "endpoint": "127.0.0.1:8080",
      "publicEndpoint": "relay.example.com:443",
      "useTls": true
    }
  }
}

Docker Compose (Self-Hosted Relay)

If you want to run the Paseo relay behind nginx with TLS, here's a minimal docker-compose setup:

version: "3.8"
services:
  relay:
    image: nginx:alpine
    ports:
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
      - /etc/letsencrypt:/etc/letsencrypt:ro
    restart: unless-stopped

With a minimal nginx WebSocket proxy config:

events {}
http {
  server {
    listen 443 ssl;
    server_name relay.example.com;

    ssl_certificate /etc/letsencrypt/live/relay.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/relay.example.com/privkey.pem;

    location /ws {
      proxy_pass http://paseo-daemon:8080;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Host $host;
    }
  }
}

Usage

Running Agents

Start an agent with a task from the CLI:

paseo run "fix the failing tests"
paseo run --provider codex "refactor the API layer"
paseo run --detach "run the full test suite"  # background
paseo run --worktree feature-x "implement feature X"

Managing Agents

paseo ls                    # List running agents
paseo attach abc123         # Stream agent output in real-time
paseo send abc123 "now add tests"  # Send follow-up task
paseo logs abc123           # View agent timeline
paseo stop abc123           # Stop an agent

Multi-Agent Workflows

One of Paseo's most powerful features: agents can orchestrate other agents.

# Agent spawns a sub-agent for parallel work
paseo run --detach "implement the API" --name api-agent
paseo wait api-agent
paseo logs api-agent --tail 5

Skills (Agent-to-Agent Workflows)

Paseo ships with skills that you can inject into any agent conversation:

  • /paseo-handoff — Hand off work between agents (e.g., plan with Claude, implement with Codex)
  • /paseo-loop — Loop an agent against clear acceptance criteria with a verifier
  • /paseo-advisor — Spin up an advisor agent for a second opinion
  • /paseo-committee — Form a committee of two contrasting agents for root cause analysis

Add skills to your environment:

npx skills add getpaseo/paseo

Remote Access

Connect to your daemon from anywhere using a pairing offer:

paseo daemon pair --json   # Get pairing URL

# From another machine:
paseo ls --host "$OFFER_URL"
paseo run --host "$OFFER_URL" "deploy the hotfix"

Verification Checklist

After installing Paseo, verify everything works:

  • Daemon is running: paseo daemon status returns "running"
  • Providers are detected: paseo run --help lists available providers
  • An agent can run a simple task: paseo run "echo hello" completes
  • Mobile app connects to the daemon (QR pairing)
  • Remote CLI connects via offer URL: paseo ls --host "$OFFER_URL" shows agents
  • MCP tools are injected: Check agent settings → "Inject Paseo tools" is enabled
  • Skills load correctly: /paseo-handoff is available in agent conversations

Comparison with Alternatives

Paseo occupies a unique niche — it's not an IDE plugin or a hosted service. Here's how it compares:

  • Claude Desktop / Codex App — Provider-specific UIs. You can only use one agent provider per app. Paseo unifies all of them.
  • OpenCode Desktop — Great for OpenCode users but doesn't support Claude Code or Codex. Paseo supports all major providers.
  • Conductor — Similar orchestrator concept but more opinionated about workflows. Paseo is more flexible and has first-class mobile support.
  • Happy Coder — Focused on code generation with a single model. Paseo is an orchestrator for any agent workflow.

Paseo's key differentiators are its daemon-client architecture (runs on your hardware, not in the cloud), multi-provider support (any agent CLI works), and native mobile apps (iOS and Android).

Resources

← Retour à l'Accueil

Paseo — L'orchestrateur auto-hébergé pour tous vos agents de codage

Paseo — L'orchestrateur auto-hébergé pour tous vos agents de codage

Si vous utilisez plusieurs agents de codage IA — Claude Code pour l'architecture, Codex pour l'implémentation, Copilot pour les corrections rapides — vous avez ressenti la friction de basculer entre différents CLIs, terminaux et contextes. Chaque agent a sa propre interface, sa propre configuration et sa propre façon de gérer les fichiers. Paseo résout ce problème en vous offrant un démon unique qui orchestre tout le monde.

Paseo est une plateforme open-source et auto-hébergeable qui exécute un démon sur votre machine et vous permet de contrôler n'importe quel agent de codage depuis une application de bureau, une application mobile, une interface web ou un CLI. Lancé fin 2025, il a déjà gagné plus de 7 400 étoiles sur GitHub, tendant fortement parmi les développeurs qui travaillent avec plusieurs fournisseurs d'agents.

Pourquoi il est tendance

Les agents de codage sont devenus des outils essentiels, mais l'écosystème est fragmenté. Les développeurs qui veulent le meilleur modèle pour chaque tâche — Claude pour la planification, GPT-5 pour le codage, Copilot pour les suggestions en ligne — se retrouvent à jongler entre plusieurs terminaux et à devoir retenir différentes syntaxes de commandes.

L'attrait de Paseo est simple : une interface, n'importe quel agent. Vous installez le démon une fois, connectez vos CLIs d'agents existants (Claude Code, Codex, GitHub Copilot, OpenCode, Pi), et les contrôlez tous depuis un seul tableau de bord. L'application mobile vous permet également de lancer ou de vérifier vos agents depuis votre téléphone — une fonctionnalité étonnamment rare dans le monde des agents de codage.

Le projet a atteint la première place sur Hacker News et n'a cessé de croître depuis, porté par son architecture propre, ses applications mobiles natives et son véritable engagement envers l'auto-hébergement et la vie privée.

Architecture

Architecture Paseo

Paseo suit une architecture démon-client. Au centre se trouve le Démon Paseo — un serveur local qui gère les processus d'agents, les connexions WebSocket et un serveur MCP pour l'orchestration agent-à-agent. Les clients (application de bureau, application mobile, interface web et CLI) se connectent tous à ce démon, soit localement, soit via un relais chiffré optionnel pour l'accès à distance.

Le démon communique avec le CLI de chaque fournisseur d'agent (Claude Code, Codex, etc.) via leurs interfaces en ligne de commande standard, les encapsulant dans une API uniforme. Le serveur MCP permet aux agents eux-mêmes d'utiliser Paseo — un agent peut en engendrer un autre, attendre les résultats et les incorporer dans son flux de travail.

Pour l'accès à distance, Paseo offre un système de relais avec chiffrement de bout en bout. Vous associez votre démon à votre application mobile via un code QR, et la connexion passe par le relais de Paseo sans exposer votre machine au réseau. Vous pouvez également auto-héberger le relais avec TLS pour un contrôle total.

Prérequis

Avant d'installer Paseo, vous avez besoin d'au moins un CLI d'agent de codage installé et configuré :

  • Claude Codenpm install -g @anthropic/claude-code
  • Codexnpm install -g @openai/codex
  • GitHub Copilotnpm install -g @github/cli-copilot
  • OpenCodepip install opencode
  • Pinpm install -g @pi-ai/cli

Vous aurez également besoin du GitHub CLI (gh) installé et authentifié — Paseo l'utilise pour les worktrees compatibles PR et les fonctionnalités d'orchestration.

Installation

Application de bureau (recommandée)

L'application de bureau est le moyen le plus simple de commencer. Elle intègre son propre démon et le démarre automatiquement.

  1. Téléchargez depuis paseo.sh/download ou la page des versions GitHub
  2. Ouvrez l'application — le démon démarre automatiquement
  3. Scannez le code QR dans les Paramètres depuis l'application mobile pour associer votre téléphone

CLI / Installation sans interface graphique

Pour les serveurs, machines distantes ou installations sans interface graphique :

npm install -g @getpaseo/cli
paseo

Cela démarre le démon et affiche un code QR dans le terminal. Scannez-le depuis l'application mobile ou connectez-vous via l'interface web.

La configuration et l'état du démon se trouvent dans ~/.paseo par défaut (configurable via PASEO_HOME).

Configuration

Paseo se configure via un fichier JSON à PASEO_HOME/config.json. Paramètres clés :

{
  "daemon": {
    "host": "127.0.0.1",
    "port": 6767,
    "mcp": {
      "enabled": true,
      "injectIntoAgents": true
    }
  },
  "providers": {
    "claude": {
      "enabled": true,
      "model": "claude-sonnet-4-20250514"
    },
    "codex": {
      "enabled": true
    }
  }
}

Pour l'accès à distance via un relais auto-hébergé avec TLS :

{
  "daemon": {
    "relay": {
      "enabled": true,
      "endpoint": "127.0.0.1:8080",
      "publicEndpoint": "relay.example.com:443",
      "useTls": true
    }
  }
}

Docker Compose (Relais auto-hébergé)

Si vous souhaitez exécuter le relais Paseo derrière nginx avec TLS, voici une configuration docker-compose minimale :

version: "3.8"
services:
  relay:
    image: nginx:alpine
    ports:
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
      - /etc/letsencrypt:/etc/letsencrypt:ro
    restart: unless-stopped

Avec une configuration minimale de proxy WebSocket nginx :

events {}
http {
  server {
    listen 443 ssl;
    server_name relay.example.com;

    ssl_certificate /etc/letsencrypt/live/relay.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/relay.example.com/privkey.pem;

    location /ws {
      proxy_pass http://paseo-daemon:8080;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Host $host;
    }
  }
}

Utilisation

Lancer des agents

Démarrez un agent avec une tâche depuis le CLI :

paseo run "corriger les tests qui échouent"
paseo run --provider codex "refactoriser la couche API"
paseo run --detach "exécuter toute la suite de tests"  # arrière-plan
paseo run --worktree feature-x "implémenter la fonctionnalité X"

Gérer les agents

paseo ls                    # Lister les agents en cours
paseo attach abc123         # Voir la sortie de l'agent en temps réel
paseo send abc123 "ajouter les tests maintenant"  # Envoyer une tâche de suivi
paseo logs abc123           # Voir l'historique de l'agent
paseo stop abc123           # Arrêter un agent

Flux de travail multi-agents

L'une des fonctionnalités les plus puissantes de Paseo : les agents peuvent orchestrer d'autres agents.

# Un agent engendre un sous-agent pour du travail en parallèle
paseo run --detach "implémenter l'API" --name api-agent
paseo wait api-agent
paseo logs api-agent --tail 5

Skills (flux de travail agent-à-agent)

Paseo est livré avec des skills que vous pouvez injecter dans n'importe quelle conversation d'agent :

  • /paseo-handoff — Transférer le travail entre agents (ex. planifier avec Claude, implémenter avec Codex)
  • /paseo-loop — Boucler un agent sur des critères d'acceptation clairs avec un vérificateur
  • /paseo-advisor — Lancer un agent conseiller pour un second avis
  • /paseo-committee — Former un comité de deux agents contrastés pour une analyse des causes profondes

Ajoutez les skills à votre environnement :

npx skills add getpaseo/paseo

Accès à distance

Connectez-vous à votre démon depuis n'importe où en utilisant une offre d'appairage :

paseo daemon pair --json   # Obtenir l'URL d'appairage

# Depuis une autre machine :
paseo ls --host "$OFFER_URL"
paseo run --host "$OFFER_URL" "déployer le correctif"

Liste de vérification

Après avoir installé Paseo, vérifiez que tout fonctionne :

  • Le démon tourne : paseo daemon status retourne "running"
  • Les fournisseurs sont détectés : paseo run --help liste les fournisseurs disponibles
  • Un agent peut exécuter une tâche simple : paseo run "echo hello" se termine
  • L'application mobile se connecte au démon (appairage QR)
  • Le CLI distant se connecte via l'URL d'offre : paseo ls --host "$OFFER_URL" affiche les agents
  • Les outils MCP sont injectés : Vérifiez les paramètres de l'agent → "Injecter les outils Paseo" est activé
  • Les skills se chargent correctement : /paseo-handoff est disponible dans les conversations d'agents

Comparaison avec les alternatives

Paseo occupe un créneau unique — ce n'est ni un plugin IDE ni un service hébergé. Voici comment il se compare :

  • Claude Desktop / Codex App — Interfaces utilisateur spécifiques à un fournisseur. Vous ne pouvez utiliser qu'un seul fournisseur d'agent par application. Paseo les unifie tous.
  • OpenCode Desktop — Idéal pour les utilisateurs d'OpenCode mais ne supporte pas Claude Code ou Codex. Paseo supporte tous les principaux fournisseurs.
  • Conductor — Concept d'orchestrateur similaire mais plus opinioné sur les flux de travail. Paseo est plus flexible et dispose d'un support mobile de première classe.
  • Happy Coder — Focalisé sur la génération de code avec un seul modèle. Paseo est un orchestrateur pour tout flux de travail d'agent.

Les différenciateurs clés de Paseo sont son architecture démon-client (fonctionne sur votre matériel, pas dans le cloud), son support multi-fournisseur (n'importe quel CLI d'agent fonctionne) et ses applications mobiles natives (iOS et Android).

Ressources