Skip to main content

Claude learns who you are from your own sessions and stays that way

Project description

agent-persona logo

agent-persona

Personalise your Claude CLI to how you actually work.

PyPI Python License: MIT Platform


Claude is powerful out of the box, but it starts every session not knowing you: your stack, your coding style, or how you like to be corrected. agent-persona learns that from your own Claude sessions and shell history, builds a persona on this machine, and injects it into every new session.

No configuration, no manual writing, and no API key required.

Install

pipx install agent-persona
agent-persona run

run builds your persona and asks whether to bind it to all future sessions. Say yes and you are done.

What it learns

Python collects the raw data deterministically (session transcripts, tool usage, shell history, all secret-redacted). Then Claude itself, via claude --print using the Claude Code login you already have, synthesizes a structured persona with 8 layers:

  • Stable identity: who you are as an engineer.
  • Knowledge map: star ratings per technology, what to explain and what to skip.
  • Thinking style: how you learn and what order explanations should follow.
  • Output preferences: formats you want, formats that annoy you.
  • Decision framework: what you optimise for when choosing between approaches.
  • Curiosity profile: the kinds of questions you actually ask.
  • Communication: what Claude should and should never do.
  • Current projects: volatile work context, replaced every couple of months.

No keyword matching and no NLP heuristics: Claude reads your actual history and writes the profile.

How it works

~/.claude/projects/**/*.jsonl + shell history
        |
Deterministic collectors (pure Python)
        |
claude --print
        |
~/.agent-persona/persona.md
        |
~/.claude/CLAUDE.md @import

Injection uses Claude Code's native @file import: one marker-delimited line in ~/.claude/CLAUDE.md that Claude reads at every session start. A single Stop hook in ~/.claude/settings.json re-runs synthesis when a session ends, so the persona grows as you work.

Your persona

Everything lives in ~/.agent-persona/, on this machine, as plain files you can read and edit:

~/.agent-persona/
├── persona.md   # your persona, the single source of truth
└── state.json   # tracks which sessions were processed

To move machines, copy persona.md across and run agent-persona install.

Commands

Command What it does
agent-persona run Scrape new sessions, synthesise persona.md, offer to bind.
agent-persona show Print the persona exactly as Claude reads it.
agent-persona install Bind persona.md to all future sessions and register the Stop hook.
agent-persona uninstall [--purge] Remove binding and hook. With --purge, also wipe ~/.agent-persona.
agent-persona doctor Check install health.

Detach anytime

agent-persona adds one marker-delimited block to ~/.claude/CLAUDE.md and one Stop hook. agent-persona uninstall removes exactly those and nothing else; your own CLAUDE.md content is never touched. Add --purge to wipe the persona store too.

Privacy

  • Your data never leaves this machine except the synthesis call to claude --print, your already-authenticated Claude Code instance.
  • API keys, tokens, and passwords are redacted from every data stream before synthesis.
  • No cloud, no telemetry, no accounts.

Fallback: API key

To run synthesis headless (CI, cron) without a Claude Code session, set ANTHROPIC_API_KEY and it falls back to the Anthropic API:

pip install "agent-persona[api]"
export ANTHROPIC_API_KEY=sk-ant-...
agent-persona run

What it does not do

  • No writes to your project files or code.
  • One global persona, not per-project.
  • No GUI.

Requirements

  • Python 3.11+
  • Claude CLI installed and authenticated
  • macOS, Linux, or Windows

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agent_persona-0.4.0.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agent_persona-0.4.0-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

Details for the file agent_persona-0.4.0.tar.gz.

File metadata

  • Download URL: agent_persona-0.4.0.tar.gz
  • Upload date:
  • Size: 20.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agent_persona-0.4.0.tar.gz
Algorithm Hash digest
SHA256 d1bcf6a4433ef5458508c25eecca17351e239677aac2acba450e0e3bd712cc84
MD5 376e58a82623a2cb35d09699546349c2
BLAKE2b-256 601d71efd56ed33468813199b082176bfd91e2cb736fccb8897b5a0133c63386

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_persona-0.4.0.tar.gz:

Publisher: python-publish.yml on MaansiBisht/agent-persona

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agent_persona-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: agent_persona-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 17.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agent_persona-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 239e27cb93931331994e142d33a43252e223d4e5655aad10c9bddc3070648784
MD5 7e2639fcf570ccc60c53a1fb94add891
BLAKE2b-256 de557a7854c28976079046e8fc8522db15d6f79982847df01920a2058dc9f33a

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_persona-0.4.0-py3-none-any.whl:

Publisher: python-publish.yml on MaansiBisht/agent-persona

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page