ami-product-video.mp4 #
Ami 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.
Ami runs on your machine. Data lives under ~/.ami/
(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.
The only prerequisite is Node β₯ 20.
git clone https://github.com/NanoNets/ami.git && cd ami
./ami
./ami
bootstraps everything on first run.
- It installs dependencies (pnpm via corepack)
- builds the console and starts the server
Open 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.
./ami update # pull the latest, reinstall, rebuild
./ami build # force-rebuild the console
Optional extras, install if you want the matching feature:
β coding tasks need it to open PRs (gh
CLIbrew install gh
)β a local meeting recorder with on-device transcription (ffmpeg
+whisper-cpp
brew install ffmpeg whisper-cpp
)
| Page | What it does |
|---|---|
| Home | |
| A homescreen with to-dos and meetings | |
| To-do | |
| A universal list of to-dos from every connected tool | |
| Chat | |
| A copilot chat with the same tool surface as to-do runs. You can ask questions, fire off work, create to-dos, update memory | |
| Agents | |
| A page to create agents that run on a schedule | |
| History | |
| An archive of past to-dos | |
| Memory | |
| A visualization of the current memory as a context graph | |
| Settings | |
| Connectors, models, knobs, usage data |
Global search and notifications live in the header navbar.
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.
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.
Every to-do run and every copilot chat grows the knowledge base.
Memory is an Obsidian-style markdown knowledge base at ~/.ami/knowledge/
β 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:
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.
Ami currently has a limited number of connectors. But it is skilled to build any tool connector for you.
- Go to Settings
- Click on "Add a connector" at the bottom of the connector list.
- Specify the name, homepage url, and your intent on using the connector
Ami will build the connector (using your claude code and your API key) and make it available to task runs and copilot chats.
Everything Ami knows lives under ~/.ami/
.
ami.db
(SQLite β signals, todos, runs, settings, tokens)knowledge/
(the markdown knowledge base, git-versioned)worktrees/
(isolated coding checkouts),bg-tasks/
andevents/
(background agent state).
Delete the directory and Ami forgets everything. The only outbound calls are to the Anthropic API and to the tools you connected with your tokens.
Ami is built as an internal tool. It's still in development stage, and we'll push a stable release soon. Stay tuned.
MIT