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.

Stars
★ 2k
Last updated
3mo ago
License
MIT
Primary language
TypeScript

At a glance

How it runs
CLIWeb appSelf-hosted service
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
BunNode.js (via Bun runtime)Shell / CLINetwork accessLocal filesystem
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.

  1. A privacy-conscious individual who wants a personal assistant that runs locally and keeps all data on their own machine.
  2. A user who needs to perform sensitive actions (e.g., sending emails, making purchases) with explicit human approval before execution.
  3. A multi-device user who wants to control the agent from desktop and mobile, including off-LAN remote access via tunnels.
  4. A developer who wants to run multiple isolated instances for different projects, each with its own state and ports.
  5. 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?

Pros
  • 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.
Limitations
  • 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?

FollowAgents source review · FARS-2.1
Some gaps
62/ 100 5-point scale 3.1 / 5
Trust 17/29
Reliability 9/14
Adaptability 12/18
Convention 11/18
Effectiveness 9/13
Verifiability 4/8
Why each dimension lost points
Trust17 / 29 · 2.9/5

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).

Reliability9 / 14 · 3.2/5

Self-consistency good (docs align with code structure), dependency availability has lockfile and CI, failure messages documented (e.g., macOS Tahoe caveat).

Adaptability12 / 18 · 3.3/5

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.

Convention11 / 18 · 3.1/5

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).

Effectiveness9 / 13 · 3.5/5

Output usability high (interactive controls), marginal value high (memory and learning), cost-benefit reasonable (local models).

Verifiability4 / 8 · 2.5/5

Claims traceable (docs and ADRs), cross-source partial (CI and tests), fact-inference separation (docs distinguish design intent and current state).

Risks and how to mitigate them
  • 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.
Evidence confidence: Low Reviewed Aug 12, 2026 Reviewed revision 6c5d85ed0ecd
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v0.3.0
    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 ↗
  2. v0.2.0
    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 ↗
  3. v0.1.0
    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?
Yes, it provides Docker deployment documentation (docs/deployment-docker.md) for running headless in a container with a real browser under Xvfb.
How are API keys handled securely?
Keys are never written to Gini config; they are read from environment variables or ~/.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?
Yes, it supports parallel instances with isolated state, ports, and logs (e.g., gini --instance sandbox run).
Can I migrate from another agent platform?
Currently, Gini explicitly supports importing from openclaw using gini import plan openclaw and gini import apply openclaw.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents