The agent that remembers and learns.
# Add to your Claude Code skills
git clone https://github.com/Open-Curiosity/gini-agentLast scanned: 6/28/2026
{
"issues": [
{
"file": "README.md",
"line": 57,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://raw.githubusercontent.com/Lilac-Labs/gini-agent/main/scripts/\"",
"severity": "low"
},
{
"file": "skills/agents/claude-code/SKILL.md",
"line": 106,
"type": "dangerous-command",
"message": "Dangerous command (disables permission prompts): \"--dangerously-skip-permissions\"",
"severity": "medium"
}
],
"status": "PASSED",
"scannedAt": "2026-06-28T07:51:27.711Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}gini-agent is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Open-Curiosity. The agent that remembers and learns. It has 1,099 GitHub stars.
Yes. gini-agent passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/Open-Curiosity/gini-agent" and add it to your Claude Code skills directory (see the Installation section above).
gini-agent is primarily written in TypeScript. It is open-source under Open-Curiosity on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh gini-agent against similar tools.
No comments yet. Be the first to share your thoughts!
Gini Agent is a personal agent that remembers, improves, and runs without forcing you to read a log line.
Gini is not just a chat box, CLI, messaging bot, or pile of tools. Chat is an interaction surface. The runtime is the system of record for conversations, runs, tasks, approvals, memory, skills, jobs, tools, traces, audit events, and runtime health.
It's also built to be a product, not plumbing. When the agent needs you, it hands you a purpose-built control right where the work is — a secure field, a choice, a sign-in handoff, a confirm-before-send — instead of a prose instruction or a detour. And because every client speaks the same runtime, those controls reach you on your phone as readily as the desktop, so the machine the agent runs on is not where you have to be.
Gini's runtime is the gateway: a single Bun process per instance owns state and performs work. The Next.js web app, CLI, Expo mobile app, MCP surfaces, and messaging bridges are clients of the same authenticated /api/* contract. See Architecture Overview for the design.
GATEWAY (Bun runtime, one per instance)
state, agent loop, tools, memory, jobs
^
--------------------+--------------------
| | |
Next.js BFF CLI / scripts other clients
browser UI bearer token mobile, MCP, messaging
no browser token
See the Whitepaper and Architecture Overview for the design.
Gini treats the chat as a product surface, not a transcript. The agent takes initiative — it runs scheduled jobs, drives multi-step work, and reaches across your tools — and an agent that does that has to stay easy to steer. So whenever it needs you, it surfaces the exact interactive control inline and waits, instead of asking you to go do something elsewhere:
The same cards render on the web app and the iOS app off one wire protocol, and they reach your phone off-LAN through a runtime tunnel, so where you act is your choice, not the agent's constraint. The design intent behind each of these lives in the ADRs under docs/adr/ — user-choice-prompt.md, user-confirmation-primitive.md, browser-fill-secret.md, chat-credential-provisioning.md, and browser-connect-handoff.md.
curl -fsSL https://raw.githubusercontent.com/Open-Curiosity/gini-agent/main/scripts/install.sh | bash
On macOS the installer enables autostart (per-user LaunchAgents for the runtime and webapp), waits for the webapp to come up, and opens the /setup page in your browser. The form offers the full provider catalog — OpenAI, Codex, Anthropic, Amazon Bedrock, Azure OpenAI, OpenRouter, DeepSeek, and Local — and prompts for whatever the one you pick needs (an API key, the AWS access key pair for Bedrock, the resource endpoint for Azure, or your existing codex login auth). Save it and you land on the running app. The runtime stays alive across reboots and crashes until you explicitly run gini stop or gini autostart disable.
If the browser doesn't open automatically (or you want to navigate manually), run gini status to print the actual web URL. The installed default instance always lives at :7777; other instances get hash-derived ports, so check gini status rather than guessing. The installer also prints the URL right before opening the browser.
Caveat on macOS 26 (Tahoe): after a SIGKILL, launchd sometimes refuses to auto-respawn (pended nondemand spawn = inefficient). Run gini autostart kick to force a respawn when that happens; RunAtLoad still fires at login.
If you opted out of autostart (--no-autostart) or you're on Linux (autostart is currently macOS-only), run gini setup then gini start to launch the runtime by hand.
After install, the URLs are stable:
http://127.0.0.1:7777http://127.0.0.1:7778gini update
Updates the installer-managed runtime at ~/.gini/runtime and restarts it. Per-instance state under ~/.gini/instances/ and the model cache at ~/.gini/models/ are preserved.
bun install
bun run gini install
bun run gini start
From a repo clone, the instance is derived from the directory basename, so each worktree gets isolated state and ports automatically. See CONTRIBUTING.md for development setup including ./scripts/install.sh --local for testing the install flow against a local checkout.
The CLI covers chat, runs, tasks, approvals, memory, jobs, connectors, providers, snapshots, imports, and more. Discover commands with:
gini --help
Useful starting points:
gini status # runtime health and URLs
gini chat new # start a chat session
gini approvals # review pending tool approvals
(From a repo clone, prefix with bun run.)
Run gini setup for an interactive picker, or configure directly:
gini provider set codex gpt-5.5 # Codex OAuth (reads ~/.codex/auth.json)
gini provider set openai gpt-5.4-mini # uses $OPENAI_API_KEY
gini provider set openrouter <model> # uses $OPENROUTER_API_KEY
gini provider set local <model> --base-url http://127.0.0.1:8000/v1
gini provider set anthropic claude-opus-4-8 # first-party Claude API, uses $ANTHROPIC_API_KEY
# Amazon Bedrock: model-agnostic Converse, SigV4-signed with AWS keys you enter via the web form or `gini setup`
gini provider set bedrock us.amazon.nova-pro-v1:0 --aws-region us-east-1 # sets model + region; enter keys separately
# Azure OpenAI: a first-class provider targeting a deployment