Skip to content

NirvanaGuha/thoth

Repository files navigation

Thoth

Release 12 Archetypes 4-D Tone Model License

npm npm downloads GitHub stars

An open-source Claude skill that builds a unique, consistent LinkedIn voice — for yourself, or for your whole team.

Thoth runs a 20-minute framework-driven interview, pins your voice to proven personality models (Jungian brand archetypes + the Nielsen Norman 4-D tone-of-voice model + contrarian-belief elicitation), and generates ready-to-publish LinkedIn posts across a balanced content mix. Copy-ready text only — Thoth never posts on your behalf.

Named after the Egyptian god of writing, who weighed hearts against the feather of truth. Thoth the skill weighs every draft against your persona and refuses to ship anything that doesn't sound like you.


What Thoth actually does

+-----------------------------------------------------------------------------+
|  /thoth onboard                                                             |
+-----------------------------------------------------------------------------+
|                                                                             |
|  20-MINUTE INTERVIEW                                                        |
|     Section 1 - Role & Audience           2 min                             |
|     Section 2 - Archetype pinning         6 min   (12 archetypes)           |
|     Section 3 - Tone calibration          4 min   (4-D spectrum)            |
|     Section 4 - Hot takes & anti-voice    6 min                             |
|     Section 5 - Pillar topics             4 min                             |
|     Section 6 - Handoffs & preferences    2 min                             |
|                                                                             |
|  OUTPUT: personas/<you>/persona.md                                          |
|     archetype.dominant:   sage                                              |
|     archetype.secondary:  creator                                           |
|     tone.formal_casual:               3                                     |
|     tone.serious_funny:               2                                     |
|     tone.respectful_irreverent:       3                                     |
|     tone.matter_of_fact_enthusiastic: 2                                     |
|     anti_voice:                                                             |
|       - "Posts that start with 'Excited to share...'"                       |
|       - "Humble-brags disguised as lessons"                                 |
|     contrarian_beliefs:                                                     |
|       - belief: "Open rate is the wrong metric for push"                    |
|         support: "We've seen 4x retention from non-openers"                 |
|         would_change_mind: "Better attribution disproving recall value"     |
|     pillar_topics:                                                          |
|       - push notification strategy                                          |
|       - frontend engineering for visual canvases                            |
|       - lifecycle marketing automation                                      |
|                                                                             |
+-----------------------------------------------------------------------------+
                              |
                              v
+-----------------------------------------------------------------------------+
|  /thoth                                                                     |
+-----------------------------------------------------------------------------+
|  Picks next post type using 30/25/20/15/10 ratio gap                        |
|  Pulls from pillar topics + recent inputs + (optional) git themes           |
|  Drafts in your voice via story-arc + post-type frameworks                  |
|  Runs voice-check against your archetype, tone targets, and anti-voice      |
|  Outputs copy-ready LinkedIn post text                                      |
+-----------------------------------------------------------------------------+

The content mix

Thoth rotates across five post types over a rolling 20-post window:

% Type Purpose
30% Personal Humanizes you. Earns the right to post about work.
25% Work Shows what you actually do. Credibility by demonstration.
20% Thought-leadership Your takes. Contrarian beliefs grounded in experience.
15% Educational Pure teaching. "Here's how X works."
10% Promotional Direct product / service / case study promotion.

The mix is enforced automatically. /thoth calendar shows your actual ratio vs. targets and tells you what's next.


The 12 archetypes (dominant + secondary)

# Archetype Signature on LinkedIn
1 Hero Triumph over a specific, named challenge
2 Outlaw Contrarian takes on industry orthodoxy
3 Magician Reveals the invisible mechanism — "here's the trick"
4 Everyman Plainspoken, relatable, honest about what's hard
5 Lover Warm, sensory, writes about what they love
6 Jester Makes a serious point by refusing to be serious
7 Caregiver Service-oriented, writes to help
8 Creator Obsessed with craft, shows the iterative work
9 Ruler Strategic, systems-minded, accountable authority
10 Innocent Quiet wonder, unguarded, optimistic without naivety
11 Sage Analytical, cites evidence, slow before confident
12 Explorer Writes from the road — curiosity, pattern-spotting

Onboarding pins one dominant archetype (≈70% of your voice) and a secondary (shades the remaining ≈30%). Thoth always picks from two different orientations so the voice has dimension.

Full archetype guide: skill/references/brand-archetypes.md


The 4-D tone spectrum (Nielsen Norman)

    Formal  <---------------->  Casual
   Serious  <---------------->  Funny
Respectful  <---------------->  Irreverent
   Matter-  <---------------->  Enthusiastic
  of-fact

Each axis is a 1–5 target. You can set drift rules per post type (e.g. "+1 casual on Personal posts"). Thoth scores every draft against your targets and rewrites before emitting if any axis drifts ±2 or more.

Full model: skill/references/tone-spectrum.md


Installation

Option 1 — One-line installer (fastest, no Node required)

