Gini Agent: The Agent That Remembers and Learns
A local-first personal agent with memory and skill learning, approval-gated tools, and in-chat controls so you stay in charge wherever you are.
Evidence shows approval gating, user confirmation, sensitive data protection (e.g., secrets not in conversation), data flow transparency (documented), rollback (archive before import). Dependency security only partial (patches and trusted list, but no vulnerability scan evidence), source attribution partial (security contact email, but publisher unverified).
Self-consistency good (docs align with code structure), dependency availability has lockfile and CI, failure messages documented (e.g., macOS Tahoe caveat).
Audience and scenarios clear (personal agent), capability boundaries documented (e.g., messaging bridges inactive), trigger precision via CLI commands, environment fit with macOS/Linux/Docker instructions.
Information architecture clear (docs index), install notes detailed, naming stable (version 0.3.0), examples and FAQ present, known limitations present (e.g., macOS Tahoe), license MIT, versioning changelog present, maintenance responsibility partial (security contact but publisher unverified).
Output usability high (interactive controls), marginal value high (memory and learning), cost-benefit reasonable (local models).
Claims traceable (docs and ADRs), cross-source partial (CI and tests), fact-inference separation (docs distinguish design intent and current state).
- Publisher identity unverified; exercise caution regarding supply chain risks.
- Dependency security only partially evidenced; consider checking vulnerability scanning and update policies.
- Static review did not execute runtime tests; actual behavior needs verification.
What does this agent do, and when should you use it?
Gini Agent is a local-first agent runtime and personal agent. Its core is a single Bun process per instance, acting as a gateway that owns all state: conversations, runs, tasks, approvals, memory, skills, jobs, tools, traces, audit events, and runtime health. It offers multiple client surfaces: a Next.js web app, CLI, Expo mobile app, MCP surfaces, and messaging bridges. Gini supports a wide range of model providers including OpenAI, Anthropic, Bedrock, Azure, OpenRouter, DeepSeek, Codex, and local servers, with local embeddings, reranking, and speech-to-text by default. It provides approval-gated file, terminal, and code tools, plus in-chat actionable controls like secure credential fields, sign-in handoffs, choice prompts, and confirm-before-send. The project is built as a product, not just plumbing, with the runtime as the system of record.
The Gini runtime is the gateway, a single Bun process per instance owning state and performing work. It supports persistent chat, runs, tasks, approvals, traces, audit events, jobs, memories, and skills. You can start a chat with gini chat new, review approvals with gini approvals, and configure providers via gini provider set or the interactive gini setup. Gini enables parallel instances (gini --instance sandbox run) and ephemeral smoke tests (gini smoke). The CLI covers chat, runs, tasks, approvals, memory, jobs, connectors, providers, snapshots, and imports. It can migrate from openclaw using gini import apply openclaw. Remote access via tunnels and Docker deployment are documented.
- A privacy-conscious individual who wants a personal assistant that runs locally and keeps all data on their own machine.
- A user who needs to perform sensitive actions (e.g., sending emails, making purchases) with explicit human approval before execution.
- A multi-device user who wants to control the agent from desktop and mobile, including off-LAN remote access via tunnels.
- A developer who wants to run multiple isolated instances for different projects, each with its own state and ports.
- A current openclaw user looking to migrate to a more actively developed agent with import of existing agents, chat history, memory, and skills.
What are this agent's strengths and limitations?
- Local-first architecture ensures data privacy and control.
- Multi-provider support (OpenAI, Anthropic, Bedrock, Azure, local) avoids vendor lock-in.
- Memory and skill learning improve the agent's performance over time.
- Secure in-chat controls (e.g., secret fields) keep sensitive information out of the model and logs.
- Installation requires Bun and may be complex for non-technical users.
- Initial setup requires manual configuration of model providers, which can be involved.
- Messaging bridges (Telegram/Discord) are marked as not actively maintained; relying on them is risky.
- On macOS 26 (Tahoe), there is a potential autostart issue that may require manual intervention (
gini autostart kick).
How do you install or deploy this agent?
Install with: curl -fsSL https://raw.githubusercontent.com/Open-Curiosity/gini-agent/main/scripts/install.sh | bash. The macOS installer enables autostart and opens the /setup page. Linux (or if you opted out of autostart) requires running gini setup then gini start. Provide credentials for at least one model provider via the setup wizard or gini provider set (e.g., gini provider set openai gpt-5.4-mini).
How do you use this agent?
After installation, the web UI is at http://127.0.0.1:7777 and the runtime at http://127.0.0.1:7778. Use gini chat new to start a chat, gini approvals to review pending approvals, and gini status for health and URLs. Update with gini update. From source: bun install, bun run gini install, bun run gini start.
FAQ
Does Gini support cloud deployment?
docs/deployment-docker.md) for running headless in a container with a real browser under Xvfb.How are API keys handled securely?
~/.codex/auth.json. In-chat secure fields flow directly to the gateway, never reaching the model, transcript, or audit trail.Can Gini run multiple isolated environments?
gini --instance sandbox run).Can I migrate from another agent platform?
gini import plan openclaw and gini import apply openclaw.