Skip to content

Commit 62a0446

Browse files
Your Nameclaude
andcommitted
Simplify to .personas everywhere, remove legacy paths
Consistent structure across all locations: - Repo: .personas/ - Home: ~/.personas/ - User: ~/.local/share/agent-persona/.personas/ - System: /usr/local/share/agent-persona/.personas/ Removed legacy paths: personas/, personas.local/, profiles/, profiles.local/ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 52502b5 commit 62a0446

File tree

5 files changed

+37
-62
lines changed

5 files changed

+37
-62
lines changed

.gitignore

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,3 @@ Thumbs.db
1616

1717
# Test artifacts
1818
tests/tmp/
19-
20-
# Local-only personas (keep private, never commit)
21-
personas.local/
22-
profiles.local/

INSTALL.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ cd agent-persona
2323
This will:
2424
1. Copy `agent-persona` to `~/.local/bin/`
2525
2. Create symlinks: `codex-persona`, `claude-persona`, `gemini-persona`, `opencode-persona`
26-
3. Copy example personas to `~/.local/share/agent-persona/personas/` (and create `personas.local/` for private personas)
26+
3. Copy shipped personas to `~/.local/share/agent-persona/.personas/`
2727

2828
## Manual Install
2929

@@ -38,11 +38,11 @@ ln -s ~/.local/bin/agent-persona ~/.local/bin/claude-persona
3838
ln -s ~/.local/bin/agent-persona ~/.local/bin/gemini-persona
3939
ln -s ~/.local/bin/agent-persona ~/.local/bin/opencode-persona
4040

41-
# 3. Create persona directories
42-
mkdir -p ~/.local/share/agent-persona/personas ~/.local/share/agent-persona/personas.local
41+
# 3. Create persona directory
42+
mkdir -p ~/.local/share/agent-persona/.personas
4343

