Assistente pessoal de IA local-first, feito em Python legível, com loop de agente próprio, memória baseada em SQLite e evals integradas.
ChrisVip001/joyczl-agent
Assistente pessoal local-first com núcleo em Rust para o loop do agente, memória e ferramentas, além de gateways de chat e painel em TypeScript.
- Estrelas
- 112
- Forks
- 0
- Issues abertas
- 0
- Último commit
- há 3 dias
O que é?
Joy é um assistente pessoal que roda na máquina do próprio usuário. O armazenamento de estado, o loop do agente, a memória e as ferramentas são implementados em Rust, enquanto o TypeScript fornece o painel no navegador e gateways de chat para Telegram, Discord, WeChat e Lark. Um SDK Python enxuto encapsula a mesma interface JSON-RPC exposta pelo processo `joy app-server`, então todos os clientes se comunicam com um único processo, responsável pelo estado em SQLite.
A memória combina fatos semânticos pesquisáveis com FTS5, episódios com data e Skills procedurais, com um mecanismo de recuperação que consulta a memória apenas quando ela parece relevante. O assistente vem com cerca de onze ferramentas integradas para notas, eventos de calendário, pesquisa na web, leitura de arquivos, busca de URLs e comandos de shell, além de poder se conectar a servidores MCP. A execução de shell fica desativada por padrão e exige uma variável de ambiente explícita para ser habilitada. Cada turno registra uma linha de rastreamento e o uso de tokens.
O projeto inclui uma suíte de avaliação determinística e um juiz baseado em LLM para avaliar a qualidade das respostas. Também oferece suporte a vários provedores de LLM, incluindo modelos locais do Ollama que não precisam de chave de API.
Recursos principais
- 01Converse por um REPL de terminal, um painel no navegador ou pelos gateways do Telegram, Discord, WeChat e Lark.
- 02Três tipos de memória: fatos pesquisáveis, episódios com data e Skills reutilizáveis.
- 03Ferramentas integradas para notas, calendário, pesquisa na web, leitura de arquivos e busca de URLs, além de suporte a servidores MCP.
- 04Os comandos de shell são isolados em sandbox, limitados a uma lista de permissões e desativados por padrão.
- 05Os clientes se comunicam com o núcleo por JSON-RPC, e um único processo é responsável pelo estado em SQLite.
Casos de uso
- Executar um assistente privado que mantém notas, memória e dados de calendário na sua própria máquina.
- Conversar com um agente pelo Telegram ou Discord enquanto o estado permanece local.
- Experimentar um núcleo de agente em Rust que expõe uma API JSON-RPC para outros clientes.
- Usar um modelo local do Ollama como LLM do assistente sem enviar dados a um provedor de nuvem.
Início rápido
- 1
Compile o projeto Rust a partir do diretório joy-rs
cd joy-rs && cargo build - 2
Inicie o REPL no terminal com um provedor e uma chave de API
JOY_PROVIDER=deepseek DEEPSEEK_API_KEY=… ./target/debug/joy - 3
Ou inicie o painel em http://localhost:7777
JOY_PROVIDER=deepseek DEEPSEEK_API_KEY=… ./target/debug/joy dashboard
Antes de usar
- É necessário compilar a partir do código-fonte com Cargo, pois ainda não há nenhum pacote publicado no PyPI nem no npm.
- É necessária uma chave de API de um provedor de LLM ou uma instalação local do Ollama para que ele possa responder.
- Os gateways do Discord, WeChat e Lark nunca foram conectados às plataformas reais.
Em coleções
Tópicos
Perguntas frequentes
- O que é joyczl-agent?
- Assistente pessoal local-first com núcleo em Rust para o loop do agente, memória e ferramentas, além de gateways de chat e painel em TypeScript. Joy é um assistente pessoal que roda na máquina do próprio usuário. O armazenamento de estado, o loop do agente, a memória e as ferramentas são implementados em Rust, enquanto o TypeScript fornece o painel no navegador e gateways de chat para Telegram, Discord, WeChat e Lark. Um SDK Python enxuto encapsula a mesma interface JSON-RPC exposta pelo processo `joy app-server`, então todos os clientes se comunicam com um único processo, responsável pelo estado em SQLite.
- joyczl-agent é gratuito? Qual é a licença?
- joyczl-agent é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- joyczl-agent ainda é mantido?
- Manutenção ativa. O último commit de joyczl-agent foi em 4 de nov. de 2026.
- Para que posso usar joyczl-agent?
- Executar um assistente privado que mantém notas, memória e dados de calendário na sua própria máquina. Conversar com um agente pelo Telegram ou Discord enquanto o estado permanece local. Experimentar um núcleo de agente em Rust que expõe uma API JSON-RPC para outros clientes. Usar um modelo local do Ollama como LLM do assistente sem enviar dados a um provedor de nuvem.
- Como instalar joyczl-agent?
- Compile o projeto Rust a partir do diretório joy-rs: cd joy-rs && cargo build Inicie o REPL no terminal com um provedor e uma chave de API: JOY_PROVIDER=deepseek DEEPSEEK_API_KEY=… ./target/debug/joy Ou inicie o painel em http://localhost:7777: JOY_PROVIDER=deepseek DEEPSEEK_API_KEY=… ./target/debug/joy dashboard
- Onde consigo joyczl-agent?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/ChrisVip001/joyczl-agent
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Assistente pessoal de IA open source para planejamento, escrita e conhecimento pessoal, que roda no Mac ou pode ser hospedado por você com suas próprias chaves de modelo.
Um app leve e self-hosted de agente pessoal, com TUI e GUI, ferramentas para o workspace local, aprovação humana, sessões persistentes, memória e extensões de Skill/Plugin/MCP.
Agente pessoal de IA auto-hospedado, com WebUI integrada, memória, ferramentas, suporte a MCP, subagentes e automações agendadas, usando LLMs locais ou na nuvem.
Agente pessoal de IA local e auto-hospedado, com memória em camadas, permissões para ferramentas, workflows e integração com canais de mensagens instantâneas.
Framework em Rust para criar runtimes componíveis de agentes de IA que combinam modelos, ferramentas, memória e outros agentes.