Builds a developer character profile from your local coding-agent history and turns it into skill, coding-habit and architecture suggestions. Claude Code, Codex CLI and Gemini CLI are read through one shared adapter, so a project you worked on in more than one agent appears once, with the agents named.
Everything runs locally — nothing ever leaves your machine.
Site: https://hailneed.github.io/devpersona/ · Türkçe açıklama aşağıda.
$ npx --yes github:hailneed/devpersona --md
# Coding agent usage profile
Source: Claude Code, Codex CLI · 367 sessions scanned
## Totals
| | |
|---|---|
| Projects | 74 |
| Sessions | 367 |
| Human prompts | 1007 |
| Tool calls | 26222 |
| Tool errors | 888 |
| Permission denials | 64 |
| Avg prompt length (chars) | 1720 |
## Work rhythm
- Peak hours: 11:00 (125), 15:00 (123), 16:00 (101)
- Peak days: Monday (265), Tuesday (256), Friday (177)
- Hours are in this machine's local timezone.
## Projects (by prompt count)
| Project | Agents | Sessions | Prompts | Languages | Top commands |
|---------------|--------------------|----------|---------|------------------------|--------------------------|
| my-web-app | claude-code, codex | 10 | 82 | C#, JavaScript, Razor | dotnet test, git commit |
| data-pipeline | claude-code | 8 | 64 | Python, SQL, Markdown | python, pytest, git push |Those totals are a real run on a real machine — 26,222 tool calls across 367 sessions, and 888 of those calls errored. The project rows are illustrative; the real ones carry directory names.
This report was generated entirely locally; no data left this machine.
Coding agents record every session onto your machine. This plugin reads those logs and produces three things:
| Command | What you get |
|---|---|
/devpersona:stats |
Numeric usage profile: projects, sessions, prompts, tools, errors, peak hours |
/devpersona:analyze |
Persona card: your stack, working style, communication style, strengths and risk patterns — every claim with an evidence citation |
/devpersona:advise [skills|code|architecture] |
Suggestions built on that card: skills worth authoring (drafts included), coding-habit fixes, architecture recommendations |
The analysis draws on two layers: the numeric patterns in the logs (which languages, which commands, error rate, work rhythm) and the auto-memory files Claude Code accumulates per project (facts distilled from past conversations).
| Agent | Log path | Status |
|---|---|---|
| Claude Code | ~/.claude/projects/*.jsonl |
verified |
| Codex CLI | ~/.codex/sessions/**/rollout-*.jsonl |
verified |
| Gemini CLI | ~/.gemini/tmp/**/*.json |
unverified — written against the documented layout; skipped silently if no logs exist |
Narrow to one agent with --agent <id>, or shorten the window with --days N. Only
Claude Code writes auto-memory files; on the other agents that layer stays empty and the
report says so.
- The scanner (
scripts/scan.mjs) puts no raw chat text in its default output — only numbers, file names and session titles. Be aware that session titles are short AI-generated summaries derived from chat content, so review the output before sharing it with anyone. - Raw prompt samples are printed only when you explicitly ask (
--prompts <project>), and only to your terminal. - Nothing is sent over the network. Interpretation happens inside the Claude Code session you are already running.
# Inside Claude Code:
/plugin marketplace add hailneed/plugins
/plugin install devpersona@hailneedThen:
/devpersona:analyze
Claude Code + Node.js 18+ (for the scanner). No dependencies, no API key.
The scanner runs on its own — you can get the numeric report without installing anything:
git clone https://github.com/hailneed/devpersona
cd devpersona
node scripts/scan.mjs --md # English report (default)
node scripts/scan.mjs --md --lang tr # Turkish report
node scripts/scan.mjs --agent codex # limit to one agent
node scripts/scan.mjs --days 90 # last 90 days
node scripts/scan.mjs --out profile.json
node scripts/scan.mjs --selftest # classifier self-test (no network/disk)An unrecognised flag exits 2 rather than being ignored, so a typo fails instead of quietly scanning something else.
scripts/lib/adapters.mjs(the shared adapter layer of theagentlensfamily) turns each agent's log into one event schema.scan.mjsseparates human prompts from tool injections, derives languages from the extensions of edited files and command habits from shell calls, and groups projects by working directory — so a project worked on in two agents is not counted twice.- The
analyzeskill combines those numbers, the project memory files and a small prompt sample into an evidence-cited persona card (~/.claude/persona/persona.md). - The
adviseskill turns every observation on the card into a concrete suggestion — a suggestion with no evidence behind it does not make it into the report.
MIT.
devpersona, yerel kodlama ajanı geçmişinden geliştirici karakterini çıkarır ve ona göre skill, kod alışkanlığı ve mimari önerileri üretir. Claude Code, Codex CLI ve Gemini CLI tek bir adaptör katmanından okunur; birden çok ajanda çalıştığın bir proje tek profilde birleşir, ajanlar adıyla listelenir.
/devpersona:stats— sayısal kullanım profili: proje, oturum, prompt, araç, hata, en yoğun saatler/devpersona:analyze— karakter kartı: yığının, çalışma tarzın, iletişim üslubun, güçlü yanların, risk desenlerin — her iddia kanıt atıflı/devpersona:advise [skills|code|architecture]— karta dayanan öneriler: yazmaya değer skill'ler (taslak dahil), kod alışkanlığı düzeltmeleri, mimari tavsiyeler
Gizlilik: tarayıcının varsayılan çıktısında ham sohbet metni yoktur — yalnızca
sayılar, dosya adları ve oturum başlıkları. Oturum başlıkları sohbet içeriğinden üretilmiş
kısa özetlerdir; çıktıyı paylaşacaksan önce göz at. Ham prompt örneklemi yalnızca açıkça
--prompts <proje> istendiğinde ve yalnızca ekrana yazılır. Hiçbir şey ağa gönderilmez.
Çıktı varsayılan olarak İngilizcedir; Türkçe için --lang tr ver:
node scripts/scan.mjs --md --lang tr
/plugin marketplace add hailneed/plugins
/plugin install devpersona@hailneed