THOTH → dwtj → Djehuty ( pronounced Jeh - hoo - tee )

Write like
yourself.
At scale.

Thoth learns your voice, your knowledge, your publishing patterns; then helps you write original technical content that sounds like you, not an LLM.

$ npm install -g thoth-cli

Free forever with local Ollama; no API key required.   Your data never leaves your machine.

thoth — zsh

Three profiles.
One voice.

Thoth builds a model of you in three dimensions.
- What you know
- How you communicate
- What you've published.
Then uses that model to generate content that is unmistakably you.

01
🧠

Knowledge Profile

What you know.
- Extracted from your repos, architecture docs, and technical notes.
- Powers factual accuracy and real examples.

Architecture notes Repository docs Technical journals
02
🎙️

Voice Profile

How you communicate.
- Tone, pacing, vocabulary, storytelling rhythm; all extracted from essays, journals, and reflections.

Personal essays Journals & reflections Blog drafts
03
📄

Publication Profile

What you've built publicly.
- Tracks article relationships, series continuity, and your publishing evolution over time.

Medium articles Published series Article history
01

Initialize

Creates a local SQLite database at ~/.thoth/. No cloud. No account.

$ thoth init
02

Import your sources

Point Thoth at your notes, repos, or articles. It chunks, embeds, and stores locally.

$ thoth import voice ./journals
03

Generate your profiles

Thoth analyses your imports and builds the three identity profiles. Runs once, updates on demand.

$ thoth profile generate
04

Research and draft

Give Thoth a topic. It researches, outlines, and generates an article in your voice — 8 to 10 minute reads, split automatically into series if needed.

$ thoth draft --topic "Offline First"
thoth — demo
init
import
profile
draft
$thoth init
✦ Thoth v1.0.0
Creating database at ~/.thoth/thoth.db
Running migrations...
✓ Database ready
✓ Vector store initialised
 
No AI keys detected.
Falling back to Ollama (local).
✓ Ollama connected — llama3.2
 
Run: thoth import voice <path>
$thoth import voice ./essays
Scanning ./essays...
Found 14 markdown files
 
Chunking content (512 tokens, 50 overlap)
✓ 127 chunks created
Generating embeddings via Ollama...
✓ 127 embeddings stored
 
$thoth import knowledge ./architecture
Found 8 files
✓ 73 chunks embedded
$thoth profile generate
Analysing voice sources (127 chunks)...
✓ Voice profile generated
 
  Tone cinematic, second-person
  Pacing deliberate, story-first
  Vocabulary technical with metaphor
 
Analysing knowledge sources (73 chunks)...
✓ Knowledge profile generated
✓ Publication profile generated
 
Identity engine ready.
$thoth draft --topic "Offline First Mobile Apps"
Researching topic...
Sourcing: architecture blogs, engineering case studies
✓ Research package built (12 sources)
 
Applying voice profile...
Applying knowledge profile...
Generating outline → draft...
✓ Article generated (1,640 words, ~9 min read)
 
Saved: ./drafts/offline-first-mobile-apps.md
Run: thoth publish --topic "Offline First Mobile Apps"

Your data.
Your machine.

Thoth is a CLI tool.
Everything — your profiles, embeddings, drafts; lives in a SQLite database on your own filesystem.

🔒

Local by default

All data is stored at ~/.thoth/thoth.db. Nothing is sent to Thoth servers; there are none.

🤖

Ollama is the default provider

No API key, or cost, or data leaving your network. Runs entirely on your hardware. OpenAI and Gemini are opt in for higher quality.

🔑

You control which provider sees your data

If you opt into OpenAI or Gemini, only your embeddings and prompts are sent; never your raw source files.

📦

Open source

The full source is on GitHub. Audit what runs. Fork it. Own it entirely.

Ollama — free
Install 01
# Node 18+ required
npm install -g thoth-cli
Local setup (no API key) 02
# Pull required Ollama models
ollama pull llama3.2
ollama pull nomic-embed-text

thoth init
Import & profile 03
thoth import voice ./notes
thoth import knowledge ./docs
thoth profile generate
Write your first article 04
thoth draft --topic "BLoC vs Riverpod"

# Optional: upgrade provider
export GEMINI_API_KEY=AIza...
thoth draft --topic "BLoC vs Riverpod"