Skip to main content

who-am-ai: let your AI know how you like things done

tests PyPI version Python versions MIT

who-am-ai

Learns how you want AI assistants to work, from your own messages, and keeps a short profile that your assistants load in every conversation.

Every new session starts blank, so you keep repeating the same things: reply in English, keep it short, do not paraphrase my request, no emojis in commits. who-am-ai reads what you say to your assistants, notes the preferences those messages reveal, and maintains a profile of about 600 words that the assistant loads into every conversation. You say it once; every assistant knows it from then on.

Features

  • Learns from what you actually say. It reads only your messages, plus the tail of the reply you reacted to as context, so a short "no, in English" is understood. Assistant text never becomes a preference, and pasted material is ignored.
  • A high admission bar. An item enters the profile only when it is general (it changes what an assistant does in unrelated tasks) and durable (a standing rule, or it recurs across chats). Details tied to one ticket or repository stay out.
  • You have the last word. Edit me.md anywhere. Your edits are diffed against the last version the tool wrote and become observations with the highest authority, which no inference can override.
  • Every change is explained. Each rewrite is stored with what was added, removed or changed and why (whoamai log), and every version of the profile is kept.
  • Small and predictable. The profile has a word cap, enforced by code by priority: what you wrote, then what you repeated, then the most recent. There is no daemon, no Docker and no web server.
  • Bounded cost. A monthly spend cap stops the LLM calls. A typical user spends a few dollars per month.
  • No LLM, no guessing. Judgment is always done by an LLM; there are no heuristic fallbacks. Without a key or at the cap, runs stop and say so.

How it works

How who-am-ai works: settled chats become your messages, annotated into observations kept in a ledger; your edits to me.md are diffed; a rewrite produces profile items, rendered to me.md with a changelog

Once a day, whoamai run processes the conversations that have settled: it reads your new messages, asks an LLM to annotate the preferences they reveal (each with your literal quote), folds in your edits to me.md, asks an LLM to rewrite the item list (merging duplicates, the latest preference wins, you win over everything) and renders the result with the word cap applied. Details: docs/design.md.

Getting started

Requirements: Python 3.13 or 3.14, uv and an Anthropic API key for the LLM steps. Today the assistant is Claude Code, on macOS, Windows or Linux. On Linux the schedule needs systemd and the key needs a Secret Service (GNOME Keyring or KWallet); without them, run whoamai run yourself.

Install it from PyPI:

uv tool install who-am-ai
whoamai key
whoamai install

key stores the API key in the system keychain (service who-am-ai): the macOS Keychain, the Windows Credential Manager or the Secret Service. install schedules whoamai run once a day at 12:00 and makes Claude Code load the profile by adding @~/.claude/me.md to ~/.claude/CLAUDE.md. To see the first result right away:

whoamai run

To run it from a source checkout instead, use uv sync and prefix the commands with uv run.

Commands

Command What it does
whoamai run Process settled conversations and rewrite the profile if needed
whoamai status Last run, spend this month, cap, observations and settings
whoamai log [-n N] What changed in the profile, and why
whoamai config Show settings
whoamai config time 12:00 Daily run time (updates the schedule)
whoamai config cap 10 Monthly spend cap in USD
whoamai config read-mode mine|mine+agent Read only your messages, or also the reply you reacted to, as context
whoamai config exclude "<title prefix>" / include Leave conversations out by title prefix
whoamai config models <annotate> <rewrite> Models per step (Sonnet by default)
whoamai config max-words 600 Profile size cap
whoamai install / uninstall Add or remove the schedule and the import line
whoamai import <file.json> One-time import of preferences from elsewhere

State lives in ~/.who-am-ai/ (override with WHO_AM_AI_HOME).

Development

The tests use a fake LLM and a temporary home, so they need no API key and no network.

uv sync
uv run python -m pytest -q

Documentation

Document About
Design The pipeline, each piece, the runtime and the CLI
Decisions The numbered decisions (D1–D11) and the reasoning behind them

Privacy and security

who-am-ai reads your assistant transcripts (today, Claude Code's) locally and sends your messages, and the tail of the replies they react to, to the Anthropic API to annotate preferences. Nothing else leaves your machine. State is kept in ~/.who-am-ai/, and the API key in the system keychain. See SECURITY.md to report a vulnerability and CONTRIBUTING.md to contribute.

License

MIT

Metadata

Release files for who-am-ai 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for who-am-ai 1.1.0
File Size Uploaded Provenance
who_am_ai-1.1.0.tar.gz 58.3 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for who-am-ai 1.1.0
File Interpreter ABI Platform
who_am_ai-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 83.2 kB

Release files / who_am_ai-1.1.0.tar.gz

Download URL who_am_ai-1.1.0.tar.gz
Size 58.3 kB
Tags Source
SHA-256 checksum
How to use checksums
db48b7b679e52f193cdd155b3076b3675488c66b0aff2e0639bc8d5d8baae15b
BLAKE2b-256 checksum
How to use checksums
8f0e960dd0e3e4688931299b3f7bb3b19028a3450903ebc105e7e93bb1ca4cdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Release files / who_am_ai-1.1.0-py3-none-any.whl

Download URL who_am_ai-1.1.0-py3-none-any.whl
Size 24.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ec935c528f95487d95a7d4a99ca7e9a5fd22b9591f6d6f902cdbbbb7dcf53f60
BLAKE2b-256 checksum
How to use checksums
9b043f6157049d0fdb718808cb374a0109d73daeb7524f6e616ab8815575083e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Security for who-am-ai 1.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for who_am_ai-1.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page