Comunidade

GitHub - ivan-magda/swift-claw: Sua IA. Sua máquina. Sempre ligada. Um assistente pessoal em um único binário Swift puro.

O projeto Swift Claw é uma assistente pessoal de IA baseada em Telegram, executada localmente no hardware do usuário e escrita inteiramente em Swift. Ela armazena dados em um banco SQLite e permite a execução segura de comandos externos apenas com aprovação do usuário, além de oferecer integração com modelos de linguagem compatíveis com OpenAI.

Compartilhar
Your AI. Your machine. Always on. A personal assistant in one pure-Swift binary. - ivan-magda/swift-claw

swift-claw — Sua IA. Sua máquina. Sempre ligada.

CI Release Swift 6.3 Plataformas: macOS | Linux Licença: MIT

Seu assistente pessoal de IA sempre ligado. Um daemon Swift puro em hardware que você possui.

clawd combina um bot privado do Telegram com o LLM da sua escolha. Ele lembra o que você lhe conta e executa tarefas agendadas e proativas. Chamadas de ferramentas consequentes esperam pela sua aprovação. Tudo o que ele mantém fica em um único diretório no seu próprio computador: uma base de dados SQLite, envelopes secretos criptografados e arquivos Markdown que você edita à mão.

  • Uma verdadeira conversa do Telegram. As respostas chegam como rascunhos de mensagens em tempo real. /stop cancela uma rodada, /new inicia uma nova sessão, clawd transcreve notas de áudio no dispositivo (macOS 26), e analisa fotos enviadas se o modelo pode vê-las.
  • Memória duradoura. Fatos confirmados persistem em SQLite e clawd os recupera por importância e recentidade. Arquivos Markdown do workspace armazenam seu perfil, notas e logs diários, e a história de conversação é totalmente pesquisável por texto.
  • Habilidades que você escreve uma vez. Um arquivo skills/<name>/SKILL.md aparece no contexto com o nome e uma linha sobre quando usá-lo; quando uma tarefa corresponde, clawd carrega o corpo e segue seu procedimento em vez de pedir que você cole novamente. Envie /skills para ver todas as habilidades aceitas e cada arquivo que o escaneador rejeitou.
  • Proativo, no seu relógio. "Todos os dias úteis às 07:00" agendam disparos uma vez por ocorrência durante reinicializações e mudanças de horário de verão; um heartbeat opcional respeita horas silenciosas.
  • Ferramentas atrás de um motor de política. web_fetch está atrás de uma porta SSRF; escrita e execução de código esperam por um toque explícito para aprovar no Telegram. clawd impõe a política em código e trata conteúdo entrante como dados, nunca como instruções.
  • Execução de código em sandbox. Código não confiável roda em uma nova VM descartável por solicitação (macOS 26 arm64, desativado por padrão).
  • Ferramentas de servidores MCP. Liste um servidor, armazene seu token criptografado e suas ferramentas se juntam às built-ins como as menos confiáveis que clawd tem. Chamadas perguntam automaticamente; você pode marcar uma ferramenta nomeada segura, mas a porta de exfiltração ainda pode exigir aprovação. Apenas você pode adicionar um servidor ou alterar o que ele expõe.
  • Traga sua própria modelagem. Qualquer ponto final compatível com OpenAI funciona e clawd auth login pode executar um modelo elegível em uma assinatura ChatGPT.
  • Um único binário. Swift 6 com concorrência estrita, do long-poll do Telegram até SQLite.

Uma solicitação para escrever um arquivo pausa no Telegram: o cartão de aprovação mostra o caminho alvo totalmente resolvido, o tamanho e uma prévia, com botões Aprovar e Negar. O usuário toca em Negar e clawd não escreve nada.

A escrita de um arquivo suspende a execução até você responder. Cada campo no cartão vem do próprio registro da daemon: o caminho alvo após resolução de simlinks e .., o tamanho, e uma prévia do conteúdo. Toque em Negar e clawd não escreve nada.

curl -fsSL https://raw.githubusercontent.com/ivan-magda/swift-claw/main/install.sh | sh

Tudo cai em ~/.swift-claw, sem sudo. O script verifica cada download contra os checksums de lançamento, estaciona os arquivos do serviço e imprime as próximas etapas. Fixe uma versão com curl … | CLAWD_VERSION=v0.2.0 sh, leia a fonte do script primeiro, ou siga o caminho manual em docs/INSTALL.md (macOS 15+ arm64; Linux x86_64 com glibc 2.38+).

