Espaços de trabalho

Um espaço de trabalho é a unidade de isolamento do Bromure Agentic Coding: uma VM Ubuntu com o seu próprio disco de sistema, a sua própria pasta pessoal persistente, os seus próprios agentes de programação e credenciais, e as suas próprias políticas de segurança. Tudo o que a aplicação faz acontece dentro de um espaço de trabalho — um espaço de trabalho descartável pode funcionar totalmente aberto com uma chave de API descartável, enquanto um espaço voltado para produção regista todas as trocas de IA e pede confirmação antes de cada escrita destrutiva, e os dois nunca partilham um único byte.

Quase todas as definições da aplicação são por espaço de trabalho. As exceções são o servidor de Automatização ao nível da aplicação, a imagem de navegador transferida e os modelos locais instalados — todos partilhados entre espaços de trabalho. No código e no JSON exportado, um espaço de trabalho é designado por profile; a CLI aceita indistintamente o nome de um espaço de trabalho, o seu id ou um prefixo de short-id. Este capítulo aborda a janela a partir da qual gere os espaços de trabalho e as ações do ciclo de vida — criar, editar, duplicar, repor, eliminar — que aciona a partir dela. O editor de definições de 15 painéis que cada espaço de trabalho contém está documentado em Referência de Definições; o que acontece quando um espaço de trabalho está em execução é abordado em Sessões; e o próprio modelo de isolamento encontra-se em Conceitos e Arquitetura.

O navegador de espaços de trabalho

A janela principal da aplicação é o navegador de espaços de trabalho: uma barra lateral esquerda que lista os seus espaços de trabalho, a Grelha de terminais e as suas automatizações agendadas, e um painel de detalhe que mostra os sinais vitais em direto e a configuração do espaço de trabalho selecionado.

O navegador de espaços de trabalho: uma barra lateral com uma secção WORKSPACES (Grelha, Codex Sandbox, Claude Dev) e uma secção AUTOMATIONS, ao lado de um painel de detalhe que mostra os cartões de estado do Codex Sandbox e o resumo de CONFIGURATION

A barra lateral tem três secções, de cima para baixo:

  • WORKSPACES — um nó Grelha fixado seguido de uma linha por espaço de trabalho.
  • AUTOMATIONS — as suas execuções de agentes agendadas e não assistidas, com um botão + para adicionar uma.
  • Um botão + preto no fundo que cria um novo espaço de trabalho.

Selecionar uma linha de espaço de trabalho preenche o painel de detalhe. Se o espaço de trabalho estiver Desligado ou Suspenso, o painel mostra o seu painel de controlo e um botão Iniciar ou Retomar; assim que está em execução, o palco mostra a sessão em direto (os seus separadores de terminal, o painel do navegador e o painel de controlo), documentada em Sessões.

A barra lateral é redimensionável entre 100 e 600 pontos (predefinição de 220). Arraste o divisor para baixo dos cerca de 100 pontos, ou prima ⌃⌘S, para a recolher numa barra estreita de ícones; prima novamente para a restaurar. Os espaços de trabalho são listados por ordem de utilização mais recente, recorrendo à data de criação para aqueles que nunca abriu.

A barra lateral

Linhas de espaço de trabalho

Cada linha de espaço de trabalho apresenta, da esquerda para a direita:

  • Um mosaico colorido — um glifo de bastidor de servidores tingido com a cor do espaço de trabalho, com um pequeno ponto de estado de execução no canto.
  • O nome do espaço de trabalho, a negrito quando a linha está selecionada.
  • Uma etiqueta de estado por baixo do nome — Desligado, A iniciar… ou Suspenso. Um espaço de trabalho em execução não mostra etiqueta; em vez disso, os seus separadores de terminal, juntamente com um nó Docker sempre ativo, aparecem aninhados sob a linha (o nó apresenta um crachá com a contagem de contentores em execução, que indica 0 quando nenhum está ativo).
  • Um triângulo de aviso vermelho após o nome quando o espaço de trabalho foi assinalado como comprometido pelo detetor de fugas de credenciais e recusa arrancar até ser apagado (ver Conceitos e Arquitetura).

