Documentação Orquestra

Uma IDE desktop com canvas infinito para seus códigos, terminais, navegadores, documentos e agentes de IA.

Sobre o Orquestra

Orquestra é uma IDE que substitui o modelo tradicional de abas e janelas empilhadas por um canvas infinito com zoom e pan. Você posiciona editores, terminais, navegadores e agentes de IA livremente pelo espaço — igual Figma ou Miro, mas feito para programação.

Os painéis podem flutuar livres no canvas, ser dockados em abas e splits (quatro zonas de dock), ou destacados para janelas próprias do sistema operacional. Todo o layout é persistido automaticamente e restaurado quando você reabre o projeto.

Construído com Electron + React + TypeScript. Versão atual: 1.3.2 (MIT).

Instalação

Baixe a versão pré-compilada para seu sistema. Não compile da fonte para uso diário.

PlataformaFormato
Windows (x64)Instalador .exeDownload →
Windows (x64)Versão Portátil .zipDownload →

Primeiros Passos

  1. Abra uma pasta — ela se torna seu workspace.
  2. Adicione painéis — clique com botão direito no canvas ou use Cmd+K para a paleta de comandos.
  3. Organize — arraste painéis para dockar em abas e splits, ou destaque para janelas próprias.
  4. NavegueCmd+= para zoom in, Shift+setas para pan.
  5. Já está pronto — sem arquivos de configuração pra começar.
DicaComece abrindo um terminal com Cmd+T. Depois adicione um editor com Cmd+Shift+E e veja seu código lado a lado.

Canvas

O canvas é um espaço infinito onde você posiciona seus painéis. Dois sistemas de coordenadas:

  • Canvas-space — coordenadas do mundo real onde os painéis vivem
  • View-space — o que você vê na tela, derivado do zoom + viewport

Navegação

Zoom in/out Cmd+= / Cmd+-
Reset zoom Cmd+0
Zoom to fit Cmd+1
Zoom to selection Cmd+2
Pan canvas Shift+setas
Auto-layout Cmd+Shift+L
Hand/select tool Shift+Space
Undo / Redo Cmd+Z / Cmd+Shift+Z

Configurações do Canvas

Velocidade do zoom, snap to grid, minimap, estilo do grid (dots/lines/none), auto-focus no maior nó visível, imagem de wallpaper. Acessível em Configurações.

Painéis

Cada tipo de painel tem uma cor de marca e tamanho padrão:

TipoCorTam. PadrãoCanvasDescrição
TerminalVerde640×400Simxterm.js com WebGL + node-pty
EditorLaranja600×500SimMonaco Editor com syntax highlight
NavegadorAzul800×600SimWebview embutido com abas e proxy
AgenteAzul760×480SimPi coding-agent chat thread
DocumentoRoxo700×500SimPDF, DOCX e imagens
CanvasVioleta800×600DockCanvas dentro do canvas
InfoPainéis podem ser arrastados entre canvas, dock e janelas destacáveis via drag-and-drop.

Docking

Quatro zonas de dock por janela (esquerda, direita, inferior, central), cada uma com suporte a abas e splits. O layout de dock é gerenciado por janela via DockStore.

Para destacar um painel: arraste-o para fora da janela principal. Para dockar de volta: arraste a janela destacada sobre a zona de dock desejada.

Editor

Baseado no Monaco Editor (o mesmo do VS Code). Recursos:

  • Syntax highlighting para dezenas de linguagens
  • Multi-cursor e seleção em bloco
  • Diff mode (comparação de arquivos)
  • Preview de Markdown embutido
  • Detecção de conflitos de arquivo (EditorConflictBanner)
  • Múltiplas abas por editor

Terminal

Terminal nativo usando xterm.js com WebGL renderer e node-pty como backend. Recursos:

  • Renderização acelerada (WebGL + canvas fallback)
  • Busca no scrollback
  • Serialização de sessão (scrollback preservado entre sessões)
  • Web links clicáveis
  • Modo Maestro (agente controla o terminal via CLI orquestra)
  • Pipe entre terminais (pipeCreate, pipeDestroy)

Git

Integração completa com git via runtime VcsHost. Status, staging, branches, diffs, push/pull, stashes — tudo sem sair do canvas.

Status de arquivos no explorador com cores (estilo VS Code)
Stage/Unstage/Commit inline
Branch management: criar, deletar, checkout
Diff inline: working tree e staged
Stash: push e pop
Git Worktrees: criar, remover, merge entre worktrees
Pull Request via gh CLI: criar, listar, checkout como worktree

Worktrees são recursos de destaque: cada worktree pode ter seus próprios terminais e agentes, com isolamento total. Visualização por território no canvas.

Pi Agent

O Pi é o agente de IA integrado do Orquestra. Uma thread de chat com o modelo que você escolher, com memória por sessão.

O agente é executado como um processo filho (piRpcClient.ts) e se comunica via JSON-RPC. O estado inclui: mensagens, modelo ativo, flag de execução, estatísticas da sessão e suporte a fork de conversas.

Fluxo típico: o agente recebe um prompt, processa com o modelo configurado, pode modificar arquivos (com diffs exibidos no ChatDiffView), executar comandos no terminal, e reportar resultados.

Provedores Suportados

Via OAuth (abre navegador para autenticação) ou API key (configurada nas configurações do agente):

ProvedorTipo
Anthropic (Claude)OAuth
OpenAI CodexOAuth
GitHub CopilotOAuth
Google GeminiAPI Key
DeepSeekAPI Key
GroqAPI Key
MistralAPI Key
OpenRouterAPI Key
OpenAI (API direta)API Key
Custom (qualquer endpoint compatível)API Key

As credenciais são armazenadas criptografadas via safeStorage do Electron.