curl -fsSL https://raw.githubusercontent.com/NirvanaGuha/thoth/main/install.sh | bash

Installs to ~/.claude/skills/thoth/. Respects these env vars:

THOTH_AI=cursor     THOTH_SCOPE=local     THOTH_REF=v1.0.0

Option 2 — npx (recommended for Node users)

npx thoth-skill init                   # default: user-global, Claude
npx thoth-skill init --local           # project-local (./.claude/skills/thoth)
npx thoth-skill init --ai cursor       # Cursor
npx thoth-skill update                 # pull latest, preserving your personas/
npx thoth-skill uninstall              # remove (prompts if personas/ exist)

Or install the CLI globally:

npm install -g thoth-skill
thoth init

Option 3 — Claude plugin marketplace (Claude Code)

/plugin marketplace add NirvanaGuha/thoth
/plugin install thoth@thoth

Option 4 — Manual

git clone https://github.com/NirvanaGuha/thoth.git
cp -r thoth/skill ~/.claude/skills/thoth

Works with Claude Code, Claude Desktop, Cowork, Cursor, Windsurf — anywhere that supports standard .claude/skills/ skills.


Quick start

After installing, in Claude:

/thoth <your-name>     # activate and scaffold your persona folder
/thoth onboard         # run the 20-minute interview
/thoth                 # generate your first post
/thoth daily           # one-shot "what happened today?" flow
/thoth schedule 08:30  # automate the daily flow at 8:30 local
/thoth help            # full command list

All commands

Command What it does
/thoth help Show the command list.
/thoth <name> Activate a persona. Subsequent commands run for this user.
/thoth onboard [name] Run the 20-min persona interview.
/thoth Generate a post (ratio-aware post-type selection).
/thoth <type> Force a post type (personal, work, thought-leadership, educational, promotional).
/thoth daily One-shot daily flow: ask what's new, draft today's post.
/thoth regenerate [feedback] Redraft the last post, optionally with steering.
/thoth calendar Show the ratio tracker — actual vs. target, what's next.
/thoth edit Edit the active persona.
/thoth list Show all personas on this install.
/thoth connect git <path> Add a local repo as a POV source (abstract themes only, strict redaction).
/thoth disconnect git <path> Remove a git source.
/thoth schedule [HH:MM] Automate the daily flow via the schedule skill.
/thoth unschedule Cancel the recurring schedule.

Example prompts

/thoth nirvana                         # activate Nirvana's persona
/thoth                                 # draft a post, ratio-aware

/thoth regenerate shorter, less corporate, add a question at the end

/thoth thought-leadership              # force a Thought-leadership post

/thoth daily                           # "anything interesting today?" flow

/thoth calendar                        # see where you're light on post types

What /thoth calendar looks like

Thoth — content calendar for nirvana
Window: last 20 posts

Target    Actual   Type                       Status
30%       32%      Personal                   on target
25%       21%      Work                       slightly under
20%       25%      Thought-leadership         overrepresented
15%       12%      Educational                slightly under
10%        5%      Promotional                underrepresented

Next up: Promotional — 5% behind target.

Multi-user support (teams / agencies)

A single install supports any number of personas. Families, teams, and agencies can share one Thoth with a persona per person:

/thoth nirvana        # switch to Nirvana's voice
/thoth                # draft for Nirvana

/thoth rakesh         # switch to Rakesh
/thoth                # draft for Rakesh

Personas live at ~/.claude/skills/thoth/personas/<name>/ — each has its own voice file, pillar topics, post history, and recent inputs. The active persona is stored in personas/.active.


Git as a POV source (optional, strictly sandboxed)

/thoth connect git <path> lets Thoth read a local repo's commit history to understand what you're working on — for topic and voice seeding. Hard rules:

  • Never names the repository.
  • Never quotes code, file paths, variable names, or commit messages verbatim.
  • Never promotes the product being built.
  • Skips commits touching auth, credentials, or security.
  • Runs a 5-check redaction pass before emitting any post that touched git context.

Full rules: skill/references/git-safety.md. The constraint is the feature — your LinkedIn voice stays yours, not an extended ad for your employer's roadmap.


How it works

┌────────────────────────────────────────────────────────────┐
│  1. ACTIVATE                                               │
│     /thoth <name> → personas/.active ← <name>              │
└────────────────────────────────────────────────────────────┘
                            │
                            ▼
┌────────────────────────────────────────────────────────────┐
│  2. PICK POST TYPE                                         │
│     Read history.yaml → compute 20-post ratio gap          │
│     Select type with largest negative gap                  │
│     Respect recency: never pick the same type twice        │
│     in a row unless gap > 10pp                             │
└────────────────────────────────────────────────────────────┘
                            │
                            ▼
┌────────────────────────────────────────────────────────────┐
│  3. SELECT TOPIC                                           │
│     Rotate through pillar_topics                           │
│     Weight today's recent.md entries heavily               │
│     (if connected) synthesize git log into abstract        │
│     themes — NEVER repo names, paths, or code              │
└────────────────────────────────────────────────────────────┘
                            │
                            ▼
