Expert Content Writer
CLI Guide

Everything you need to install, configure, and run the Local Developer Engine on your own machine. Six commands, five pipeline phases, zero AI smell.

Installation

Two options — standalone binary (no Python required) or pip install.

Option A — Standalone Binary

Linux
chmod +x ecw-1.6.0-linux-x86_64
sudo mv ecw-1.6.0-linux-x86_64 /usr/local/bin/ecw
ecw --version
macOS (Apple Silicon)
chmod +x ecw-1.6.0-macos-arm64
sudo mv ecw-1.6.0-macos-arm64 /usr/local/bin/ecw
ecw --version
Windows
# Rename to ecw.exe and place on your PATH
ecw --version

Option B — Python (3.10+)

pip install .
ecw --version

The pip install gives you the full source — extend, modify, and contribute.

License Activation

After purchasing on Gumroad you'll receive a license key in your receipt email. Activate it once:

ecw activate YOUR-LICENSE-KEY

Your license is cached locally at ~/.config/ecw/license.json and re-verified every 7 days. If you go offline, a 30-day grace period keeps you writing.

Check your license status anytime:

ecw license-status

Only write and preset-build require a license. Commands like presets, formats, and --help are always available.

API Key Setup

ECW calls LLM APIs directly with your own key — no middleman, no markup.

Anthropic (default)
export ANTHROPIC_API_KEY=sk-ant-your-key-here

# Add to ~/.bashrc or ~/.zshrc to persist across sessions

Or use the generic ECW_API_KEY env var, which works across all providers. See Multi-Model Support for OpenAI, Gemini, and Ollama setup.

Quick Start

Write your first article in one command:

Using a preset
ecw write \
  --topic "Why Most Content Marketing Fails" \
  --preset "Professional Blog" \
  --format blog-post \
  --words 1800 \
  --keywords "content marketing, AI writing"
Using reference URLs (extracts style automatically)
ecw write \
  --topic "Kubernetes Security Best Practices" \
  --urls https://example.com/article-1 https://example.com/article-2 \
  --format technical-brief

The pipeline runs 5 phases automatically: style extraction → skeleton → fat draft → fact-check → executive audit. A final mechanical verification runs 13 automated checks (sentence length, AI phrase detection, readability, and more).

Output

Everything lands in content-workspace/:

content-workspace/
├── published/       # Final articles (Markdown)
├── drafts/          # Intermediate drafts
├── style-profiles/  # Extracted style JSON
├── fact-checks/     # Fact-check reports
└── runs/            # Run manifests

All Commands

ecw write— Run the full 5-phase pipeline

FlagRequiredDescription
--topic TEXTYesWhat the piece is about
--urls URL [URL ...]Yes*Reference URLs for style extraction (1-3). *Not needed with --preset
--preset TEXTNoUse a saved style preset (skips Phase 1)
--format FORMATNoarticle, blog-post, guide, technical-brief, industry-brief, case-study, letter, newsletter
--words INTNoTarget word count
--keywords TEXTNoPrimary + secondary SEO keywords, comma-separated
--output PATHNoCustom output path
--provider NAMENoanthropic, openai, gemini, ollama
--dialect LANGNous, uk, au

ecw preset-build— Build a custom voice preset

FlagRequiredDescription
--name TEXTYesName for the new preset
--files PATH [...]One of*Path(s) to writing sample files
--urls URL [...]One of*URL(s) to scrape writing samples from
--text TEXTOne of*Raw text writing sample
--format FORMATNoDefault format for this preset
--triggers TEXTNoComma-separated trigger phrases
--output PATHNoCustom output path
--provider NAMENoanthropic, openai, gemini, ollama
--dialect LANGNous, uk, au

* At least one input source (--files, --urls, or --text) is required.

ecw presets— List available voice presets

Shows all built-in and custom presets with their default format and trigger phrases. Use --dir PATH to include an extra preset directory.

ecw formats— List available writing formats

Shows all 8 format profiles with word count ranges and structural details.

ecw activate— Activate your license

Pass your key as an argument or run without arguments for interactive activation.

ecw license-status— Check license status

Shows masked key, email, validity, and next verification date.

Preset Builder

The Preset Builder reverse-engineers any writing style into a reusable voice preset. Three input methods:

From files on disk

ecw preset-build \
  --name "My Brand Voice" \
  --files ~/writing/sample-1.md ~/writing/sample-2.md

From URLs

ecw preset-build \
  --name "Competitor Style" \
  --urls https://example.com/post-1 https://example.com/post-2

From pasted text

ecw preset-build \
  --name "Email Voice" \
  --text "Paste your writing sample directly here..."

The builder extracts sentence patterns, vocabulary fingerprints, punctuation habits, paragraph rhythms, and dozens of other style signals. The output is a Markdown preset file you can use with --preset on every future write.

5 Built-in Presets

PresetBest FormatVoice
Professional Blogblog-postClean, authoritative business prose
Casual Conversationalblog-postFirst-person, contractions, newsletter tone
Technical DocumentationguidePrecise, structured, imperative mood
SEO AuthorityarticleResearch-dense, stat-heavy, E-E-A-T
JournalisticarticleInverted pyramid, attribution-heavy

Multi-Model Support

ECW works with four LLM providers. Anthropic is the default and recommended — it produces the best results. But you can switch freely.

ProviderFast ModelCapable Model
anthropicclaude-haiku-4-5claude-sonnet-4-6
openaigpt-4o-minigpt-4o
geminigemini-2.0-flashgemini-2.0-pro
ollamamistral:7bllama3:70b

Provider Setup

OpenAI
pip install expert-content-writer[openai]
export ECW_PROVIDER=openai
export OPENAI_API_KEY=sk-your-key-here
Google Gemini
pip install expert-content-writer[gemini]
export ECW_PROVIDER=gemini
export GEMINI_API_KEY=your-key-here
Ollama (local, free)
pip install expert-content-writer[ollama]
ollama pull mistral:7b && ollama pull llama3:70b
export ECW_PROVIDER=ollama

Override per command with --provider openai. Override models with ECW_FAST_MODEL and ECW_CAPABLE_MODEL.

Writing Formats

Eight format profiles control structure, tone, and length:

FormatTypical Use
articleLong-form informational content (default)
blog-postConversational, opinionated posts
guideStep-by-step how-to content
technical-briefConcise technical overviews
industry-briefMarket/industry analysis
case-studyProblem-solution narratives
letterFormal or personal correspondence
newsletterEmail digest format

Run ecw formats to see word count ranges and structural details for each format.

Cost

You pay Anthropic (or your chosen provider) directly. No markup, no per-article fee, no subscription. The tool itself is a one-time purchase.

~$0.12

per article

~$20/mo

for 150+ articles

$0

with Ollama (local)

Cost is based on Anthropic's Claude pricing for a ~2,000 word article. OpenAI and Gemini costs are similar. Ollama runs locally on your hardware — completely free after setup.

Ready to write?

One-time purchase. Full source access. Use code LAUNCH for $70 off.