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.
- Source repo
- Open-Curiosity/gini-agent
- Stars
- ★ 2k
- Last updated
- 3mo ago
- License
- MIT
- Primary language
- TypeScript
- FA score
- 62/100 · Some gaps
At a glance
- How it runs
- Works with
- Portable with changesCodex · OpenAI API · Claude API
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A privacy-conscious individual who wants a personal assistant that runs locally and keeps all data on their own machine.
- Not a fit if
- Users who want only a Telegram/Discord bot, not a local runtime
- Non-technical users: Bun install plus manual provider setup
- Source review
- 62/100 · Some gaps
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.
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.
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 does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Gini Agent: The Agent That Remembers and Learns This agent | 62 · Some gaps | CLIFree + model costs | ★ 2k | 3mo ago | TypeScript | Codex · OpenAI API · Claude API |
| somora | 69 · Some gaps | CLIFree | ★ 31 | 1d ago | TypeScript | ChatGPT · Codex · Claude Code |
| OpenHuman | 51 · Major gaps | Desktop appFreemium | ★ 42k | today | Rust | — |
| Memmy — Personal AI Agent & Local Memory Hub | 42 · Major gaps | Desktop appFreemium | ★ 2.1k | today | TypeScript | Codex · Claude Code · OpenAI API |
How does FollowAgents rate this agent?
Why each dimension lost points
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.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
Added - Add relay device pairing: front the gateway over a tunnel and bring new web and mobile devices online through a QR-code and universal-link flow, with an operator approval dialog and a live active-sessions panel. (see ADR [device-pairing-auth.md](docs/adr/device-pairing-auth.md)) - Rebuild chat around one chat per agent with threads and channels — a thread view with a pinned parent and an also-to-main composer, a cross-agent Threads Inbox with All/Unread filters, a Channels screen, and agent-decided threading via a start_thread tool. (web, mobile) (see ADR [agent-chat-threads-and …View on GitHub ↗ -
Release notes excerpt
Added - Add voice messages with on-device speech-to-text: press-and-hold recording, a playable voice bubble, a first-run model setup notice, and GET /api/stt/status. (iOS) - Add Brave and Exa web search as connector-backed providers, with an in-chat connect card and "Learn more" docs links. - Add agent self-configuration tools so the agent can manage its own setup in chat: set approval mode, edit its toolset, add or remove providers and connectors, install and rotate connectors, run runtime updates, roll back skills, rename or delete agents, and manage the approval allowlist. …View on GitHub ↗ -
Release notes excerpt
Added - Initial public open-source release. See [README.md](https://github.com/Lilac-Labs/gini-agent/blob/main/README.md) for what's included and the [Roadmap](https://github.com/Lilac-Labs/gini-agent/blob/main/ROADMAP.md) for what's planned.View on GitHub ↗
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.