Skip to content

01 Getting Started

John Williams edited this page Mar 16, 2026 · 1 revision

Getting Started

Ghost Writer is an AI content engine that produces human-quality writing calibrated to pass AI detection systems. This guide walks you through installation, prerequisites, and your first content generation.


Prerequisites

Before you begin, ensure you have:

Requirement Details
Node.js Version 18 or higher
OpenAI API Key For GPT-5.4 content generation
GPTZero API Key For AI detection validation (optional but recommended)
Pangram API Key For Pangram Labs detection (optional)
Originality.ai API Key For plagiarism + AI detection (optional)

All three detection APIs (GPTZero, Pangram, Originality) run in parallel when enabled. Content passes only when all configured detectors return human-like scores.


Installation

1. Clone the Repository

git clone https://github.com/itallstartedwithaidea/writing-agent.git
cd writing-agent

2. Install Dependencies

npm install

3. Link for Local Development (Optional)

If you're developing the CLI alongside other tools:

npm link

4. Copy and Configure

Create a config file from the template:

cp config/local.yaml.example config/local.yaml

Edit config/local.yaml and add your API keys:

# config/local.yaml

openai:
  apiKey: "sk-..."

gptzero:
  apiKey: "your-gptzero-api-key"

pangram:
  apiKey: "your-pangram-api-key"

originality:
  apiKey: "your-originality-api-key"

Security: Never commit config/local.yaml to version control. Add it to .gitignore.


Quick Start Commands

Generate Content (CLI)

ghost write --type linkedin --topic "Why PMax works better with brand campaigns"

Common Content Types

Type Example
LinkedIn post ghost write --type linkedin --topic "Your topic"
Twitter/X thread ghost write --type twitter --topic "Your topic"
Reddit post ghost write --type reddit --topic "Your topic"
Blog post ghost write --type blog --topic "Your topic" --length 1500
Email ghost write --type email --topic "Your subject"
Substack ghost write --type substack --topic "Your topic"

With Additional Options

ghost write --type linkedin --topic "Topic" --voice john-williams --length 500 --context "B2B SaaS audience"

Config File Setup

The config/local.yaml file controls:

  • API keys — OpenAI, GPTZero, Pangram, Originality
  • Default voicejohn-williams, agency, technical, or casual
  • Default content type — e.g., linkedin, blog
  • Detection thresholds — AI probability targets (default: <30%)

Example full config:

openai:
  apiKey: "sk-..."

gptzero:
  apiKey: "gptzero-key"

pangram:
  apiKey: "pangram-key"

originality:
  apiKey: "originality-key"

defaults:
  voice: john-williams
  type: linkedin
  length: 500

detection:
  aiThreshold: 0.30
  plagiarismThreshold: 0.05

Web App Alternative

If you prefer not to run the CLI, use the hosted app:

The web app supports:

  • Generate content with 18 platform types
  • Check existing text (grammar, readability, AI detection)
  • Import custom voice profiles from writing samples

API keys are stored in your browser (AES-256 encrypted in sessionStorage) and sent only to the respective API providers — never to a central server.


Next Steps

Clone this wiki locally