Iara — chat PWA local-first para falar com o seu assistente de IA (ZeroClaw e compativeis). Configure URL + key e converse.
|
All checks were successful
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI / checks (pull_request) Successful in 46s
CI / deploy (pull_request) Has been skipped
Promote plan-issue Related on main merge / plan-issue-ready (pull_request) Has been skipped
Main merge flips claimed issues to done + in-prod / issue-done (pull_request) Successful in 4s
CI / checks (push) Successful in 27s
CI / deploy (push) Successful in 19s
|
||
|---|---|---|
| .agents/skills | ||
| .forgejo | ||
| .opencode/commands | ||
| docs/plans | ||
| public | ||
| scripts | ||
| src | ||
| tests | ||
| .gitignore | ||
| .oxlintrc.json | ||
| AGENTS.md | ||
| bun.lock | ||
| index.html | ||
| LICENSE | ||
| opencode.jsonc | ||
| package.json | ||
| playwright.config.ts | ||
| README.md | ||
| skills-lock.json | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| tsconfig.test.json | ||
| vite.config.ts | ||
Iara
Chat PWA local-first para falar com o seu assistente de IA.
A Iara é um cliente de chat web progressivo (PWA) que conecta qualquer pessoa ao seu assistente de IA (gateways compatíveis com o protocolo ZeroClaw) — basta configurar a URL do gateway e a chave de acesso. Seus dados ficam no seu dispositivo e na sua infraestrutura; nada passa por servidores de terceiros.
Recursos
- Local-first: configuração, sessões e histórico guardados apenas no dispositivo (localStorage).
- Chat em tempo real: streaming de respostas via WebSocket (protocolo
zeroclaw.v1). - Aprovações embutidas: quando o assistente pede confirmação para uma ação (enviar e-mail, apagar, etc.), o card de aprovação aparece direto na conversa.
- Voz (opcional): botão de microfone (STT) e leitura de respostas em voz alta (TTS), com endpoints configuráveis.
- PWA instalável: adicione à tela inicial no celular/desktop (manifest + service worker).
- Privado por padrão: o token fica no seu dispositivo e é enviado apenas ao gateway configurado.
Como usar
- Acesse a instância hospedada (ou rode localmente — veja abaixo).
- Na tela inicial, preencha:
- URL do gateway (WebSocket) — ex.:
wss://app.seu-dominio.dev/ws/chat - Token / chave — o token de acesso fornecido pelo seu gateway
- Agente — alias do agente (ex.:
main) - STT / TTS (opcional) — URLs de transcrição e síntese de voz
- URL do gateway (WebSocket) — ex.:
- Converse! 🎙
Desenvolvimento
bun install
bun run dev # dev server
bun run build # build de produção em dist/
bun run preview # servir o build localmente
Protocolo
O cliente fala o protocolo de chat WebSocket do gateway:
- Conecta em
<gateway>/ws/chat?token=<token>&agent=<agent>&name=<nome>(subprotocolozeroclaw.v1). - Cliente → servidor:
{"type":"message","content":"..."},{"type":"approval_response","request_id":"...","decision":"approve|deny|always"}. - Servidor → cliente:
session_start,chunk,chunk_reset,thinking,tool_call,tool_result,done,approval_request,error,aborted.
Referência completa dos tipos em src/lib/ws.ts.
Stack
Vite · React · TypeScript · assistant-ui (runtime + primitives) · Tailwind CSS v4 · vite-plugin-pwa
Licença
AGPL-3.0 — código aberto, copyleft. Veja LICENSE.
Histórico
- v0.1.1 — deploy automático via Forgejo Actions (runner workstation).