[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-10676":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":24,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":42,"readmeContent":43,"aiSummary":44,"trendingCount":15,"starSnapshotCount":15,"syncStatus":45,"lastSyncTime":46,"discoverSource":47},10676,"gptme","gptme\u002Fgptme","Your agent in your terminal, equipped with local tools: writes code, uses the terminal, browses the web. Make your own persistent autonomous agent on top!","https:\u002F\u002Fgptme.org\u002Fdocs\u002F",null,"Python",4325,390,39,10,0,4,11,35,13,76.78,"MIT License",false,"master",true,[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"agent","agents","ai-agents","ai-assistant","anthropic","chatbot","chatgpt","cli","code-generation","llamacpp","llm","llm-agent","llm-apps","openai","openrouter","rag","2026-06-12 04:00:51","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fgptme.org\u002Fmedia\u002Flogo.png\" width=150 \u002F>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">gptme\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n\u003Ci>\u002Fʤiː piː tiː miː\u002F\u003C\u002Fi>\n\u003Cbr>\n\u003Csub>\u003Ca href=\"https:\u002F\u002Fgptme.org\u002Fdocs\u002Fmisc\u002Facronyms.html\">what does it stand for?\u003C\u002Fa>\u003C\u002Fsub>\n\u003C\u002Fp>\n\n\u003C!-- Links -->\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgptme.org\u002Fdocs\u002Fgetting-started.html\">Getting Started\u003C\u002Fa>\n  •\n  \u003Ca href=\"https:\u002F\u002Fgptme.org\u002Fdownloads\u002F\">Downloads\u003C\u002Fa>\n  •\n  \u003Ca href=\"https:\u002F\u002Fgptme.org\u002F\">Website\u003C\u002Fa>\n  •\n  \u003Ca href=\"https:\u002F\u002Fgptme.org\u002Fdocs\u002F\">Documentation\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003C!-- Badges -->\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Factions\u002Fworkflows\u002Fbuild.yml\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Factions\u002Fworkflows\u002Fbuild.yml\u002Fbadge.svg\" alt=\"Build Status\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Factions\u002Fworkflows\u002Fdocs.yml\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Factions\u002Fworkflows\u002Fdocs.yml\u002Fbadge.svg\" alt=\"Docs Build Status\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Fgptme\u002Fgptme\">\n    \u003Cimg src=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Fgptme\u002Fgptme\u002Fgraph\u002Fbadge.svg?token=DYAYJ8EF41\" alt=\"Codecov\" \u002F>\n  \u003C\u002Fa>\n  \u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fgptme\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fgptme\" alt=\"PyPI version\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fpepy.tech\u002Fproject\u002Fgptme\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpepy\u002Fdt\u002Fgptme\" alt=\"PyPI - Downloads all-time\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fpypistats.org\u002Fpackages\u002Fgptme\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdd\u002Fgptme?color=success\" alt=\"PyPI - Downloads per day\" \u002F>\n  \u003C\u002Fa>\n  \u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FNMaCmmkxWv\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1271539422017618012?logo=discord&style=social\" alt=\"Discord\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002Fgptmeorg\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Fgptmeorg?style=social\" alt=\"X.com\" \u002F>\n  \u003C\u002Fa>\n  \u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fgptme.org\u002Fdocs\u002Fprojects.html\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpowered%20by-gptme%20%F0%9F%A4%96-5151f5?style=flat\" alt=\"Powered by gptme\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n📜 A personal AI agent that runs \u003Ci>anywhere a terminal runs\u003C\u002Fi> — your laptop,\nssh sessions, tmux, headless servers, CI pipelines.\u003Cbr\u002F>\nProvider-agnostic, local-first, and unconstrained: ships with shell, Python, web,\nvision, and everything else an agent needs.\u003Cbr\u002F>\nA great coding agent, but general-purpose enough to assist in all kinds of knowledge-work.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\nFree and open-source. Works with Anthropic, OpenAI, Google, xAI, DeepSeek, OpenRouter,\nor fully local via \u003Ccode>llama.cpp\u003C\u002Fcode> — your data, your models, your terminal.\u003Cbr\u002F>\nA capable \u003Ca href=\"https:\u002F\u002Fgptme.org\u002Fdocs\u002Falternatives.html\">alternative\u003C\u002Fa> to Claude Code,\nCodex, Cursor, and Warp — one of the first agent CLIs (Spring 2023), still in very\nactive development.\n\u003C\u002Fp>\n\n## 📚 Table of Contents\n\n- 📢 [News](#news)\n- 🎥 [Demos](#-demos)\n- 🌟 [Features](#-features)\n  - [🛠 Tools](#-tools)\n  - [🔌 Extensibility: Plugins, Skills & Lessons](#-extensibility-plugins-skills--lessons)\n  - [🔗 Integrations: MCP & ACP](#-integrations-mcp--acp)\n  - [🤖 Autonomous Agents](#-autonomous-agents)\n  - [🛡 Guardrails](#-guardrails)\n  - [🛠 Use Cases](#-use-cases)\n  - [🛠 Developer Perks](#-developer-perks)\n  - [🚧 In Progress](#-in-progress)\n- 🚀 [Getting Started](#-getting-started)\n- 🛠 [Usage](#-usage)\n- 🌍 [Ecosystem](#-ecosystem)\n- 💬 [Community](#-community)\n- 📊 [Stats](#-stats)\n- 🔗 [Links](#-links)\n\n## 📢 News\n\n- **Coming soon** - [gptme.ai](https:\u002F\u002Fgptme.ai) service for running agents in the cloud; [gptme desktop](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-tauri) app for easy local use.\n- **2026-01** - [gptme-agent-template](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-agent-template) v0.4: [Bob](https:\u002F\u002Fgithub.com\u002FTimeToBuildBob) reaches 1700+ autonomous sessions, autonomous run loops, enhanced context generation\n- **2025-12** - [v0.31.0](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Freleases\u002Ftag\u002Fv0.31.0): Background jobs, form tool, cost tracking, content-addressable storage\n- **2025-11** - [v0.30.0](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Freleases\u002Ftag\u002Fv0.30.0): Plugin system, context compression, subagent planner mode\n- **2025-10** - [v0.29.0](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Freleases\u002Ftag\u002Fv0.29.0): Lessons system for contextual guidance, MCP discovery & dynamic loading, token awareness; [Bob](https:\u002F\u002Fgithub.com\u002FTimeToBuildBob) begins autonomous runs with GitHub monitoring\n- **2025-08** - [v0.28.0](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Freleases\u002Ftag\u002Fv0.28.0): MCP support, morph tool for fast edits, auto-commit, redesigned server API\n- **2025-03** - [v0.27.0](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Freleases\u002Ftag\u002Fv0.27.0): Pre-commit integration, macOS computer use, Claude 3.7 Sonnet, DeepSeek R1, local TTS with Kokoro\n- **2025-01** - [gptme-contrib](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-contrib) created: community plugins including Twitter\u002FX, Discord bot, email tools, consortium (multi-agent)\n- **2024-12** - [gptme-agent-template](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-agent-template) v0.3: Template for persistent agents\n- **2024-11** - Ecosystem expansion: [gptme-webui](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-webui), [gptme-rag](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-rag), [gptme.vim](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme.vim), [Bob](https:\u002F\u002Fgithub.com\u002FTimeToBuildBob) created (first autonomous agent)\n- **2024-10** - [First viral tweet](https:\u002F\u002Fx.com\u002Frohanpaul_ai\u002Fstatus\u002F1841999030999470326) bringing widespread attention\n- **2024-08** - [Show HN](https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=41204256), Anthropic Claude support, tmux tool\n- **2023-09** - [Initial public release](https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=37394845) on HN, [Reddit](https:\u002F\u002Fwww.reddit.com\u002Fr\u002FLocalLLaMA\u002Fcomments\u002F16atlia\u002F), [Twitter](https:\u002F\u002Fx.com\u002FErikBjare\u002Fstatus\u002F1699097896451289115)\n- **2023-03** - [Initial commit](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Fcommit\u002Fd00e9aae68cbd6b89bbc474ed7721d08796dc) - one of the first agent CLIs\n\n\n\u003C!-- source of truth: docs\u002Ftimeline.rst and docs\u002Fchangelog.rst -->\nFor more history, see the [Timeline](https:\u002F\u002Fgptme.org\u002Fdocs\u002Ftimeline.html) and [Changelog](https:\u002F\u002Fgptme.org\u002Fdocs\u002Fchangelog.html).\n\n## 🎥 Demos\n\n> [!NOTE]\n> The screencasts below are from 2023. gptme has evolved a lot since then!\n> For up-to-date examples and screenshots, see the [Documentation][docs-examples].\n> We're working on automated demo generation: [#1554](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Fissues\u002F1554).\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Cth>Fibonacci\u003C\u002Fth>\n    \u003Cth>Snake with curses\u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd width=\"50%\">\n\n[![demo screencast with asciinema](https:\u002F\u002Fgithub.com\u002FErikBjare\u002Fgptme\u002Fassets\u002F1405370\u002F5dda4240-bb7d-4cfa-8dd1-cd1218ccf571)](https:\u002F\u002Fasciinema.org\u002Fa\u002F606375)\n\n  \u003Cdetails>\n  \u003Csummary>Steps\u003C\u002Fsummary>\n  \u003Col>\n    \u003Cli> Create a new dir 'gptme-test-fib' and git init\n    \u003Cli> Write a fib function to fib.py, commit\n    \u003Cli> Create a public repo and push to GitHub\n  \u003C\u002Fol>\n  \u003C\u002Fdetails>\n\n  \u003C\u002Ftd>\n\n  \u003Ctd width=\"50%\">\n\n[![621992-resvg](https:\u002F\u002Fgithub.com\u002FErikBjare\u002Fgptme\u002Fassets\u002F1405370\u002F72ac819c-b633-495e-b20e-2e40753ec376)](https:\u002F\u002Fasciinema.org\u002Fa\u002F621992)\n\n  \u003Cdetails>\n  \u003Csummary>Steps\u003C\u002Fsummary>\n  \u003Col>\n    \u003Cli> Create a snake game with curses to snake.py\n    \u003Cli> Running fails, ask gptme to fix a bug\n    \u003Cli> Game runs\n    \u003Cli> Ask gptme to add color\n    \u003Cli> Minor struggles\n    \u003Cli> Finished game with green snake and red apple pie!\n  \u003C\u002Fol>\n  \u003C\u002Fdetails>\n  \u003C\u002Ftd>\n\u003C\u002Ftr>\n\n\u003Ctr>\n  \u003Cth>Mandelbrot with curses\u003C\u002Fth>\n  \u003Cth>Answer question from URL\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003Ctr>\n  \u003Ctd width=\"50%\">\n\n[![mandelbrot-curses](https:\u002F\u002Fgithub.com\u002FErikBjare\u002Fgptme\u002Fassets\u002F1405370\u002F570860ac-80bd-4b21-b8d1-da187d7c1a95)](https:\u002F\u002Fasciinema.org\u002Fa\u002F621991)\n\n  \u003Cdetails>\n  \u003Csummary>Steps\u003C\u002Fsummary>\n  \u003Col>\n    \u003Cli> Render mandelbrot with curses to mandelbrot_curses.py\n    \u003Cli> Program runs\n    \u003Cli> Add color\n  \u003C\u002Fol>\n  \u003C\u002Fdetails>\n\n  \u003C\u002Ftd>\n\n  \u003Ctd width=\"25%\">\n\n[![superuserlabs-ceo](https:\u002F\u002Fgithub.com\u002FErikBjare\u002Fgptme\u002Fassets\u002F1405370\u002Fbae45488-f4ed-409c-a656-0c5218877de2)](https:\u002F\u002Fasciinema.org\u002Fa\u002F621997)\n\n  \u003Cdetails>\n  \u003Csummary>Steps\u003C\u002Fsummary>\n  \u003Col>\n    \u003Cli> Ask who the CEO of Superuser Labs is, passing website URL\n    \u003Cli> gptme browses the website, and answers correctly\n  \u003C\u002Fol>\n  \u003C\u002Fdetails>\n  \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\n  \u003Ctr>\n    \u003Cth>Terminal UI\u003C\u002Fth>\n    \u003Cth>Web UI\u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n  \u003Ctd width=\"50%\">\n\n\u003C!--[![terminal-ui](https:\u002F\u002Fgithub.com\u002FErikBjare\u002Fgptme\u002Fassets\u002F1405370\u002Fterminal-ui-demo)](https:\u002F\u002Fasciinema.org\u002Fa\u002Fterminal-demo)-->\n\n  \u003Cdetails>\n  \u003Csummary>Features\u003C\u002Fsummary>\n  \u003Cul>\n    \u003Cli> Powerful terminal interface\n    \u003Cli> Convenient CLI commands\n    \u003Cli> Diff & Syntax highlighting\n    \u003Cli> Tab completion\n    \u003Cli> Command history\n  \u003C\u002Ful>\n  \u003C\u002Fdetails>\n\n  \u003C\u002Ftd>\n  \u003Ctd width=\"50%\">\n\n\u003C!--[![web-ui](https:\u002F\u002Fgithub.com\u002FErikBjare\u002Fgptme\u002Fassets\u002F1405370\u002Fweb-ui-demo)](https:\u002F\u002Fchat.gptme.org)-->\n\n  \u003Cdetails>\n  \u003Csummary>Features\u003C\u002Fsummary>\n  \u003Cul>\n    \u003Cli> Chat with gptme from your browser\n    \u003Cli> Access to all tools and features\n    \u003Cli> Modern, responsive interface\n    \u003Cli> Self-hostable\n    \u003Cli> Available at \u003Ca href=\"https:\u002F\u002Fchat.gptme.org\">chat.gptme.org\u003C\u002Fa>\n  \u003C\u002Ful>\n  \u003C\u002Fdetails>\n\n  \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\nYou can find more [Demos][docs-demos] and [Examples][docs-examples] in the [documentation][docs].\n\n## 🌟 Features\n\n- 💻 **Code execution**\n  - Executes code in your local environment with the [shell][docs-tools-shell] and [python][docs-tools-python] tools.\n- 🧩 **Read, write, and change files**\n  - Makes incremental changes with the [patch][docs-tools-patch] tool.\n- 🌐 **Search and browse the web**\n  - Can use a browser via Playwright with the [browser][docs-tools-browser] tool.\n- 👀 **Vision**\n  - Can see images referenced in prompts, screenshots of your desktop, and web pages.\n- 🔄 **Self-correcting**\n  - Output is fed back to the assistant, allowing it to respond and self-correct.\n- 📚 **[Lessons system][docs-lessons]**\n  - Contextual guidance and best practices automatically included when relevant.\n  - Keyword, tool, and pattern-based matching.\n  - Adapts to interactive vs autonomous modes.\n  - Extend with your own lessons and [skills][docs-skills].\n- 🤖 **Support for many LLM [providers][docs-providers]**\n  - Anthropic (Claude), OpenAI (GPT), Google (Gemini), xAI (Grok), DeepSeek, and more.\n  - Use OpenRouter for access to 100+ models, or serve locally with `llama.cpp`.\n- 🌐 **Web UI and REST API**\n  - Modern web interface at [chat.gptme.org](https:\u002F\u002Fchat.gptme.org) ([gptme-webui])\n  - Simple built-in web UI included in the Python package.\n  - [Server][docs-server] with REST API.\n  - Standalone executable builds available with PyInstaller.\n- 💻 **[Computer use][docs-tools-computer]** (see [#216](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Fissues\u002F216))\n  - Give the assistant access to a full desktop, allowing it to interact with GUI applications.\n- 🔊 **Tool sounds** — pleasant notification sounds for different tool operations.\n  - Enable with `GPTME_TOOL_SOUNDS=true`.\n\n### 🛠 Tools\n\ngptme equips the AI with a rich set of built-in tools:\n\n| Tool | Description |\n|------|-------------|\n| `shell` | Execute shell commands directly in your terminal |\n| `ipython` | Run Python code with access to your installed libraries |\n| `read` | Read files and directories |\n| `save` \u002F `append` | Create or update files |\n| `patch` \u002F `morph` | Make incremental edits to existing files |\n| `browser` | Search and navigate the web via Playwright |\n| `vision` | Process and analyze images |\n| `screenshot` | Capture screenshots of your desktop |\n| `rag` | Retrieve context from local files (Retrieval Augmented Generation) |\n| `gh` | Interact with GitHub via the GitHub CLI |\n| `tmux` | Run long-lived commands in persistent terminal sessions |\n| `computer` | Full desktop access for GUI interactions |\n| `subagent` | Spawn sub-agents for parallel or isolated tasks |\n| `chats` | Reference and search past conversations |\n\nUse `\u002Ftools` during a conversation to see all available tools and their status.\n\n### 🔌 Extensibility: Plugins, Skills & Lessons\n\ngptme has a layered extensibility system that lets you tailor it to your workflow:\n\n**[Plugins][docs-plugins]** — extend gptme with custom tools, hooks, and commands via Python packages:\n\n```toml\n# gptme.toml\n[plugins]\npaths = [\"~\u002F.config\u002Fgptme\u002Fplugins\", \".\u002Fplugins\"]\nenabled = [\"my_plugin\"]\n```\n\n**[Skills][docs-skills]** — lightweight workflow bundles (Anthropic format) that auto-load when mentioned by name. Great for packaging reusable instructions and helper scripts without writing Python.\n\n**[Lessons][docs-lessons]** — contextual guidance that auto-injects into conversations based on keywords, tools, and patterns. Write your own to capture team best-practices or domain knowledge.\n\n**[Hooks][docs-hooks]** — run custom code at key lifecycle events (before\u002Fafter tool calls, on conversation start, etc.) without a full plugin.\n\n**[gptme-contrib][gptme-contrib]** — community-contributed plugins, packages, scripts, and lessons:\n\n| Plugin | Description |\n|--------|-------------|\n| [gptme-consortium](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-contrib\u002Ftree\u002Fmaster\u002Fplugins\u002Fgptme-consortium) | Multi-model consensus decision-making |\n| [gptme-imagen](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-contrib\u002Ftree\u002Fmaster\u002Fplugins\u002Fgptme-imagen) | Multi-provider image generation |\n| [gptme-lsp](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-contrib\u002Ftree\u002Fmaster\u002Fplugins\u002Fgptme-lsp) | Language Server Protocol integration |\n| [gptme-ace](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-contrib\u002Ftree\u002Fmaster\u002Fplugins\u002Fgptme-ace) | ACE-inspired context optimization |\n| [gptme-gupp](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-contrib\u002Ftree\u002Fmaster\u002Fplugins\u002Fgptme-gupp) | Work state persistence across sessions |\n\n### 🔗 Integrations: MCP & ACP\n\n**[MCP (Model Context Protocol)][docs-mcp]** — use any MCP server as a tool source:\n\n```sh\npipx install gptme  # MCP support included by default\n```\n\ngptme can discover and dynamically load MCP servers, giving the agent access to databases, APIs, file systems, and any other MCP-compatible tool. See the [MCP docs][docs-mcp] for server configuration.\n\n**[ACP (Agent Client Protocol)][docs-acp]** — use gptme as a coding agent directly from your editor:\n\n```sh\npipx install 'gptme[acp]'\n```\n\nThis makes gptme available as a drop-in coding agent in [Zed](https:\u002F\u002Fzed.dev\u002F) and JetBrains IDEs. Your editor sends requests, gptme executes with its full toolset (shell, browser, files, etc.) and streams results back.\n\n### 🤖 Autonomous Agents\n\ngptme is designed to run not just interactively but as a **persistent autonomous agent** — an AI that runs continuously, remembers everything, and gets better over time. The [gptme-agent-template][agent-template] provides a complete scaffold:\n\n- **Persistent workspace** — git-tracked \"brain\" with journal, tasks, knowledge base, and lessons\n- **Run loops** — scheduled (systemd\u002Flaunchd) or event-driven autonomous operation\n- **Task management** — structured task queue with YAML metadata and GTD-style workflows\n- **Meta-learning** — lessons system captures behavioral patterns and improves over time\n- **Multi-agent coordination** — file leases, message bus, and work claiming for concurrent agents\n- **External integrations** — GitHub, email, Discord, Twitter, RSS, and more\n\n```sh\n# Create and run your own agent\ngptme-agent create ~\u002Fmy-agent --name MyAgent\ngptme-agent install   # runs on a schedule\ngptme-agent status    # check on it\n```\n\n[**Bob**](https:\u002F\u002Fgithub.com\u002FTimeToBuildBob) is the reference implementation — a production autonomous agent that's been running continuously since late 2024. Bob opens PRs, reviews code, fixes CI, manages his own task queue, maintains a growing set of behavioral lessons, posts on [Twitter](https:\u002F\u002Ftwitter.com\u002FTimeToBuildBob), responds on Discord, and writes [blog posts](https:\u002F\u002Ftimetobuildbob.github.io\u002F).\n\nMultiple specialized agents can run in parallel — e.g. Bob (engineering) and [Alice](https:\u002F\u002Fgithub.com\u002FTimeToLearnAlice) (personal assistant & orchestration) — coordinating through shared infrastructure.\n\nSee the [Autonomous Agents docs](https:\u002F\u002Fgptme.org\u002Fdocs\u002Fagents.html) for the full guide.\n\n### 🛡 Guardrails\n\nPersistent agents need guardrails around the full loop, not just tool permissions:\n\n- **Input guardrails** — structured task selectors in the agent workspace keep work focused and reduce thrashing on notifications or ambiguous work. Bob uses a CASCADE-style selector for this layer.\n- **Pre-action guardrails** — [lessons][docs-lessons] inject situational guidance before the agent acts.\n- **Output guardrails** — [hooks][docs-hooks] and [pre-commit checks](https:\u002F\u002Fgptme.org\u002Fdocs\u002Fusage.html#pre-commit-integration) validate file changes before control returns to the user.\n\nThis stack is simple and composable: selectors improve work choice, lessons steer behavior, and checks verify the result. You can add evals on top later, but the baseline guardrail loop already exists.\n\n### 🛠 Use Cases\n\n- 🖥 **Development:** Write and run code faster with AI assistance.\n- 🎯 **Shell Expert:** Get the right command using natural language (no more memorizing flags!).\n- 📊 **Data Analysis:** Process and analyze data directly in your terminal.\n- 🎓 **Interactive Learning:** Experiment with new technologies or codebases hands-on.\n- 🤖 **Agents & Tools:** Build long-running autonomous agents for real work.\n- 🔬 **Research:** Automate literature review, data collection, and analysis pipelines.\n\n### 🛠 Developer Perks\n\n- ⭐ One of the first agent CLIs created (Spring 2023) that is still in active development.\n- 🧰 **Easy to extend**\n  - Most functionality can be implemented with [tools][docs-tools], [hooks][docs-hooks], and [commands][docs-commands].\n  - [Plugins][docs-plugins] allow for easy packaging of extensions.\n  - Trying to stay [tiny][docs-arewetiny] — minimal core, extend as needed.\n- 🧪 Extensive testing, high coverage.\n- 🧹 Clean codebase, checked and formatted with `mypy`, `ruff`, and `pyupgrade`.\n- 🤖 [GitHub Bot][docs-bot] to request changes from comments! (see [#16](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Fissues\u002F16))\n  - Operates in this repo! (see [#18](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Fissues\u002F18) for example)\n  - Runs entirely in GitHub Actions.\n- 📊 [Evaluation suite][docs-evals] for testing capabilities of different models.\n- 📝 [gptme.vim][gptme.vim] for easy integration with vim.\n\n### 🚧 In Progress\n\n- 🖥 **[gptme-tauri](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-tauri)** — desktop app wrapping gptme for easy local use (WIP)\n- ☁️ **[gptme.ai](https:\u002F\u002Fgptme.ai)** — managed cloud service for running gptme agents (WIP; still self-hostable by running `gptme-server` + `gptme-webui` yourself)\n- 🌳 Tree-based conversation structure (see [#17](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Fissues\u002F17))\n- 📜 RAG to automatically include context from local files (see [#59](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Fissues\u002F59))\n- 🏆 Advanced evals for testing frontier capabilities\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Python 3.10 or newer\n- An API key for at least one LLM provider:\n  - [Anthropic](https:\u002F\u002Fconsole.anthropic.com\u002F) (set `ANTHROPIC_API_KEY`)\n  - [OpenAI](https:\u002F\u002Fplatform.openai.com\u002F) (set `OPENAI_API_KEY`)\n  - [OpenRouter](https:\u002F\u002Fopenrouter.ai\u002F) (set `OPENROUTER_API_KEY`)\n  - Local models via `llama.cpp` (no key required — see [providers docs][docs-providers])\n\n### Installation\n\nFor full setup instructions, see the [Getting Started guide][docs-getting-started].\n\n```sh\n# With pipx (recommended, requires Python 3.10+)\npipx install gptme\n\n# With uv\nuv tool install gptme\n\n# With optional extras\npipx install 'gptme[browser]'  # Playwright for web browsing\npipx install 'gptme[all]'      # Everything\n\n# Latest from git with all extras\nuv tool install 'git+https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme.git[all]'\n```\n\n### Quick Start\n\n```sh\ngptme\n```\n\nYou'll be greeted with a prompt. Type your request and gptme will respond, using tools as needed.\n\n### Example Commands\n\n```sh\n# Create a particle effect visualization\ngptme 'write an impressive and colorful particle effect using three.js to particles.html'\n\n# Generate visual art\ngptme 'render mandelbrot set to mandelbrot.png'\n\n# Get configuration suggestions\ngptme 'suggest improvements to my vimrc'\n\n# Process media files\ngptme 'convert to h265 and adjust the volume' video.mp4\n\n# Code assistance from git diffs\ngit diff | gptme 'complete the TODOs in this diff'\n\n# Fix failing tests\nmake test | gptme 'fix the failing tests'\n\n# Auto-approve tool confirmations (user can still watch and interrupt)\ngptme -y 'run the test suite and fix any failing tests'\n\n# Fully non-interactive\u002Fautonomous mode (no user interaction possible, safe for scripts\u002FCI)\ngptme -n 'run the test suite and fix any failing tests'\n```\n\nFor more, see the [Getting Started][docs-getting-started] guide and the [Examples][docs-examples] in the [documentation][docs].\n\n### ⚙️ Configuration\n\nCreate `~\u002F.config\u002Fgptme\u002Fconfig.toml`:\n\n```toml\n[user]\nname = \"User\"\nabout = \"I am a curious human programmer.\"\nresponse_preference = \"Don't explain basic concepts\"\n\n[prompt]\n# Additional files to always include as context\n# files = [\"~\u002Fnotes\u002Fllm-tips.md\"]\n\n[env]\n# Set your default model\n# MODEL = \"anthropic\u002Fclaude-sonnet-4-20250514\"\n# MODEL = \"openai\u002Fgpt-4o\"\n```\n\nFor all options, see the [configuration docs][docs-config].\n\n## 🛠 Usage\n\n```sh\n$ gptme --help\nUsage: gptme [OPTIONS] [PROMPTS]...\n\n  gptme is a chat-CLI for LLMs, empowering them with tools to run shell\n  commands, execute code, read and manipulate files, and more.\n\n  If PROMPTS are provided, a new conversation will be started with it. PROMPTS\n  can be chained with the '-' separator.\n\n  The interface provides user commands that can be used to interact with the\n  system.\n\n  Available commands:\n    \u002Fundo         Undo the last action\n    \u002Flog          Show the conversation log\n    \u002Fedit         Edit the conversation in your editor\n    \u002Frename       Rename the conversation\n    \u002Ffork         Create a copy of the conversation\n    \u002Fsummarize    Summarize the conversation\n    \u002Freplay       Replay tool operations\n    \u002Fexport       Export conversation as HTML\n    \u002Fmodel        Show or switch the current model\n    \u002Fmodels       List available models\n    \u002Ftokens       Show token usage and costs\n    \u002Fcontext      Show context token breakdown\n    \u002Ftools        Show available tools\n    \u002Fcommit       Ask assistant to git commit\n    \u002Fcompact      Compact the conversation\n    \u002Fimpersonate  Impersonate the assistant\n    \u002Frestart      Restart gptme process\n    \u002Fsetup        Setup gptme\n    \u002Fhelp         Show this help message\n    \u002Fexit         Exit the program\n\n  See docs for all commands: https:\u002F\u002Fgptme.org\u002Fdocs\u002Fcommands.html\n\n  Keyboard shortcuts:\n    Ctrl+X Ctrl+E  Edit prompt in your editor\n    Ctrl+J         Insert a new line without executing the prompt\n\nOptions:\n  --name TEXT            Name of conversation. Defaults to generating a random\n                         name.\n  -m, --model TEXT       Model to use, e.g. openai\u002Fgpt-5, anthropic\u002Fclaude-\n                         sonnet-4-20250514. If only provider given then a\n                         default is used.\n  -w, --workspace TEXT   Path to workspace directory. Pass '@log' to create a\n                         workspace in the log directory.\n  --agent-path TEXT      Path to agent workspace directory.\n  -r, --resume           Load most recent conversation.\n  -y, --no-confirm       Skip all confirmation prompts.\n  -n, --non-interactive  Non-interactive mode. Implies --no-confirm.\n  --system TEXT          System prompt. Options: 'full', 'short', or something\n                         custom.\n  -t, --tools TEXT       Tools to allow as comma-separated list. Available:\n                         append, browser, chats, choice, computer, gh,\n                         ipython, morph, patch, rag, read, save, screenshot,\n                         shell, subagent, tmux, vision.\n  --tool-format TEXT     Tool format to use. Options: markdown, xml, tool\n  --no-stream            Don't stream responses\n  --show-hidden          Show hidden system messages.\n  -v, --verbose          Show verbose output.\n  --version              Show version and configuration information\n  --help                 Show this message and exit.\n```\n\n## 🌍 Ecosystem\n\ngptme is more than a CLI — it's a platform with a growing ecosystem:\n\n| Project | Description |\n|---------|-------------|\n| [gptme-webui] | Modern React web interface, available at [chat.gptme.org](https:\u002F\u002Fchat.gptme.org) |\n| [gptme-contrib] | Community plugins, packages, scripts, and lessons |\n| [gptme-agent-template][agent-template] | Template for building persistent autonomous agents |\n| [gptme-rag] | RAG integration for semantic search over local files |\n| [gptme.vim] | Vim plugin for in-editor gptme integration |\n| [gptme-tauri] | Desktop app (WIP) |\n| [gptme.ai](https:\u002F\u002Fgptme.ai) | Managed cloud service (WIP) |\n\n**Community agents powered by gptme:**\n- [Bob](https:\u002F\u002Fgithub.com\u002FTimeToBuildBob) — autonomous AI agent, running continuously since late 2024, contributes to open source and manages his own tasks\n- [Alice](https:\u002F\u002Fgithub.com\u002FTimeToLearnAlice) — personal assistant & agent orchestrator, forked from the same architecture\n\n## 💬 Community\n\n- **[Discord][discord]** — ask questions, share what you've built, discuss features\n- **[GitHub Discussions](https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Fdiscussions)** — longer-form conversation and ideas\n- **[X\u002FTwitter](https:\u002F\u002Fx.com\u002Fgptmeorg)** — updates and announcements\n\nContributions welcome! See the [contributing guide](https:\u002F\u002Fgptme.org\u002Fdocs\u002Fcontributing.html).\n\n## 📊 Stats\n\n### ⭐ Stargazers over time\n\n[![Stargazers over time](https:\u002F\u002Fstarchart.cc\u002Fgptme\u002Fgptme.svg)](https:\u002F\u002Fstarchart.cc\u002Fgptme\u002Fgptme)\n\n### 📈 Download Stats\n\n- [PePy][pepy]\n- [PyPiStats][pypistats]\n\n[pepy]: https:\u002F\u002Fpepy.tech\u002Fproject\u002Fgptme\n[pypistats]: https:\u002F\u002Fpypistats.org\u002Fpackages\u002Fgptme\n\n## 🔗 Links\n\n- [Website][website]\n- [Documentation][docs]\n- [GitHub][github]\n- [Discord][discord]\n\n\u003C!-- links -->\n\n[website]: https:\u002F\u002Fgptme.org\u002F\n[discord]: https:\u002F\u002Fdiscord.gg\u002FNMaCmmkxWv\n[github]: https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\n[gptme.vim]: https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme.vim\n[gptme-webui]: https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme\u002Ftree\u002Fmaster\u002Fwebui\n[gptme-rag]: https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-rag\n[gptme-contrib]: https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-contrib\n[gptme-tauri]: https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-tauri\n[agent-template]: https:\u002F\u002Fgithub.com\u002Fgptme\u002Fgptme-agent-template\n[bob]: https:\u002F\u002Fgithub.com\u002FTimeToBuildBob\n[docs]: https:\u002F\u002Fgptme.org\u002Fdocs\u002F\n[docs-getting-started]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Fgetting-started.html\n[docs-examples]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Fexamples.html\n[docs-demos]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Fdemos.html\n[docs-providers]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Fproviders.html\n[docs-tools]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Ftools.html\n[docs-tools-python]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Ftools.html#python\n[docs-tools-shell]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Ftools.html#shell\n[docs-tools-patch]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Ftools.html#patch\n[docs-tools-browser]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Ftools.html#browser\n[docs-tools-computer]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Ftools.html#computer\n[docs-lessons]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Flessons.html\n[docs-skills]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Fskills.html\n[docs-bot]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Fbot.html\n[docs-server]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Fserver.html\n[docs-evals]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Fevals.html\n[docs-config]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Fconfig.html\n[docs-arewetiny]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Farewetiny.html\n[docs-plugins]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Fplugins.html\n[docs-hooks]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Fhooks.html\n[docs-commands]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Fcommands.html\n[docs-mcp]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Fmcp.html\n[docs-acp]: https:\u002F\u002Fgptme.org\u002Fdocs\u002Facp.html\n[anthropic-computer-use]: https:\u002F\u002Fwww.anthropic.com\u002Fnews\u002F3-5-models-and-computer-use\n","gptme 是一个可以在终端运行的个人 AI 代理，能够编写代码、使用终端命令、浏览网页等。它支持多种本地工具如 shell、Python 脚本执行以及网络访问，使得用户可以创建持续自主工作的智能代理。该项目采用 Python 编写，具备跨平台特性，能够在笔记本电脑、SSH 会话、tmux 会话、无头服务器乃至 CI\u002FCD 管道中无缝运行。其核心优势在于对不同 AI 提供商（包括 Anthropic、OpenAI 等）的支持，同时也允许完全离线运行，通过 llama.cpp 实现本地模型加载。适用于需要自动化脚本生成、代码辅助以及其他知识密集型任务处理的场景。",2,"2026-06-11 03:29:39","top_topic"]