┌────────────────────────────────────────────────────────────┐
│  4. DRAFT                                                  │
│     Apply archetype + tone targets                         │
│     Apply post-type template + story arc                   │
│     (classic / frame-break / quiet-reveal)                 │
└────────────────────────────────────────────────────────────┘
                            │
                            ▼
┌────────────────────────────────────────────────────────────┐
│  5. VOICE CHECK (mandatory before emit)                    │
│     ✓ sounds like dominant archetype + secondary           │
│     ✓ all 4 tone axes within ±1 of target                  │
│     ✓ no opener clichés                                    │
│     ✓ at least one concrete detail                         │
│     ✓ no matches against anti_voice patterns               │
│     ✓ length in type's Min–Max window                      │
│     ✓ if git-seeded: redaction check passes                │
└────────────────────────────────────────────────────────────┘
                            │
                            ▼
┌────────────────────────────────────────────────────────────┐
│  6. EMIT + LOG                                             │
│     Output copy-ready text                                 │
│     Append to history.yaml                                 │
│     Save to last-post.md for /thoth regenerate             │
└────────────────────────────────────────────────────────────┘

Repository layout

thoth/
├── .claude-plugin/              # Plugin marketplace metadata
│   └── plugin.json
├── .github/workflows/           # CI (publishes CLI on release)
│   └── publish.yml
├── cli/                         # npm package (thoth-skill CLI)
│   ├── package.json
│   ├── bin/thoth.js             # zero-deps installer
│   ├── assets/skill/            # bundled skill for --offline installs
│   └── README.md
├── skill/                       # THE skill — copied to ~/.claude/skills/thoth
│   ├── SKILL.md
│   ├── references/
│   │   ├── brand-archetypes.md
│   │   ├── tone-spectrum.md
│   │   ├── hot-take-exercises.md
│   │   ├── onboarding-interview.md
│   │   ├── content-mix.md
│   │   ├── post-types.md
│   │   ├── story-arcs.md
│   │   ├── git-safety.md
│   │   ├── example-posts.md
│   │   ├── persona-template.md
│   │   └── commands.md
│   ├── personas/                # Your voice data lives here
│   │   └── README.md
│   └── scripts/
├── install.sh                   # curl | bash installer
├── skill.json                   # skill metadata
├── CLAUDE.md                    # dev guide
├── CONTRIBUTING.md
├── LICENSE
└── README.md                    # this file

Hard rules (never violated)

  1. Never publishes on your behalf. Output is text.
  2. Never names a connected git repo, quotes code, or promotes the product being built.
  3. Never fabricates specifics (numbers, people, events) not in your persona or inputs.
  4. Never starts a post with a LinkedIn cliché ("Excited to share", "I'm humbled to announce").
  5. Never uses more than 4 hashtags. Never tags people for engagement bait.
  6. Never drifts from your documented archetype and tone.

If the draft trips any rule, Thoth rewrites. If it can't rewrite to pass, it tells you why.


Privacy

Everything stays on your machine. Thoth writes to ~/.claude/skills/thoth/personas/ and nowhere else. It does not transmit persona data, post history, or inputs anywhere. No telemetry.

To back up: copy personas/. To migrate machines: copy personas/ to the new install.


Contributing

PRs welcome. See CONTRIBUTING.md and CLAUDE.md (the dev guide).

High-value contributions:

  • New archetype example-posts (see skill/references/example-posts.md for format).
  • Translations of the onboarding interview.
  • Adapters for other AI tools (--ai targets beyond Claude/Cursor/Windsurf).

Credits

  • Brand archetypes — Carol S. Pearson & Margaret Mark, The Hero and the Outlaw (2001), building on C.G. Jung.
  • Tone of voice model — Kate Moran et al., Nielsen Norman Group UX research.
  • Story-arc and copy frameworks — Six Thinking Hats (de Bono), Ghost/Truth/Lie/Happy Ending (classic copywriting canon).

License

MIT.


Publishing checklist (first release):

  1. git init && git add . && git commit -m "feat: thoth v1.0.0"
  2. gh repo create NirvanaGuha/thoth --public --source=. --push
  3. Set the NPM_TOKEN secret in the repo settings (Settings → Secrets and variables → Actions). Get a token at https://www.npmjs.com/settings/YOUR-NPM-USER/tokens.
  4. Copy the sidebar description and Topics from ABOUT.md into the repo's About settings.
  5. Cut a release: gh release create v1.0.0 --generate-notes. The publish workflow will push thoth-skill to npm.

About

An open-source Claude skill that builds a unique, consistent LinkedIn voice. Framework-driven persona interview (Jungian archetypes + NN/g tone model + anti-voice) → daily post generation on a 30/25/20/15/10 content mix. Works for one person or a whole team. Install with one npx command.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors