{"slug": "show-hn-open-source-ai-shadow-that-runs-on-your-machine-and-acts-as-you", "title": "Show HN: Open-source AI shadow that runs on your machine and acts as you", "summary": "NanoNets released Ami, an open-source AI agent that runs locally on a user's machine and acts as a personal clone by connecting to apps, data, and tools via personal tokens. The agent maintains a live to-do list, learns user behavior, and executes busy work autonomously while keeping all data stored locally under ~/.ami/ with SQLite and markdown memory. Ami requires Node ≥ 20 and uses Claude API for triage and task execution, with features including meeting prep, on-device transcription, and a context graph memory that improves over time.", "body_md": "## ami-product-video.mp4\n\nAmi is a local agent harness that acts as your clone, not a separate co-worker. It connects to apps, data, repositories, tools with your personal tokens, maintains a live to-do list, learns how you do tasks, and executes the \"busy work\" tasks on your behalf. It contructs a context graph memory of you and updates entities, relationships, feedback, decisions, writing style, to get more autonomous the more you use it.\n\nAmi runs on your machine. Data lives under `~/.ami/`\n\n(SQLite + markdown memory). Nothing is shared with your org. Ami has exactly the access you have, i.e., it can only reach what you can reach. And nothing ships or gets sent without your click.\n\nThe only prerequisite is Node ≥ 20.\n\n```\ngit clone https://github.com/NanoNets/ami.git && cd ami\n./ami\n```\n\n`./ami`\n\nbootstraps everything on first run.\n\n- It installs dependencies (pnpm via corepack)\n- builds the console and starts the server\n\nOpen [http://localhost:4141](http://localhost:4141) and walk through onboarding. Paste your Claude API key and connect tools using personal tokens. Both are stored only on this machine.\n\n```\n./ami update       # pull the latest, reinstall, rebuild\n./ami build        # force-rebuild the console\n```\n\nOptional extras, install if you want the matching feature:\n\n— coding tasks need it to open PRs (`gh`\n\nCLI`brew install gh`\n\n)— a local meeting recorder with on-device transcription (`ffmpeg`\n\n+`whisper-cpp`\n\n`brew install ffmpeg whisper-cpp`\n\n)\n\n| Page | What it does |\n|---|---|\nHome |\nA homescreen with to-dos and meetings |\nTo-do |\nA universal list of to-dos from every connected tool |\nChat |\nA copilot chat with the same tool surface as to-do runs. You can ask questions, fire off work, create to-dos, update memory |\nAgents |\nA page to create agents that run on a schedule |\nHistory |\nAn archive of past to-dos |\nMemory |\nA visualization of the current memory as a context graph |\nSettings |\nConnectors, models, knobs, usage data |\n\nGlobal search and notifications live in the header navbar.\n\n**Ingest**— a poller pulls new mentions, DMs, emails, invites, notifications through each connector using your personal tokens / API keys.**Triage**— a Claude call classifies each signal as task / FYI / ignore with a due date. Entities and relationships flow into the knowledge base. Your feedback (corrections, dismissals, overrides) become decision traces in the knowledge base that steer future triage.**Act**— each to-do item has five actions:** Plan**— explores read-only and proposes an editable plan.** Start**— runs the task in an isolated Claude Agent SDK session.** Resolve**— indicates you did it yourself and updates knowledge base** Dismiss / Snooze**— dismissals discourages future triage of similar tasks, snoozed tasks return tomorrow.\n\n**Review**— deliverables (PR link, doc, event, meeting link) land on the task page along with a drafted reply. Ami never sends anything itself. You edit/approve, then it posts to the originating Slack thread / email thread from your account. Your edits are diffed into memory and refine Ami's execution and voice.**Iterate**— feedback on a finished task resumes the same agent session with full context.\n\nEvery to-do run and every copilot chat grows the knowledge base.\n\nMemory is an Obsidian-style markdown knowledge base at `~/.ami/knowledge/`\n\n— dossiers with wiki-links, curated by note agents after each batch of activity, versioned with git so every note has history and restore. It powers:\n\n**Meeting prep**— attendees resolved against the knowledge base; a brief (who's coming, what matters, open items) lands before each meeting.**Meeting recorder**— record mic + system audio locally, transcribe on-device with whisper.cpp, feed the transcript into memory. No audio leaves the machine.**Style**— Ami learns how you write from your real messages and your edits to its drafts; replies come out in your voice.** Decision traces**— past exceptions, overrides, and feedback are retrieved when similar situations recur, so Ami decides the way you already decided.\n\nAmi currently has a limited number of connectors. But it is skilled to build any tool connector for you.\n\n- Go to Settings\n- Click on \"Add a connector\" at the bottom of the connector list.\n- Specify the name, homepage url, and your intent on using the connector\n\nAmi will build the connector (using your claude code and your API key) and make it available to task runs and copilot chats.\n\nEverything Ami knows lives under `~/.ami/`\n\n.\n\n`ami.db`\n\n(SQLite — signals, todos, runs, settings, tokens)`knowledge/`\n\n(the markdown knowledge base, git-versioned)`worktrees/`\n\n(isolated coding checkouts),`bg-tasks/`\n\nand`events/`\n\n(background agent state).\n\nDelete the directory and Ami forgets everything. The only outbound calls are to the Anthropic API and to the tools you connected with your tokens.\n\nAmi is built as an internal tool. It's still in development stage, and we'll push a stable release soon. Stay tuned.\n\nMIT", "url": "https://wpnews.pro/news/show-hn-open-source-ai-shadow-that-runs-on-your-machine-and-acts-as-you", "canonical_source": "https://github.com/NanoNets/ami", "published_at": "2026-07-22 07:01:37+00:00", "updated_at": "2026-07-22 07:22:24.563573+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "ai-products", "developer-tools"], "entities": ["NanoNets", "Ami", "Claude", "whisper.cpp", "ffmpeg", "GitHub"], "alternates": {"html": "https://wpnews.pro/news/show-hn-open-source-ai-shadow-that-runs-on-your-machine-and-acts-as-you", "markdown": "https://wpnews.pro/news/show-hn-open-source-ai-shadow-that-runs-on-your-machine-and-acts-as-you.md", "text": "https://wpnews.pro/news/show-hn-open-source-ai-shadow-that-runs-on-your-machine-and-acts-as-you.txt", "jsonld": "https://wpnews.pro/news/show-hn-open-source-ai-shadow-that-runs-on-your-machine-and-acts-as-you.jsonld"}}