Ou construa do código-fonte com uma ferramentachain Swift 6.3 (Linux precisa de libsqlite3-dev):

git clone https://github.com/ivan-magda/swift-claw.git && cd swift-claw
swift build -c release
sudo install -m755 .build/release/clawd /usr/local/bin/clawd
  1. Obtenha um token de bot no @BotFather (envie /newbot).
  2. Editando ~/.swift-claw/clawd.env: defina o token e seu provedor de LLM (CLAW_LLM_BASE_URL, CLAW_LLM_MODEL, CLAW_LLM_API_KEY).
  3. Carga a configuração e criptografe seus segredos em repouso: set -a && . ~/.swift-claw/clawd.env && set +a && clawd secrets seal
  4. Diga olá uma vez no foreground: clawd run, então envie /start para seu bot. A recusa mostra o ID numérico do remetente; defina-o como CLAW_ALLOWLIST=<id> em clawd.env, depois aperte Ctrl-C.
  5. Cheque a saúde e inicie o serviço: set -a && . ~/.swift-claw/clawd.env && set +a && clawd doctor, então execute o comando de início que o doctor imprime.

A caminhada completa, incluindo a rota para assinatura do ChatGPT e solução de problemas, está em docs/GETTING_STARTED.md.

swift-claw assume que você é o único usuário a quem serve.

  • Default-deny. Apenas IDs de Telegram permitidos recebem uma conversa. O clawd rejeita todo mundo, e responde /start com o ID numérico do remetente para que você possa adicioná-lo à lista de permissões. O CLAW_ALLOWLIST apenas adiciona IDs; revogar um ID significa deletar a linha correspondente no banco de dados (detalhes).
  • Segredos criptografados em repouso. O clawd secrets seal envolve o token do bot e as chaves da API em um envelope AES-GCM. Segredos de ambiente em texto simples permanecem disponíveis como fallback para desenvolvimento que alerta a cada inicialização.
  • Aprovações são duráveis e não forjáveis. Escrita de arquivos, escrita na memória e execução de código suspendem até um estado máquina durável até você tocar Aprovar no Telegram. Uma chamada forjada ou terceira parte não pode aprovar, e aprovações pendentes expiram para negar.
  • Injeção de prompt contida. Mensagens, conteúdo da web, saída de ferramentas e memória armazenada entram no contexto como dados não confiáveis. Uma vez que uma sessão tenha consumido conteúdo não confiável e trazido seus arquivos privados para o contexto, buscar um URL arbitrário também precisa do seu consentimento. O clawd fixa seu LLM e provedores de pesquisa na configuração, e o modelo não pode redirecioná-los.

O modelo completo está em docs/ARCHITECTURE.md (§12). Para relatar uma vulnerabilidade, consulte SECURITY.md.

A personalidade e o comportamento vivem em arquivos Markdown sob ~/.swift-claw/workspace/:

Arquivo Categorias Confiança
SOUL.md Persönlichkeit und Ton Sytemanweisung
AGENTS.md Führungsgesetze Sytemanweisung
TOOLS.md Wann und wie Werkzeuge verwendet werden sollen Sytemanweisung
USER.md Wer Sie sind Nicht vertrauenswürdig, gekennzeichnet
HEARTBEAT.md Aktive Überprüfungsliste Läuft nur bei Herzschlag
skills/<name>/SKILL.md Eine Prozedur, die der Agent lädt, wenn eine Aufgabe es erfordert Nicht vertrauenswürdig, gekennzeichnet

MCP servers werden in ~/.swift-claw/mcp.yaml platziert, mit ihren Tokens durch clawd mcp set-token verschlüsselt gespeichert. Andere Laufzeitparameter sind Umgebungsvariablen: der Modellpfad (CLAW_LLM_MODEL), ein optionaler Fallback-Pfad (CLAW_LLM_FALLBACK_MODEL, deaktiviert, es sei denn, Sie setzen ihn), USD-Budgets, Zeitspläne und Ruhezeiten, Sprachlizenzen, Sandbox-Grenzwerte. .env.example dokumentiert jede Variable; docs/CUSTOMIZATION.md ist die Anleitung.

Beiträge sind willkommen. Öffnen Sie ein Issue, um vor dem Senden einer Pull-Request zu diskutieren, was Sie im Sinn haben; CONTRIBUTING.md enthält die Details und den Lint/Test-Gate.

MIT © Ivan Magda

Fonte original

Conteúdo traduzido e adaptado pela redação do Notícias Mobile. Confira também a matéria na fonte original.

Leia a matéria completa