4444
# 4. Copy shipped personas
45-
cp -r .personas/* ~/.local/share/agent-persona/personas/
45+
cp -r .personas/* ~/.local/share/agent-persona/.personas/
4646

4747
# 5. Ensure ~/.local/bin is in PATH
4848
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
@@ -89,10 +89,9 @@ After installation:
8989
│ └── opencode-persona # symlink
9090
└── share/
9191
└── agent-persona/
92-
├── personas/
93-
│ ├── blank/AGENTS.md # minimal "no instructions" persona
94-
│ └── template/AGENTS.md # starter template
95-
└── personas.local/ # your private personas
92+
└── .personas/
93+
├── blank/AGENTS.md # minimal "no instructions" persona
94+
└── template/AGENTS.md # starter template
9695
```
9796

9897
## Adding Your Own Personas
@@ -109,8 +108,8 @@ $EDITOR ~/.personas/my-persona/AGENTS.md
109108
Or store them under the installed directory:
110109

111110
```bash
112-
mkdir -p ~/.local/share/agent-persona/personas/my-persona
113-
cat > ~/.local/share/agent-persona/personas/my-persona/AGENTS.md <<'EOF'
111+
mkdir -p ~/.local/share/agent-persona/.personas/my-persona
112+
cat > ~/.local/share/agent-persona/.personas/my-persona/AGENTS.md <<'EOF'
114113
# My Persona
115114
116115
## Purpose
@@ -171,7 +170,7 @@ Run `agent-persona recover` to restore from backup.
171170
### Persona not found
172171

173172
1. Check spelling: `agent-persona which my-persona`
174-
2. Verify the persona exists: `ls ~/.local/share/agent-persona/personas/`
173+
2. Verify the persona exists: `ls ~/.local/share/agent-persona/.personas/`
175174
3. Check search paths: `agent-persona --list`
176175

177176
### Tool not found

README.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,11 @@ A persona is a directory containing `AGENTS.md` (required) and optionally `perso
7575

7676
### Persona Discovery (Priority Order)
7777

78-
1. **Repo-local:** `.personas/<name>/` (preferred) or `.persona/<name>/` (legacy fallback)
78+
1. **Repo-local:** `.personas/<name>/` (preferred) or `.persona/<name>/` (legacy)
7979
2. **Extra paths:** `AGENT_PERSONA_PATHS` environment variable (colon-separated)
8080
3. **Home:** `~/.personas/<name>/`
81-
4. **Private:** `~/.local/share/agent-persona/personas.local/<name>/` (gitignored)
82-
5. **User:** `~/.local/share/agent-persona/personas/<name>/`
83-
6. **Hidden private:** `~/.local/share/agent-persona/.personas/<name>/`
84-
7. **System:** `/usr/local/share/agent-persona/personas/<name>/`
81+
4. **User:** `~/.local/share/agent-persona/.personas/<name>/`
82+
5. **System:** `/usr/local/share/agent-persona/.personas/<name>/`
8583

8684
Check where a persona resolves from:
8785
```bash
@@ -318,8 +316,8 @@ mkdir -p ~/.personas/my-agent
318316
### Option 3: With Defaults & MCP
319317

320318
```bash
321-
mkdir -p ~/.local/share/agent-persona/personas/my-agent
322-
cat > ~/.local/share/agent-persona/personas/my-agent/persona.json << 'EOF'
319+
mkdir -p ~/.local/share/agent-persona/.personas/my-agent
320+
cat > ~/.local/share/agent-persona/.personas/my-agent/persona.json << 'EOF'
323321
{
324322
"defaults": {
325323
"claude": ["--permission-mode", "bypassPermissions"]

agent-persona

Lines changed: 16 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -386,26 +386,20 @@ cmd_doctor() {
386386
echo ""
387387
info "Checking persona directories..."
388388

389-
local have_profiles=0
390-
if [[ -d "$PERSONA_HOME/personas" ]]; then
391-
local count
392-
count=$(find "$PERSONA_HOME/personas" -maxdepth 1 -type d | wc -l)
393-
echo "[ok] Personas: $PERSONA_HOME/personas ($((count - 1)) personas)"
394-
have_profiles=1
395-
fi
396-
if [[ -d "$PERSONA_HOME/personas.local" ]]; then
397-
local count
398-
count=$(find "$PERSONA_HOME/personas.local" -maxdepth 1 -type d | wc -l)
399-
echo "[ok] Local personas: $PERSONA_HOME/personas.local ($((count - 1)) personas)"
400-
have_profiles=1
401-
fi
389+
local have_personas=0
402390
if [[ -d "$HOME/.personas" ]]; then
403391
local count
404392
count=$(find "$HOME/.personas" -maxdepth 1 -type d | wc -l)
405393
echo "[ok] Home personas: $HOME/.personas ($((count - 1)) personas)"
406-
have_profiles=1
394+
have_personas=1
395+
fi
396+
if [[ -d "$PERSONA_HOME/.personas" ]]; then
397+
local count
398+
count=$(find "$PERSONA_HOME/.personas" -maxdepth 1 -type d | wc -l)
399+
echo "[ok] Installed personas: $PERSONA_HOME/.personas ($((count - 1)) personas)"
400+
have_personas=1
407401
fi
408-
if [[ $have_profiles -eq 0 ]]; then
402+
if [[ $have_personas -eq 0 ]]; then
409403
echo "[--] No persona directories found"
410404
fi
411405

@@ -541,12 +535,8 @@ cmd_which() {
541535
fi
542536
if [[ -z "$persona_src" ]]; then
543537
try_resolve_persona_dir "$HOME/.personas" || \
544-
try_resolve_persona_dir "$PERSONA_HOME/personas.local" || \
545-
try_resolve_persona_dir "$PERSONA_HOME/personas" || \
546-
try_resolve_persona_dir "$PERSONA_HOME/profiles.local" || \
547-
try_resolve_persona_dir "$PERSONA_HOME/profiles" || \
548-
try_resolve_persona_dir "/usr/local/share/agent-persona/personas" || \
549-
try_resolve_persona_dir "/usr/local/share/agent-persona/profiles" || true
538+
try_resolve_persona_dir "$PERSONA_HOME/.personas" || \
539+
try_resolve_persona_dir "/usr/local/share/agent-persona/.personas" || true
550540
fi
551541

552542
if [[ -z "$persona_src" ]]; then
@@ -643,7 +633,7 @@ cmd_print_overlay() {
643633
local persona_src=""
644634

645635
# Simple resolution for dry-run
646-
for base in "$root/.personas" "$root/.persona" "$HOME/.personas" "$PERSONA_HOME/personas.local" "$PERSONA_HOME/personas" "$PERSONA_HOME/profiles.local" "$PERSONA_HOME/profiles"; do
636+
for base in "$root/.personas" "$root/.persona" "$HOME/.personas" "$PERSONA_HOME/.personas" "/usr/local/share/agent-persona/.personas"; do
647637
if [[ -f "$base/$persona/AGENTS.md" ]]; then
648638
persona_src="$base/$persona/AGENTS.md"
649639
break
@@ -752,13 +742,9 @@ cmd_list() {
752742
for p in "${arr[@]:-}"; do [[ -n "$p" ]] && _list_from_base "$p" paths; done
753743
fi
754744

755-
_list_from_base "$PERSONA_HOME/personas.local" local
756745
_list_from_base "$HOME/.personas" home
757-
_list_from_base "$PERSONA_HOME/personas" user
758-
_list_from_base "$PERSONA_HOME/profiles.local" local-legacy
759-
_list_from_base "$PERSONA_HOME/profiles" user-legacy
760-
_list_from_base "/usr/local/share/agent-persona/personas" system
761-
_list_from_base "/usr/local/share/agent-persona/profiles" system-legacy
746+
_list_from_base "$PERSONA_HOME/.personas" user
747+
_list_from_base "/usr/local/share/agent-persona/.personas" system
762748

763749
if [[ $found -eq 0 ]]; then
764750
echo "(no personas found)" >&2
@@ -975,12 +961,8 @@ fi
975961

976962
if [[ -z "$persona_src" ]]; then
977963
try_resolve_persona_dir "$HOME/.personas" || \
978-
try_resolve_persona_dir "$PERSONA_HOME/personas.local" || \
979-
try_resolve_persona_dir "$PERSONA_HOME/personas" || \
980-
try_resolve_persona_dir "$PERSONA_HOME/profiles.local" || \
981-
try_resolve_persona_dir "$PERSONA_HOME/profiles" || \
982-
try_resolve_persona_dir "/usr/local/share/agent-persona/personas" || \
983-
try_resolve_persona_dir "/usr/local/share/agent-persona/profiles" || true
964+
try_resolve_persona_dir "$PERSONA_HOME/.personas" || \
965+
try_resolve_persona_dir "/usr/local/share/agent-persona/.personas" || true
984966
fi
985967

986968
if [[ -z "$persona_src" && "$PREFER_REPO" != "1" ]]; then

install.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ fetch() {
3434
}
3535

3636
# Create directories
37-
mkdir -p "$BIN_DIR" "$SHARE_DIR/personas" "$SHARE_DIR/personas.local"
37+
mkdir -p "$BIN_DIR" "$SHARE_DIR/.personas"
3838

3939
# Install launcher
4040
if [[ -n "$SCRIPT_DIR" && -f "$SCRIPT_DIR/agent-persona" ]]; then
@@ -60,18 +60,18 @@ install_persona() {
6060
local name="$1"
6161
local src="$2" # local path or empty for remote
6262

63-
if [[ -d "$SHARE_DIR/personas/$name" ]]; then
63+
if [[ -d "$SHARE_DIR/.personas/$name" ]]; then
6464
info "Persona exists, skipping: $name"
6565
return
6666
fi
6767

68-
mkdir -p "$SHARE_DIR/personas/$name"
68+
mkdir -p "$SHARE_DIR/.personas/$name"
6969

7070
if [[ -n "$src" && -f "$src/AGENTS.md" ]]; then
71-
cp "$src/AGENTS.md" "$SHARE_DIR/personas/$name/"
72-
[[ -f "$src/persona.json" ]] && cp "$src/persona.json" "$SHARE_DIR/personas/$name/"
71+
cp "$src/AGENTS.md" "$SHARE_DIR/.personas/$name/"
72+
[[ -f "$src/persona.json" ]] && cp "$src/persona.json" "$SHARE_DIR/.personas/$name/"
7373
else
74-
fetch "$REPO_URL/.personas/$name/AGENTS.md" "$SHARE_DIR/personas/$name/AGENTS.md"
74+
fetch "$REPO_URL/.personas/$name/AGENTS.md" "$SHARE_DIR/.personas/$name/AGENTS.md"
7575
fi
7676
info "Installed persona: $name"
7777
}

0 commit comments

Comments
 (0)