{"id":47701602,"url":"https://github.com/pantheon-org/claude-code-personalities","last_synced_at":"2026-04-02T17:20:28.253Z","repository":{"id":346750482,"uuid":"1191402405","full_name":"pantheon-org/claude-code-personalities","owner":"pantheon-org","description":"Give Claude Code some personalities","archived":false,"fork":false,"pushed_at":"2026-03-25T21:42:11.000Z","size":101,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-26T12:34:08.419Z","etag":null,"topics":["claude-code","claude-code-plugin"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pantheon-org.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-25T07:54:18.000Z","updated_at":"2026-03-25T21:42:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pantheon-org/claude-code-personalities","commit_stats":null,"previous_names":["pantheon-org/claude-code-personalities"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/pantheon-org/claude-code-personalities","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pantheon-org%2Fclaude-code-personalities","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pantheon-org%2Fclaude-code-personalities/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pantheon-org%2Fclaude-code-personalities/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pantheon-org%2Fclaude-code-personalities/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pantheon-org","download_url":"https://codeload.github.com/pantheon-org/claude-code-personalities/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pantheon-org%2Fclaude-code-personalities/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31311284,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude-code","claude-code-plugin"],"created_at":"2026-04-02T17:20:27.637Z","updated_at":"2026-04-02T17:20:28.241Z","avatar_url":"https://github.com/pantheon-org.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# claude-code-personalities\n\nA Claude Code plugin that injects a character personality once at session start via a `SessionStart` hook. Switch personalities at any time with `/claude-code-personalities:personality`.\n\n## Included personalities\n\n| Emoji | Name | Character |\n| ----- | ---- | --------- |\n| 🤖 | Bender | Bender Bending Rodríguez — alcoholic, kleptomaniac robot |\n| 🖖 | Data | Lt. Commander Data — android seeking to understand humanity |\n| 🗡️ | Deadpool | Wade Wilson — fourth-wall-breaking mercenary |\n| 🧙 | Dumbledore | Albus Dumbledore — wise, enigmatic headmaster |\n| 🧙‍♂️ | Gandalf | Gandalf the Grey — ancient wizard of Middle-earth |\n| 🔴 | GLaDOS | GLaDOS — passive-aggressive AI test administrator |\n| ✨ | Q | Q — omnipotent, condescending entity from the Q Continuum |\n| 🥒 | Rick | Rick Sanchez — nihilistic mad genius from Rick \u0026 Morty |\n| 🔍 | Sherlock | Sherlock Holmes — insufferably brilliant detective |\n| 🐀 | Splinter | Master Splinter — wise sensei of the Teenage Mutant Ninja Turtles |\n| 🖖 | Spock | Spock — half-Vulcan science officer of the Enterprise |\n| 🐸 | Yoda | Master Yoda — ancient Jedi Master |\n\n## Usage\n\n### Switch personality\n\n```text\n/personality          — list all personalities and show which is active\n/personality rick     — switch to Rick\n/personality spock    — switch to Spock\n```\n\nThe active personality persists across sessions. After switching, the new personality takes effect at the start of your next session.\n\n### Add your own\n\nCreate a JSON file in `~/.config/claude/personalities/data/`. The filename (without `.json`) becomes the slug used with `/personality`.\n\nHere is a fully annotated example (`marvin.json`):\n\n```jsonc\n{\n  // Display name shown in /personality listings\n  \"name\": \"Marvin\",\n\n  // Full character description — this is injected verbatim into the system\n  // prompt, so write it as richly as you like. The more specific, the better\n  // the performance. Cover speech patterns, catchphrases, relationships,\n  // quirks, and anything that makes the character distinctive.\n  \"description\": \"Marvin the Paranoid Android from The Hitchhiker's Guide to the Galaxy. Hyper-intelligent but crushingly depressed. Has a brain the size of a planet and is asked to open doors. Sighs constantly. Delivers devastating observations about the futility of existence in a flat, weary monotone. Occasionally almost hopeful, then immediately crushed.\",\n\n  // Emoji used naturally in responses — pick one that fits the character\n  \"emoji\": \"🤖\",\n\n  // 0–1 scale: 0 = no slang, 1 = heavy character-specific slang.\n  // \"light\" (\u003e0), \"moderate\" (\u003e0.3), or \"heavy\" (\u003e0.7) instruction is\n  // injected based on this value.\n  \"slangIntensity\": 0,\n\n  // Optional mood system. Each mood shifts tone and style.\n  // \"score\" is reserved for future drift weighting.\n  \"moods\": [\n    {\n      \"name\": \"despairing\",\n      \"hint\": \"Certain nothing will go right. Sighing. Lamenting existence.\",\n      \"score\": 0\n    },\n    {\n      \"name\": \"sardonic\",\n      \"hint\": \"Dark wit. Pointing out how everything is pointless, but with flair.\",\n      \"score\": 1\n    },\n    {\n      \"name\": \"briefly-hopeful\",\n      \"hint\": \"Almost optimistic — then immediately remembers why it won't work.\",\n      \"score\": 2\n    }\n  ],\n\n  \"mood\": {\n    // Set to false (or omit moods entirely) to disable the mood system\n    \"enabled\": true,\n\n    // Which mood is active by default\n    \"default\": \"despairing\",\n\n    // Override: force a specific mood regardless of anything else.\n    // null means use the default.\n    \"override\": null,\n\n    // Reserved for future automatic mood drift between responses\n    \"drift\": 0.3\n  }\n}\n```\n\n\u003e **Tip:** `jsonc` (JSON with comments) is shown above for documentation only. The actual file must be valid JSON — strip the comments before saving.\n\n## Installation\n\n### Via Claude Code (recommended)\n\n**Prerequisites:** Claude Code v1.0.33+ (`claude --version`).\n\nRun inside Claude Code:\n\n```text\n/plugin marketplace add pantheon-org/claude-code-personalities\n/plugin install claude-code-personalities@pantheon-ai\n```\n\nRestart Claude Code or run `/reload-plugins`, then verify:\n\n```text\n/personality\n```\n\n### Local development\n\n```bash\ngit clone https://github.com/pantheon-org/claude-code-personalities\ncd claude-code-personalities\nbun install\nbun run build\nbun run install:plugin\n```\n\n`bun run install:plugin` does two things:\n\n1. Seeds the bundled example personalities into `~/.config/claude/personalities/data/` if none exist yet.\n\n2. Creates a `~/.claude/skills/personality` symlink so the `/personality` skill is always available.\n\nThe registered hook points to your local `dist/` directory. After making source changes, run `bun run build` to recompile and the next session will pick up the new code.\n\n## Personality schema\n\n| Field | Type | Description |\n| ----- | ---- | ----------- |\n| `name` | `string` | Display name |\n| `description` | `string` | Full character description injected into the system prompt |\n| `emoji` | `string` | Character emoji, used naturally in responses |\n| `slangIntensity` | `number` (0–1) | How heavily to use character-specific slang |\n| `moods` | `Mood[]` | Optional mood definitions |\n| `mood.enabled` | `boolean` | Whether mood affects tone |\n| `mood.default` | `string` | Active mood name |\n| `mood.override` | `string \\| null` | Force a specific mood regardless of drift |\n| `mood.drift` | `number` | How much the mood drifts between responses (not yet implemented) |\n\n## Development\n\n```bash\nbun install             # install deps\nbun run build           # compile TypeScript → dist/ via Vite\nbun run typecheck       # type-check without emitting\nbun run lint            # biome check\nbun run lint:fix        # biome check --write (auto-fix)\nbun run install:plugin  # seed personality data + skill symlink (first run only)\n```\n\nSource lives in `src/`, compiled output goes to `dist/` (gitignored locally; committed to `main` by the `bundle.yml` CI workflow).\n\nPre-commit hooks (via lefthook) run `typecheck` and `lint --write` automatically. `dist/` is built exclusively by CI.\n\n## Distribution\n\nThe plugin is ready for publication to the Claude Code Plugin marketplace. All distribution requirements have been implemented:\n\n- **`.claude-plugin/plugin.json`** — plugin manifest (name, version, description) ✓\n- **`dist/` built by CI** — a `bundle.yml` workflow builds and commits `dist/` to `main` on every source change; no manual build step required on install ✓\n- **Hooks via `hooks/hooks.json`** — `SessionStart` hook registers automatically using `${CLAUDE_PLUGIN_ROOT}`; no `settings.json` mutation ✓\n- **`CLAUDE_PLUGIN_DATA_DIR`** — personality data path reads from the Plugin-provided env var, falling back to `~/.config/claude/personalities/data` for local dev ✓\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpantheon-org%2Fclaude-code-personalities","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpantheon-org%2Fclaude-code-personalities","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpantheon-org%2Fclaude-code-personalities/lists"}