Ao passar o cursor sobre um espaço de trabalho em execução, surgem três botões de ação rápida na linha: Destacar para a sua própria janela, Fechar esta VM e Novo separador (⌘T). O botão no fim de cada linha abre o menu de contexto desse espaço de trabalho — o centro de todas as ações de ciclo de vida e de gestão descritas no resto deste capítulo.

Estados de execução

Uma VM de espaço de trabalho está sempre num de alguns estados, exibido tanto pelo ponto de estado da linha como pela pílula junto ao nome no cabeçalho do painel de detalhe:

EstadoPonto da linhaSignificado
DesligadoCinzentoNão está em execução. Sem RAM, sem CPU; apenas o disco em armazenamento.
A iniciar… (A arrancar)Laranja, pulsanteA VM está a ligar-se.
Em execuçãoVerdeArrancada e ativa; a sessão está em direto.
SuspensoAmareloRAM guardada em disco; retoma quase instantaneamente onde parou.

O ciclo de vida por detrás destes estados — como a suspensão difere do encerramento, e o que faz uma "ação de fecho" — está descrito em Conceitos e Arquitetura.

O painel de detalhe

Quando um espaço de trabalho não está em execução, o seu painel de detalhe é um painel de controlo: uma fila de cartões de estado no topo, um resumo de CONFIGURATION por baixo, e um botão Iniciar / Retomar no canto superior direito.

Cartões de estado

Cinco cartões reportam o panorama de recursos do espaço de trabalho. Os seus valores diferem consoante a VM esteja ou não em execução:

CartãoQuando Desligado / SuspensoQuando Em execução
CPU (legenda desligado)Carga de CPU em direto, com um histórico em sparkline.
MemóriaRAM alocada, p. ex. 8 GB (legenda alocada)Memória em uso dentro do convidado.
vCPUsNúmero de núcleos, p. ex. 4 (legenda núcleos)O mesmo número com a média de carga atual do convidado.
Disco0 MB (legenda de 0 MB (anfitrião))Disco utilizado pelo espaço de trabalho, sobre a capacidade do anfitrião, lido em direto do convidado.
Tempo ativo (legenda desligado)Tempo desde o arranque, p. ex. 3h 12m.

Os valores de memória alocada e de vCPU provêm das definições de Recursos do espaço de trabalho. O painel de controlo em execução, incluindo as listagens de portas em direto e a exposição à Internet, é abordado em Sessões.

O resumo de CONFIGURATION

O cartão CONFIGURATION é uma recapitulação rápida e só de leitura das definições mais importantes do espaço de trabalho — para que possa confirmar o que um espaço de trabalho fará antes de o iniciar:

LinhaMostra
<Nome do agente> (uma linha por agente ativado)Onde é executado e como se autentica — Cloud · API token, Cloud · Subscription, On-device · <model>, e assim por diante.
SalvaguardasOff, o modo único quando uniforme, ou Custom (N domains) quando misto.
Análise de injeção de promptOn ou Off.
Pastas partilhadasOs nomes das pastas montadas, ou None.

Cada um destes corresponde a um painel do editor de definições: Agentes, Salvaguardas, Injeção de prompt e Pastas.

Nota: Um espaço de trabalho recém-descodificado que seja anterior a uma definição mostra aqui a predefinição legada dessa definição — por exemplo, o Codex Sandbox na captura de ecrã acima reporta Salvaguardas Off e Análise de injeção de prompt Off, porque foi criado antes de essas predefinições existirem. Os espaços de trabalho recém-criados herdam, em vez disso, o modelo de fábrica atual (Salvaguardas definidas para Perguntar antes de escrever, rastreio para Detalhes do pedido de IA). Ver o modelo de preferências.

Iniciar e Retomar

O botão no canto superior direito indica Iniciar quando o espaço de trabalho está Desligado e Retomar quando está Suspenso. Clicá-lo arranca a VM (ou desperta-a do seu estado de RAM guardado) e muda o palco para a sessão em direto. As mesmas ações estão disponíveis no menu da linha.

Criar um espaço de trabalho

Clique no botão + preto no fundo da barra lateral (a sua dica indica Novo espaço de trabalho). Isto abre o editor de definições numa janela intitulada Novo espaço de trabalho, pré-preenchida a partir do seu modelo de preferências com um nome de marcador de posição — Default workspace, numerado automaticamente Default workspace 2, 3, e assim por diante se o nome já estiver em uso.

  1. Dê um Nome ao espaço de trabalho no painel Geral. Este é o único campo obrigatório para guardar.
  2. Ajuste qualquer outro painel — agente, credenciais, salvaguardas, aparência, recursos — conforme necessário. Todos os painéis estão documentados em Referência de Definições.
  3. Clique em Criar. Prima Esc (ou Cancelar) para descartar o rascunho.

Um novo espaço de trabalho é bifurcado a partir do modelo, pelo que tudo o que definir em Bromure → Preferências… se torna o seu ponto de partida. O modelo de fábrica ativa o Claude Code como o agente principal no modo de autenticação Subscription, define todas as salvaguardas para Perguntar antes de escrever e ativa um par de chaves SSH ed25519 (a opção Gerar um par de chaves ed25519 em Credenciais → Chaves SSH está pré-selecionada, exceto se o modelo já tiver uma chave).

Dica: A maioria das alterações no editor só é aplicada quando clica em Criar ou Guardar. Algumas ações produzem efeito imediato, independentemente disso — transferências de modelos locais e de modelos de injeção de prompt, autorização OAuth de MCP, registo de subscrição e importação de chaves SSH — porque afetam estado partilhado ou do lado do anfitrião, em vez do documento do espaço de trabalho.

Editar e renomear um espaço de trabalho

Abra o menu de um espaço de trabalho e escolha Editar… para reabrir o mesmo editor, desta vez intitulado Editar espaço de trabalho e ligado ao espaço de trabalho existente. Altere qualquer valor e clique em Guardar.

Não existe um comando "renomear" separado — um espaço de trabalho é renomeado editando o seu campo Nome no painel Geral. Só existe uma janela de editor de cada vez; abrir o editor para um espaço de trabalho diferente desmonta a janela e reconstrói-a.

Cor e o mosaico do espaço de trabalho

Cada espaço de trabalho tem uma Cor de destaque, escolhida no painel Geral entre oito predefinições:

Azul (predefinição)VermelhoVerdeLaranja
RoxoRosaTurquesaCinzento

A cor tinge o mosaico do espaço de trabalho na barra lateral, o seu realce de seleção e os destaques dos seus separadores — é a forma mais rápida de distinguir espaços de trabalho num relance. A cor é a única identidade visual por espaço de trabalho: não há seletor de ícone. O mosaico é sempre um glifo de bastidor de servidores na cor escolhida, sobreposto com o ponto de estado de execução descrito em Estados de execução.

Duplicar um espaço de trabalho

Escolha Duplicar no menu de um espaço de trabalho para o copiar em profundidade. A cópia aparece imediatamente na barra lateral com o nome do original acrescido de copy — duplicar o Codex Sandbox produz Codex Sandbox copy — e não há diálogo de confirmação.

Uma duplicação é um clone genuíno. Copia todas as definições e credenciais, o disco de sistema, a pasta pessoal e o material SSH e de agente do lado do anfitrião, usando a clonagem copy-on-write do APFS sempre que possível (instantânea e sem consumir espaço em disco adicional até os dois espaços de trabalho divergirem). Deliberadamente não copiadas estão três coisas ligadas à identidade do original:

  • o instantâneo de RAM guardado, para que a cópia arranque a frio de novo em vez de retomar o estado em direto do original;
  • a disposição dos separadores;
  • o endereço MAC persistente, para que a cópia se junte à rede como uma máquina distinta.

Como a sua data de criação é recarimbada, a cópia é ordenada no topo da barra lateral como o espaço de trabalho mais recente.

Iniciar, suspender e encerrar

O menu de uma linha de espaço de trabalho adapta-se ao seu estado atual. Quando a VM está desligada ou suspensa, oferece a única entrada de arranque; quando está em execução, oferece as três formas de a parar ou reiniciar:

EstadoEntradas do menu
DesligadoIniciar
SuspensoRetomar
Em execução ou A iniciar…Encerrar · Suspender · Reiniciar — mais Adicionar Worktrees à Grelha enquanto em execução

Suspender guarda a RAM da VM em disco e para-a, de modo que um posterior Retomar continua exatamente onde parou; Encerrar efetua um desligamento limpo, e o próximo arranque é um arranque a frio completo. Reiniciar reinicia um espaço de trabalho em execução no lugar. Os compromissos entre estas opções, e a predefinição por espaço de trabalho Ao fechar a janela que decide qual delas é acionada por um fecho de janela, são abordados em Conceitos e Arquitetura e Definições gerais.

Repor o disco de sistema

Repor disco (no menu , ou Repor para a base… no painel Recursos) volta a clonar o disco de sistema do espaço de trabalho a partir da imagem base atual. Descarta tudo o que alterou na camada do SO — pacotes instalados com apt, edições a /etc, /var, /usr, /opt e configuração de todo o sistema — deixando a sua pasta pessoal intacta: projetos, dotfiles, chaves .ssh, npm-global, .cargo e o histórico da shell sobrevivem todos. O diálogo de confirmação intitula-se Repor o disco de sistema de "<name>" para a base? e os seus botões são Repor para a base e Cancelar.

Repor o disco também elimina o estado de RAM guardado e a disposição dos separadores, para que o próximo arranque seja coerente. A ação é recusada com Feche "<name>" primeiro. se a janela da sessão do espaço de trabalho estiver aberta — feche-a antes de repor.

Nota: Para apagar antes a pasta pessoal — projetos, dotfiles e o par de chaves SSH gerado — use Apagar pasta pessoal… no painel Recursos. Os pontos de verificação de reversão da pasta pessoal e o controlo Restaurar pasta pessoal… que reverte para um instantâneo por arranque estão descritos em Sessões.

Eliminar um espaço de trabalho

Eliminar espaço de trabalho (a entrada vermelha e destrutiva no fundo do menu ) remove um espaço de trabalho permanentemente. Um alerta de confirmação intitulado Eliminar o espaço de trabalho "<name>"? explica o raio de impacto:

Remove o seu disco, definições e chave SSH. A pasta montada do anfitrião fica intacta.

Confirmar elimina todo o diretório do espaço de trabalho sob ~/Library/Application Support/BromureAC/profiles/ — o seu profile.json, o seu secrets.enc encriptado, o disco de sistema, a imagem da pasta pessoal, todos os pontos de verificação e o material de chave SSH do lado do anfitrião — e liberta o seu endereço MAC reservado. O que a eliminação não afeta são as pastas do anfitrião que partilhou para dentro do espaço de trabalho: essas residem no seu Mac, estão montadas em leitura-escrita e são deixadas exatamente como estavam. O seu conteúdo dentro da VM desaparece com a VM; os originais no seu Mac não.

Aviso: A eliminação não é recuperável a partir da aplicação. Não há lixeira nem desfazer — o disco, a pasta pessoal e os segredos desaparecem. Qualquer coisa que queira manter deve estar numa pasta partilhada do anfitrião, ou ser confirmada (commit) e enviada (push) antes de eliminar.

A Grelha