Subagentes

O sistema de subagentes delega tarefas especializadas com contextos isolados:

Scout reconhecimento rápido
Planner planos de implementação
Reviewer revisão de código
Worker propósito geral

Modos de execução: único, paralelo (até 8, 4 concorrentes) ou encadeado. Workflow típico: scout-and-planimplementimplement-and-review.

Modo Maestro

Um modo especial de terminal (maestro: true) que expõe comandos orquestra CLI, permitindo que o agente manipule o canvas:

orquestra recruit recrutar worker
orquestra dismiss demitir worker
orquestra connect conectar terminais
orquestra list listar workers
orquestra assign atribuir tarefa
orquestra track monitorar worker

Atalhos de Teclado

No Windows/Linux use Ctrl no lugar de Cmd. Todos os atalhos são rebindáveis em Configurações → Shortcuts.

Painéis e Arquivos

Novo terminal Cmd+T
Novo editor Cmd+Shift+E
Novo navegador Cmd+Shift+B
Novo agente Cmd+Shift+A
Novo canvas Cmd+Shift+C
Novo arquivo Cmd+N
Salvar Cmd+S
Fechar painel Cmd+W
Deletar painel Cmd+Backspace

Navegação e View

Paleta de comandos Cmd+K
Busca global Cmd+Shift+F
Sidebar Cmd+B
Explorador de arquivos Cmd+Shift+X
Minimap Cmd+Shift+M
Próx./anterior painel Ctrl+Tab
Navegar entre painéis Cmd+setas

Canvas

Zoom in/out Cmd+= / Cmd+-
Reset zoom Cmd+0
Zoom to fit Cmd+1
Zoom to selection Cmd+2
Auto-layout Cmd+Shift+L
Pan canvas Shift+setas
Hand/select tool Shift+Space
Undo/Redo Cmd+Z / Cmd+Shift+Z

Desenvolvimento Remoto

O runtime do Orquestra pode rodar localmente ou em máquinas remotas via SSH ou WSL.

Tipos de Conexão

  • Local — runtime roda na mesma máquina
  • SSH — runtime em servidor remoto com chave Ed25519 e known_hosts
  • WSL — runtime dentro de uma distro WSL2

Ciclo de Vida do Runtime

installingconnectingconnecteddisconnectedunreachablemissing

O daemon é um processo Node.js autônomo (empacotado como tarball por plataforma) que expõe operações de terminal, sistema de arquivos, git e shell via JSON-RPC sobre stdio.

Chaves SSH são gerenciadas com criptografia via safeStorage do Electron, com suporte a ssh-agent forwarding.

Arquitetura

Orquestra segue o modelo de processos do Electron:

src/
├── main/    // Processo principal Electron
│   ├── ipc/       // Handlers IPC por domínio
│   ├── runtime/   // Daemon remoto (SSH, WSL)
│   └── lifecycle/ // Shutdown, openPath, telemetry
├── preload/  // Ponte IPC isolada (contextBridge)
├── renderer/ // App React + Zustand + Tailwind
│   ├── canvas/    // Canvas infinito
│   ├── docking/   // Sistema de abas e splits
│   ├── panels/    // Componentes de painel
│   ├── stores/    // ~20 stores Zustand
│   └── sidebar/   // Explorador, git, busca
├── agent/    // Sistema de agente Pi
│   ├── main/      // RPC client, auth manager
│   └── renderer/  // Painel do agente, chat, diff
└── shared/   // Tipos, IPC channels, temas
    └── themes/    // 17 temas embutidos

Gerenciamento de Estado

Zustand 5 com stores por domínio. Cada workspace tem sua própria instância de CanvasStoreContext e DockStoreContext.

  • canvasStore — nós, zoom, viewport, foco, undo/redo, conexões, desenhos
  • appStore — workspaces, painéis, sidebar, worktrees, remoto
  • dockStore — layout das zonas de dock por janela
  • settingsStore — preferências do usuário
  • shortcutStore — atalhos rebindáveis

Persistência

Todo estado é salvo como JSON em disco. Arquivos hand-editable em formato JSON — sem banco de dados.

ArquivoLocalConteúdo
settings.jsonuserData/Preferências do usuário
workspace.jsonprojeto/.orquestra/Layout do canvas + dock
session.jsonprojeto/.orquestra/Scrollback, abas, estado do agente
recent-projects.jsonuserData/Projetos recentes
layouts.jsonuserData/Layouts salvos
auth.jsonuserData/pi-agent/Credenciais dos provedores

Temas

17 temas embutidos com schema unificado que cobre: cores da interface (CSS custom properties), paleta ANSI do terminal e tokens de syntax highlighting do Monaco.

Temas built-in: Dark Cold (padrão), Dark Warm, Light Subtle, Dracula, Nord, Solarized Dark, Tokyo Night, VS Dark/Light, One Dark Pro (4 variantes), One Light, Clay Dark/Light, IntelliJ Light.

O tema pode ser customizado via skill orquestra-theme — um JSON data-driven que define toda a aparência do app.

FAQ

Perguntas frequentes sobre o Orquestra.

Preciso de Mac para usar?Não. O Orquestra roda nativamente no Windows 10 e 11. Sem VM.
Funciona com WSL?Sim. Conecte terminais WSL2 junto com nativos no mesmo canvas.
Quais agentes de IA?Anthropic Claude, OpenAI Codex, Copilot, Gemini, DeepSeek, Groq, Mistral, OpenRouter.
Meus dados vão pra nuvem?Não. Tudo local. Zero telemetria, sem coleta de dados.
Preciso de cadastro?Não. O app funciona sem cadastro. A conta é só para assinar o Pro.
Quanto custa?Free para sempre. Pro: 7 dias grátis, depois assinatura.