Kael e um super agente local para video, automacao e execucao confiavel de pipelines.
Projeto focado em runtime real: jobs assincronos, ferramentas operacionais, memoria persistente, pesquisa web com evidencias e integracao de canais como Discord e Email.
- Runtime local de verdade: nao e apenas chat; executa comandos, processos e jobs.
- Pipeline de video operacional: transcode, HLS, capture e probe com controle de seguranca.
- Memoria util no dia a dia:
memory_search,memory_get,memory_writecom persistencia local. - Pesquisa web orientada a evidencia:
web_search,web_fetch,web_research. - Arquitetura evolutiva por fases: documentacao e status de projeto atualizados continuamente.
- Node.js + TypeScript strict
- Fastify (API)
- PI runtime (SDK) para modo agentico
- Persistencia local em JSON/JSONL/Markdown
- Node.js 22+
ffmpegeffprobenoPATH
npm install
npm run check./bin/kael initnpm run devAPI padrao: http://127.0.0.1:3210
npm --prefix ui install
npm --prefix ui run devUI padrao: http://127.0.0.1:5173 (proxy /api -> backend local)
npx tsx src/cli/index.ts discord-botVariaveis principais:
DISCORD_BOT_TOKENDISCORD_MENTION_ONLY_IN_GUILDSDISCORD_ALLOWED_GUILD_IDSDISCORD_ALLOWED_CHANNEL_IDSDISCORD_SESSION_SCOPE
Nota: o comando discord-bot roda em modo chat-only, sem scheduler/email polling, para evitar duplicacao quando a API ja estiver rodando.
transcodeconvert_hlscapture_streamprobe_media
exec(timeout, background, approvals)process(list/poll/kill/remove)
memory_searchmemory_getmemory_write
Persistencia:
MEMORY.md(longo prazo)memory/YYYY-MM-DD.md(diaria)
web_searchweb_fetchweb_research
browsertool no runtime PI- acoes:
start/open/navigate/snapshot_text/screenshot/click/type/press/wait_for/close - telemetria no
/healthemmetrics.browserRuntime - atalhos slash no chat:
/browser-*(fast-path deterministico)
plan_createplan_generateplan_listplan_update_stepplan_nextplan_execute_nextplan_reconcile
- suporte a skills locais por arquivo
SKILL.md - invocacao manual por slash:
/<skill-name> [args] - auto-invocacao conservadora (ate 1 skill por turno)
- telemetria em
/health->metrics.skillsRuntime
Use ./bin/kael durante desenvolvimento. Se quiser o comando global kael,
rode npm link uma vez na raiz do repo.
# iniciar API
./bin/kael server
# chat
./bin/kael chat --message "/help"
# jobs
./bin/kael jobs
./bin/kael job-cancel --id <jobId>
# schedules
./bin/kael schedules
./bin/kael schedule-upsert --id heartbeat.main --type heartbeat --interval-ms 30000
./bin/kael schedule-pause --id heartbeat.main
./bin/kael schedule-resume --id heartbeat.main
# approvals de exec
./bin/kael approvals --status open
./bin/kael approval-approve --id <approvalId>
./bin/kael approval-deny --id <approvalId>
# smoke browser runtime (playwright real)
npm run test:smoke:browserGET /healthPOST /chatGET /sessions/:sessionKey/messagesGET /jobsGET /jobs/:jobIdGET /jobs/:jobId/logPOST /jobs/:jobId/cancelGET /plansGET /plans/:planIdPOST /plansPOST /plans/generatePOST /plans/:planId/execute-nextPOST /plans/:planId/cancelPOST /plans/reconcileGET /schedulesPOST /schedulesPOST /schedules/:scheduleId/pausePOST /schedules/:scheduleId/resume
Referencia completa: docs/api.md
KAEL_PORT(default3210)KAEL_HOST(default127.0.0.1)KAEL_DATA_DIR(default./.kael-data)KAEL_ENGINE_MODE(simple,pi,hybrid)KAEL_PI_API_KEY(obrigatoria empi|hybrid)KAEL_PI_MODEL(defaultgpt-4o-mini)KAEL_RESEARCH_ENABLED(true|false)KAEL_RESEARCH_API_KEY(obrigatoria quando research habilitado)KAEL_EMAIL_ENABLED(true|false)KAEL_EMAIL_AUTO_REPLY_ENABLED(true|false)KAEL_BROWSER_ENABLED(true|false)KAEL_BROWSER_HEADLESS(true|false)KAEL_BROWSER_SESSION_TTL_MSKAEL_BROWSER_MAX_SESSIONSKAEL_SKILLS_CATALOG_MAX_CHARSKAEL_SKILLS_AUTO_MIN_SCOREKAEL_SKILLS_AUTO_MAX_PER_TURNKAEL_SKILLS_SESSION_STATS_LIMIT
- TypeScript strict
- Guardrails de loop de tool calling
- Idempotency para endpoints criticos
- Logs estruturados JSON
- Politica de execucao shell com allowlist + approvals
AGENTS.md(instrucao principal para agentes)docs/core/START-HERE.md(onboarding rapido)docs/core/SOUL.md(identidade/comportamento)docs/planning/PROJECT-STATUS.md(status por fase + historico)docs/architecture/README.md(arquitetura por fases)docs/how-jobs-and-heartbeat-work.mddocs/skills.md(guia de criacao e operacao de skills em.kael/skills)docs/browser-control.md(guia de browser control via CLI/chat)docs/ui/UI-GUIDE.md
Fase ativa: Fase 16 (Browser Control para teste de sites).
Para detalhes de progresso e proximos passos:
docs/planning/PROJECT-STATUS.md
Se quiser contribuir, abra issue/PR com foco em mudancas pequenas, verificaveis e alinhadas com a arquitetura por fases.