O nó Grelha fixado no topo da secção WORKSPACES é um palco que dispõe vários terminais em execução lado a lado, para que possa observar vários agentes ao mesmo tempo. Há duas formas de o preencher: escolha Adicionar Worktrees à Grelha no menu de um espaço de trabalho em execução para largar de uma só vez todos os separadores de worktree desse espaço de trabalho na Grelha, ou arraste separadores de terminal individuais para o nó Grelha. O menu de contexto de cada célula oferece Remover da Grelha. A disposição da Grelha e a forma como interage com os worktrees são abordadas em Sessões.

As automatizações num relance

A secção AUTOMATIONS lista as suas execuções de agentes agendadas e não assistidas. O seu botão + (dica Nova automatização) abre o editor de automatizações. Cada linha mostra o nome da automatização, um ponto colorido para o espaço de trabalho a que pertence, um resumo numa linha do seu acionador (por exemplo Dias úteis 9:00 ou PR · owner/repo) e um glifo para a sua última execução. Clicar com o botão direito numa linha oferece Executar Agora, Pausar ou Retomar, e Eliminar….

Uma automatização pertence a um espaço de trabalho; quando dispara, cria um novo worktree Git no repositório desse espaço de trabalho e lança aí o agente escolhido com o seu prompt, pelo que as execuções aparecem como separadores de worktree normais. Os acionadores vão desde um agendamento por relógio até à sondagem de pull requests, issues e commits do GitHub, à sondagem de issues do Linear e ao encadeamento após outra automatização. A funcionalidade completa — acionadores, filtros, a análise obrigatória de injeção de prompt sobre o texto do evento, o histórico de execuções e as superfícies da CLI e do socket de controlo que a espelham — está documentada em Automatização e a CLI.

Onde é armazenado um espaço de trabalho

Cada espaço de trabalho é um diretório sob ~/Library/Application Support/BromureAC/profiles/<uuid>/. As partes que lhe podem interessar:

CaminhoConteúdo
profile.jsonTodas as definições não secretas.
secrets.encTodos os segredos, separados no momento de guardar e encriptados com AES-GCM com uma chave guardada no Keychain (chmod 600).
disk.imgA cópia de leitura-escrita do SO base do espaço de trabalho.
home.imgA /home/ubuntu persistente (modelo de pasta pessoal ext4).
checkpoints/Instantâneos de reversão por arranque do disco e da pasta pessoal.
vm.stateO instantâneo de RAM guardado para um espaço de trabalho suspenso.
agent/, ssh/Material de chave SSH do lado do anfitrião — a chave privada nunca entra na VM.

O modelo de preferências reside fora de profiles/ (como profile-template.json mais um companheiro encriptado), razão pela qual nunca aparece como um espaço de trabalho na barra lateral. As associações persistentes de espaço de trabalho para MAC são registadas separadamente em profile-macs.json. Os segredos nunca são escritos em profile.json e nunca são copiados para a VM — o convidado detém apenas valores falsos, que o proxy do anfitrião troca por valores reais na fronteira de transmissão (ver Credenciais).

Dica: disk.img, home.img e os instantâneos sob checkpoints/ são imagens ext4 do Linux. Pode navegar por elas, extrair delas e até repará-las diretamente no seu Mac — sem necessidade de arrancar a VM — com o navegador de ficheiros ext4 descrito em Avançado.

Equivalentes na linha de comandos

Todas as ações deste capítulo têm uma contraparte sem interface. Com a aplicação (ou o seu agente em segundo plano) em execução, bromure-cli vm ls lista os espaços de trabalho com o estado em direto, e workspaces create, workspaces edit, workspaces describe e workspaces rm cobrem os fluxos de criação/edição/inspeção/eliminação — vm é um alias aceite para o grupo workspaces. Estes, a API de automatização em loopback e o menu remoto SSH que espelha todo o editor estão documentados em Automatização e a CLI.