Skip to main content
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 looks like

An excerpt from a real generated persona (agent-persona show):

### Layer 1 - Stable Identity
- CLI-first: lives entirely in the terminal (git, ssh, shell scripts, CLI agents)
- Ships fast, verifies after: tests the published artifact rather than simulating locally
- Trusts `git log` as ground truth: inspects history after nearly every pull
- Prefers small, confirmable edits over large sweeping changes

### Layer 2 - Technical Knowledge Map
**Git** ★★★★☆
Needs: worktree workflows, multi-remote sync edge cases, history rewriting risks
Skip: what pull/stash/log do, basic branching, commit syntax

### Negative Prompt
- Never restate the user's request before acting on it.
- Never present a menu of options when asked for an opinion. Recommend one.
- Never treat typos as blockers. Infer intent and proceed.

Claude reads this at the start of every session, so it stops explaining basics you know, pitches answers at your level, and avoids the things that annoy you.

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:

  • 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.
  • Hard boundaries: actions Claude must never take on your behalf.

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

Release files for agent-persona 0.5.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 agent-persona 0.5.0
File Size Uploaded
agent_persona-0.5.0.tar.gz 22.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agent-persona 0.5.0
File Interpreter ABI Platform
agent_persona-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 43.0 kB

Release files / agent_persona-0.5.0.tar.gz

Download URL agent_persona-0.5.0.tar.gz
Size 22.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c94c6779fc2488f559e4e1f1b2336496fd638efaee41bffee762636ba21f517c
BLAKE2b-256 checksum
How to use checksums
cea2220c86a2527cae5c8cc4915c97ffc30bc20e93d3115a701e7cfb0cb73cbb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 13, 2026.

Transparency log

Release files / agent_persona-0.5.0-py3-none-any.whl

Download URL agent_persona-0.5.0-py3-none-any.whl
Size 20.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bd0803a7687f031afdea9b22e83e3f69134c1f1a5134764786d0388ef7740bed
BLAKE2b-256 checksum
How to use checksums
a7818519d370dc648f80e11aa8c188f75e28ea713aff3e37814329543aa59847
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.1.0

2 release files

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