GitHub - NanoNets/ami: Ami - your AI clone. A local agent harness that connects to your tools, learns your world, and does your busy work. · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
Uh oh!
There was an error while loading. Please reload this page.
NanoNets
ami
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>5 Commits<br>5 Commits
apps
apps
packages
packages
.gitignore
.gitignore
LICENSE
LICENSE
README.md
README.md
ami
ami
package.json
package.json
pnpm-lock.yaml
pnpm-lock.yaml
pnpm-workspace.yaml
pnpm-workspace.yaml
tsconfig.base.json
tsconfig.base.json
View all files
Repository files navigation
Ami - your AI clone
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.
Quick start
The only prerequisite is Node ≥ 20.
git clone https://github.com/NanoNets/ami.git && cd ami<br>./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<br>./ami build # force-rebuild the console
Optional extras, install if you want the matching feature:
gh CLI — coding tasks need it to open PRs (brew install gh)
ffmpeg + whisper-cpp — a local meeting recorder with on-device transcription (brew install ffmpeg whisper-cpp)
The console
Page<br>What it does
Home<br>A homescreen with to-dos and meetings
To-do<br>A universal list of to-dos from every connected tool
Chat<br>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<br>A page to create agents that run on a schedule
History<br>An archive of past to-dos
Memory<br>A visualization of the current memory as a context graph
Settings<br>Connectors, models, knobs, usage data
Global search and notifications live in the header navbar.
How it works
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.
The context graph memory
Memory is an Obsidian-style markdown knowledge base at ~/.ami/knowledge/ — dossiers with wiki-links, curated by note agents...