Padrão de implantação
Este guia explica como implantar o Editor Cherri Code e as ferramentas de CLI nos computadores dos desenvolvedores da sua organização. A maioria das organizações implanta tanto o editor (para o trabalho diário de desenvolvimento) quanto a CLI (para automação, CI/CD e scripts).
Para outras opções de implantação, como integrações de SCM (apps Bugbot e BGA) ou acesso pela Web, consulte a documentação da integração correspondente.
Para implantar o app desktop do Grok Bot, consulte Implantar o Grok Bot na sua organização.
Implantação do Editor com MDM
Implante o Editor Cherri Code e o agente nas estações de trabalho dos usuários e aplique políticas por meio de sistemas de gerenciamento de dispositivos móveis (MDM).
Como funciona
- A equipe de TI empacota o app Cherri Code para implantação
- Envia o app para as máquinas dos usuários via MDM (Jamf, Intune etc.)
- Os usuários recebem o Cherri Code em suas principais máquinas de desenvolvimento
O MDM permite aplicar políticas ao Cherri Code, como IDs de equipe permitidos e extensões.
Você também pode aplicar configurações como a confiança do espaço de trabalho e controlar atualizações automáticas e a implantação de novas versões.
Configuração de MDM
Você pode gerenciar centralmente funcionalidades específicas do Cherri Code por meio de soluções de gerenciamento de dispositivos para garantir que ele atenda às necessidades da sua organização. Ao especificar uma política do Cherri Code, seu valor substitui a configuração correspondente do Cherri Code nos dispositivos dos usuários.
O Cherri Code oferece suporte a políticas no Windows (Política de Grupo), macOS (perfis de configuração) e Linux (arquivos de política JSON, versão 2.0+).
Atualmente, o Cherri Code disponibiliza políticas para controlar as seguintes funcionalidades controladas pelo administrador:
| Política | Descrição | Configuração do Cherri Code |
|---|---|---|
| AllowedExtensions | Controla quais extensões podem ser instaladas. | extensions.allowed |
| AllowedTeamId | Controla quais IDs de equipe podem fazer login. Usuários com IDs de equipe não autorizados têm a sessão encerrada à força. | cursorAuth.allowedTeamId |
| ExtensionGalleryServiceUrl | Configura uma URL personalizada do marketplace de extensões. | extensions.gallery.serviceUrl |
| NetworkDisableHttp2 | Desabilita o HTTP/2 para todas as solicitações e usa HTTP/1.1. | cursor.general.disableHttp2 |
| UpdateMode | Controla o comportamento das atualizações automáticas. Defina como 'none' para desabilitar as atualizações. | update.mode |
| WorkspaceTrustEnabled | Controla se a Confiança do Espaço de Trabalho está habilitada. | security.workspace.trust.enabled |
Gerenciando listas de permissão do modo de execução com MDM
Você também pode implantar o arquivo de permissões do Cherri Code via MDM para gerenciar quais comandos de terminal e ferramentas MCP podem ser executados sem confirmação e orientar o classificador do modo Auto-review.
O caminho do arquivo é ~/.cursor/permissions.json. Os usuários podem adicionar um arquivo por repositório em <workspace>/.cursor/permissions.json; as entradas dos dois arquivos são concatenadas.
O formato do arquivo é:
| Chave | Tipo | Obrigatório | Significado |
|---|---|---|---|
terminalAllowlist | string[] | Não | Comandos de terminal que podem ser executados sem aprovação. Com o sandboxing habilitado, comandos de terminal compatíveis que não estão na lista de permissão podem ser executados no sandbox. Cada entrada é comparada à string completa do comando. |
mcpAllowlist | string[] | Não | Ferramentas MCP que podem ser executadas sem aprovação. As ferramentas MCP não são executadas no sandbox local. Cada entrada usa a sintaxe server:tool. |
autoRun | object | Não | Orienta o classificador do modo Auto-review com os arrays de linguagem natural allow_instructions e block_instructions. Aplica-se a chamadas de shell, MCP e Fetch no Cherri Code 3.6 e versões posteriores. Consulte a referência de permissions.json. |
As entradas de mcpAllowlist aceitam estas formas:
| Entrada | Significado |
|---|---|
server:tool | Uma ferramenta específica em um servidor MCP específico |
server:* | Todas as ferramentas de um servidor MCP |
*:tool | Uma ferramenta de qualquer servidor MCP |
*:* | Todas as ferramentas MCP |
terminalAllowlist, mcpAllowlist e autoRun são opcionais. Se uma chave for omitida ou estiver vazia (após a concatenação dos arquivos por usuário e por repositório), o Cherri Code usa a lista de permissão gerenciada pelo Editor para essa categoria.
Exemplo:
{ "terminalAllowlist": [ "npm install", "pnpm test", "python -m pytest" ], "mcpAllowlist": [ "linear:*", "github:create_pull_request", "*:search" ], "autoRun": { "block_instructions": [ "Block any command that drops or truncates a database table." ] }}Como este é um arquivo comum, você pode distribuí-lo com Jamf, Kandji, Intune ou qualquer outra ferramenta de gerenciamento de dispositivos que grave arquivos no diretório de dados do Cherri Code do usuário.
A ordem de precedência da lista de permissão é:
- Dashboard da equipe ou outras configurações controladas pelo administrador
~/.cursor/permissions.jsongerenciado concatenado com<workspace>/.cursor/permissions.json- Configurações do Editor e Adicionar à lista de permissão em linha
As configurações controladas pelo administrador substituem os valores definidos nos arquivos dessa categoria. Os arquivos por usuário e por repositório são combinados por concatenação; as configurações do Editor não se combinam com nenhum deles.
O Cherri Code monitora ambos os caminhos de permissions.json, portanto, as atualizações são aplicadas automaticamente, sem exigir reinicialização.
Política de Grupo do Windows
O Cherri Code oferece suporte à Política de Grupo baseada no Registro do Windows. Quando as definições de política são instaladas, os administradores podem usar o Editor de Política de Grupo Local para gerenciar os valores das políticas.
Para adicionar uma política:
- Copie os arquivos ADMX e ADML de política de
AppData\Local\Programs\cursor\policies. - Cole o arquivo ADMX no diretório
C:\Windows\PolicyDefinitionse o arquivo ADML no diretórioC:\Windows\PolicyDefinitions\<sua-localidade>\. - Reinicie o Editor de Política de Grupo Local.
- Defina os valores apropriados da política (por exemplo,
{"anysphere": true, "github": true}para a políticaAllowedExtensions) no Editor de Política de Grupo Local.
As políticas podem ser definidas tanto no nível Computador quanto no nível Usuário. Se ambas forem definidas, o nível Computador terá precedência.
Importante: Quando um valor de política é definido, ele substitui o valor da configuração do Cherri Code definido em qualquer nível (padrão, usuário, espaço de trabalho etc.). Essa substituição global impede que os usuários alterem essas configurações.
Instalador do Windows
O instalador do Windows é baseado no Inno Setup. Para instalar o Cherri Code completamente em segundo plano, sem interação do usuário, use as seguintes flags de linha de comando:
Para instalações novas:
CursorSetup-x64-2.0.exe /SILENT /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /CLOSEAPPLICATIONS /LOG=install.logPara atualizar instalações existentes:
Ao atualizar uma instalação existente do Cherri Code, use flags diferentes que incluem o parâmetro /update, apontando para um arquivo de flag. Esse arquivo é vazio e sinaliza ao instalador que se trata de uma operação de atualização.
Crie um arquivo de flag temporário e passe o caminho dele ao instalador:
CursorSetup-x64-2.0.exe /VERYSILENT /update="%TEMP%\cursor-update.flag" /CLOSEAPPLICATIONS /LOG=update.logObservação: Instaladores anteriores à versão 2.0 შესაძლოა não respeitem corretamente as flags /SILENT. Instaladores futuros (versão 2.0 e posteriores) garantirão que as instalações silenciosas funcionem corretamente.
Perfis de configuração do macOS
Os perfis de configuração gerenciam as configurações em dispositivos macOS. Um perfil é um arquivo XML com pares de chave-valor que correspondem às políticas disponíveis. Esses perfis podem ser implantados usando soluções de Gerenciamento de Dispositivos Móveis (MDM), como Jamf, Kandji ou Microsoft Intune, ou instalados manualmente.
Bundle ID por canal:
O PayloadType no seu perfil de configuração deve corresponder ao bundle ID do Cherri Code referente ao seu canal:
| Canal | Bundle ID |
|---|---|
| Produção | com.todesktop.230313mzl4w4u92 |
| Nightly | co.anysphere.cursor.nightly |
Para a maioria das implantações corporativas, use o bundle ID de produção: com.todesktop.230313mzl4w4u92.
Veja abaixo um exemplo de arquivo .mobileconfig para macOS:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"> <dict> <key>PayloadContent</key> <array> <dict> <key>PayloadDisplayName</key> <string>Cherri Code</string> <key>PayloadIdentifier</key> <string>com.todesktop.230313mzl4w4u92.J6B5723A-6539-4F31-8A4E-3CC96E51F48C</string> <key>PayloadType</key> <string>com.todesktop.230313mzl4w4u92</string> <key>PayloadUUID</key> <string>J6B5723A-6539-4F31-8A4E-3CC96E51F48C</string> <key>PayloadVersion</key> <integer>1</integer> <key>AllowedExtensions</key> <string>{"anysphere":true}</string> <key>AllowedTeamId</key> <string>1,2</string> <key>ExtensionGalleryServiceUrl</key> <string>https://marketplace.example.com</string> <key>NetworkDisableHttp2</key> <true/> <key>UpdateMode</key> <string>none</string> <key>WorkspaceTrustEnabled</key> <true/> </dict> </array> <key>PayloadDescription</key> <string>This profile manages Cherri Code.</string> <key>PayloadDisplayName</key> <string>Cherri Code</string> <key>PayloadIdentifier</key> <string>com.todesktop.230313mzl4w4u92</string> <key>PayloadOrganization</key> <string>Cherri Code</string> <key>PayloadType</key> <string>Configuration</string> <key>PayloadUUID</key> <string>F2C1A7B3-9D4E-4B2C-8E1F-7A6C5D4B3E2F</string> <key>PayloadVersion</key> <integer>1</integer> <key>TargetDeviceType</key> <integer>5</integer> </dict></plist>Políticas de string
O exemplo abaixo mostra a configuração da política AllowedExtensions. No arquivo de exemplo, o valor da política começa vazio (nenhuma extensão é permitida).
<key>AllowedExtensions</key><string></string>Adicione a string JSON apropriada que define sua política entre as tags <string>.
<key>AllowedExtensions</key><string>{"anysphere": true, "github": true}</string>Semântica de controle de extensões:
A política AllowedExtensions aceita um objeto JSON em que:
- As chaves podem ser nomes de publicadores (por exemplo,
"github") ou IDs completos de extensões (por exemplo,"ms-azuretools.vscode-docker") - Os valores são booleanos que indicam se extensões de determinado publicador ou extensões específicas são permitidas
- Se um publicador for definido como
true, todas as extensões desse publicador serão permitidas - IDs de extensões específicas têm precedência sobre as regras de publicador
Para a política AllowedTeamId, adicione a lista de IDs de equipe separados por vírgulas:
<key>AllowedTeamId</key><string>1,3,7</string>Para a política NetworkDisableHttp2, use um valor booleano para desativar o HTTP/2:
<key>NetworkDisableHttp2</key><true/>Políticas booleanas
Para políticas booleanas, como WorkspaceTrustEnabled, use as tags <true/> ou <false/>:
<key>WorkspaceTrustEnabled</key><false/>Ou, para ativar a funcionalidade:
<key>WorkspaceTrustEnabled</key><true/>Política UpdateMode
A política UpdateMode controla como o Cherri Code gerencia as atualizações automáticas. Isso é útil para organizações que desejam controlar quando e como as atualizações são implantadas.
Valores disponíveis:
none- Desativa todas as atualizações automáticasmanual- Os usuários podem verificar atualizações manualmentestart- Verifica se há atualizações ao iniciar o Cherri Codedefault- Comportamento padrão (igual astart)silentlyApplyOnQuit- Baixa atualizações em segundo plano e as aplica ao fechar o Cherri Code
Para desativar as atualizações automáticas:
<key>UpdateMode</key><string>none</string>Política WorkspaceTrustEnabled
A política WorkspaceTrustEnabled controla se a Confiança do Espaço de Trabalho está habilitada. Quando habilitada, o Cherri Code solicita que os usuários escolham entre o modo normal e o restrito para novos espaços de trabalho.
Use um valor booleano:
<key>WorkspaceTrustEnabled</key><true/>Política ExtensionGalleryServiceUrl
A política ExtensionGalleryServiceUrl configura a URL do marketplace de extensões. Ela é útil para organizações que desejam usar um marketplace de extensões personalizado ou espelhado.
Defina a URL como um valor de string:
<key>ExtensionGalleryServiceUrl</key><string>https://marketplace.example.com</string>Implantação com soluções de MDM
O arquivo .mobileconfig pode ser carregado diretamente na sua solução de MDM:
- Jamf: Carregue-o como um perfil de configuração personalizado
- Kandji: Adicione-o como um perfil personalizado na Biblioteca
- Microsoft Intune: Implante-o como um perfil personalizado com o domínio de payload correto
Verifique se o PayloadType corresponde ao ID do pacote do canal do Cherri Code.
Arquivo de configuração de referência
Um perfil de configuração completo de exemplo é incluído com o Cherri Code em:
# Canal de produção/Applications/Cursor.app/Contents/Resources/app/policies/com.todesktop.230313mzl4w4u92.mobileconfig# Canal Nightly/Applications/Cursor Nightly.app/Contents/Resources/app/policies/co.anysphere.cursor.nightly.mobileconfigO caminho do arquivo varia conforme o canal. Use o caminho apropriado para sua instalação do Cherri Code.
Considerações importantes de segurança:
- O arquivo
.mobileconfigfornecido inicializa todas as políticas disponíveis nessa versão do Cherri Code - Exclua as políticas desnecessárias para evitar valores padrão excessivamente restritivos
- Se você não editar nem remover uma política do exemplo, ela será aplicada com seu valor padrão
- Os valores das políticas substituem globalmente todas as configurações de usuário e do espaço de trabalho
Instale manualmente um perfil de configuração clicando duas vezes no perfil .mobileconfig no Finder e ativando-o em Preferências do Sistema, em Geral > Gerenciamento de Dispositivos. Remover o perfil das Preferências do Sistema removerá as políticas do Cherri Code.
Para mais informações sobre perfis de configuração, consulte a documentação da Apple.
Arquivo de política do Linux
As distribuições Linux não têm um sistema padronizado de políticas corporativas como o Registro do Windows ou os perfis de configuração do macOS. O Cherri Code lê políticas de um arquivo JSON para oferecer funcionalidade equivalente.
Observação: O suporte a arquivos de política do Linux está disponível no Cherri Code versão 2.0 e posteriores.
O arquivo de política fica em ~/.cursor/policy.json.
Como criar um arquivo de política
Crie um arquivo JSON no local indicado acima, usando os nomes das políticas como chaves e os respectivos valores. Todas as políticas são opcionais; inclua apenas as que deseja aplicar.
{ "AllowedExtensions": "{\"anysphere\": true, \"github\": true}", "AllowedTeamId": "1,3,7", "WorkspaceTrustEnabled": true}Formato da política
Cada política no arquivo JSON é associada a um nome de política:
-
AllowedExtensions: Uma string JSON que define os fornecedores de extensões permitidos
"AllowedExtensions": "{\"anysphere\": true, \"github\": true}" -
AllowedTeamId: Uma string de IDs de equipe separados por vírgula
"AllowedTeamId": "1,3,7" -
WorkspaceTrustEnabled: Um booleano que controla a confiança no espaço de trabalho
"WorkspaceTrustEnabled": true
Observação: O valor de AllowedExtensions deve ser uma string JSON (com aspas escapadas), não um objeto JSON. Isso corresponde ao formato usado no Windows e no macOS.
Implantação de políticas
Implante o arquivo de política usando as ferramentas de gerenciamento de configuração da sua organização:
- Ansible, Puppet ou Chef para implantação automatizada
- NFS ou armazenamento de rede compartilhado para arquivos de política centralizados
- Gerenciadores de pacotes com scripts pós-instalação
- Imagens base de contêiner para ambientes em contêineres
As alterações no arquivo de política entram em vigor quando o Cherri Code é reiniciado. O arquivo é monitorado quanto a alterações, portanto, as atualizações são propagadas automaticamente para as instâncias em execução.
Se o arquivo de política não existir, o Cherri Code será executado sem restrições de política.
Atualizações automáticas para usuários sem privilégios de administrador
Devido a limitações do framework Electron, as atualizações do Cherri Code exigem privilégios de administrador no macOS.
Abordagens recomendadas:
- Implantação via MDM: Use ferramentas de MDM (Jamf, Kandji, Intune) para implantar atualizações centralmente com os privilégios necessários
- Ferramentas de implantação automatizada: Considere ferramentas como o Installomator para atualizações por script
- Desativar avisos de atualização: Defina a política
UpdateModecomononepara evitar que os usuários vejam notificações de falha na atualização
Para organizações com usuários sem privilégios de administrador, a abordagem mais confiável é gerenciar as atualizações do Cherri Code pelo pipeline de implantação de software já utilizado e desativar as atualizações automáticas por meio de uma política de MDM.
Implantação via CLI
Execute os agentes do Cherri Code como uma ferramenta de linha de comando sem interface gráfica na sua infraestrutura.
Como funciona
- Faça o deploy da CLI no seu ambiente (local, nuvem corporativa, clusters do Kubernetes, sistemas de CI/CD)
- A CLI é usada em scripts, executada em segundo plano ou como parte da CI
- A CLI pode acessar tudo o que o usuário acessa na própria máquina (VPN, APIs internas, repositórios de pacotes privados etc.)
Instalação e configuração
Instale a CLI do Cherri Code:
# Instalar a CLI do Cherri Code (macOS, Linux, WSL)# Instalar a CLI do Cherri Code (Windows PowerShell)irm '# | iex# Definir a chave de API para scriptsexport CURSOR_API_KEY=your_api_key_hereagent -p "Analyze this code"Consulte a documentação do modo headless da CLI para mais detalhes.
Integração com o GitHub Actions
A CLI do Cherri Code funciona no GitHub Actions e em outros sistemas de CI.
Consulte Integração com o GitHub Actions para ver exemplos.
Considerações sobre a CLI do Cherri Code
Sejam executados no app para desktop ou como uma CLI independente, os agentes do Cherri Code têm os mesmos controles de segurança:
Mesmas funcionalidades:
- O Privacy Mode se aplica igualmente
- Os hooks funcionam tanto no app para desktop quanto na CLI
- Os mesmos controles de acesso a modelos
- O mesmo registro de auditoria
- O mesmo rastreamento de uso
Mesmos requisitos:
- Ambos precisam de acesso à rede para acessar os serviços do Cherri Code
- Ambos enviam código para LLMs (com as proteções do Privacy Mode)
- Ambos exigem autenticação adequada
A CLI é o mesmo agente com uma interface diferente.
Considerações de rede
As máquinas dos usuários precisam acessar os seguintes endpoints. Configure as regras de firewall e proxy adequadamente:
*.cursor.sh- Serviços de backend e endpoints de APIcursor-cdn.com- Downloads e atualizações do aplicativomarketplace.cursorapi.com- Marketplace de extensões- Endpoints de provedores de IA de terceiros (OpenAI, Anthropic, Google etc.)
Ao usar a política UpdateMode definida como none, é possível restringir o acesso aos endpoints de atualização e manter o acesso aos demais serviços.
O Editor Cherri Code herda a configuração de rede da máquina, incluindo acesso por VPN, endpoints de serviços internos e repositórios de pacotes privados.
Isso significa que os agentes executados no editor podem acessar tudo a que o usuário tem acesso na máquina.
Consulte Configuração de rede para conhecer os requisitos detalhados de firewall e proxy.
Versões mínimas
O Cherri Code define duas versões mínimas:
- Versão mínima suportada: usuários em versões antigas veem um aviso que pode ser dispensado, solicitando a atualização.
- Versão mínima permitida: usuários em versões antigas veem um erro que não pode ser dispensado e precisam atualizar. Isso marca o fim da vida útil dessa linha de versões.
Como regra geral, uma versão se torna elegível para ser a versão mínima suportada cerca de 2 meses após sua data de disponibilidade geral e para ser a versão mínima permitida cerca de 3 meses após essa data. Os aumentos também dependem da adoção de versões mais recentes.
É possível estimar quando uma versão deixará de ser aceita combinando essas orientações com nossas datas publicadas de disponibilidade geral e de changelog.
Ao gerenciar implantações do Cherri Code na sua organização, recomendamos atualizar o Cherri Code regularmente (por exemplo, via MDM) para manter os usuários em versões suportadas.
Solução de problemas
- Problemas na configuração do proxy (consulte Configuração de rede)
- Problemas de acesso a modelos (verifique o Gerenciamento de Modelos e Integrações ou o dashboard da equipe)
- Limite de gasto atingido (consulte Limites de gasto)
Perguntas frequentes
O Cherri Code oferece suporte a políticas no Linux?
Sim, a partir da versão 2.0. No Linux, o sistema de políticas é baseado em arquivos e fica em ~/.cursor/policy.json. Consulte a seção "Arquivo de Política do Linux" acima para saber mais sobre o formato e a implantação.
Posso usar variáveis de ambiente no arquivo de política?
Não. O arquivo de política precisa ser um JSON válido com valores estáticos. Se necessário, use ferramentas de gerenciamento de configuração para gerar o arquivo dinamicamente.
O que acontece se o arquivo de política tiver JSON inválido?
O Cherri Code registra um erro e é executado sem restrições de política. Verifique os logs do processo principal em busca de erros de análise.
Qual é o ID da minha equipe?
Você pode encontrar o ID da sua equipe clicando no nome dela em /dashboard.
Precisa de ajuda para implantar o Cherri Code em escala?
Entre em contato com nossa equipe para receber orientações sobre implantação via MDM e suporte prioritário.