Raw2Draft

Warning

This app runs Claude Code with --dangerously-skip-permissions (YOLO mode). All AI-initiated actions (file writes, shell commands, etc.) are automatically approved without prompting. Use at your own risk and only with content you trust.

A markdown editor with an integrated Claude Code terminal for macOS. I built this for my own writing workflow.

Will it work for you? Probably not out of the box. My recommendation is to poke around, then use this repo as context to build your own tool that works the way you like.

The starter skills and knowledge base

Raw2Draft ships with a minimal set of starter skills and a starter knowledge base. These exist so you can see how things fit together. They are not what I use. I point Raw2Draft at my own skills and knowledge base, built up over time, and that is what makes the agent output good.

Skills are procedures. They tell the agent what to do. A knowledge base tells it how to do things well: writing style guides, taste decisions, critique patterns, domain expertise. Without that context, skills produce generic results.

Any knowledge base works. A wiki directory, a set of markdown files, a well-written CLAUDE.md. I manage mine with a tool called Agent KB, which I hope to release soon.

Fork the starter repos and make them your own, or point Raw2Draft at your own repos in Settings. The starters are scaffolding.

Installation

Requires just and Xcode.

Loading...

This compiles a Release build, copies it to /Applications/Raw2Draft.app, and installs the draft CLI to ~/.local/bin/draft (make sure ~/.local/bin is on your PATH).

First launch

  • Content Studio mode activates automatically when you open a directory containing a posts/ subdirectory
  • API keys: Add via Settings (Cmd+,), or edit ~/.raw2draft/.env directly

Features

This is a personal tool. Some things are well-tested and used daily, some are experimental, some are brand new and barely tested. It all ships together. Use what works for you.

  • Split-pane markdown editor (CodeMirror 6) + Claude Code terminal
  • Content Studio mode for managing blog posts and content projects
  • Live markdown preview with heading outline
  • Agent skills and reference docs cloned from public starter repos on first launch
  • Blog post browser with draft/published/scheduled status
  • Command palette (Cmd+P) for discovering shortcuts and skills
  • Drag-and-drop image upload to S3
  • Social media content generation and scheduling
  • Video editing skills (DaVinci Resolve integration)
  • Carousel rendering
  • Google Docs and YouTube integration

API keys

Configure in Settings or edit ~/.raw2draft/.env directly.

KeyWhat it's for
GEMINI_API_KEYAI provider for Claude CLI
OPENAI_API_KEYAI provider for Claude CLI
LEMONFOX_API_KEYTranscription
ASSEMBLYAI_API_KEYTranscription
AWS_ACCESS_KEY_IDImage hosting (S3)
AWS_SECRET_ACCESS_KEYImage hosting (S3)
AWS_REGIONImage hosting (S3)
S3_BUCKETImage hosting (S3)
UPLOADPOST_API_KEYSocial media scheduling

Blog posts

Content Studio mode includes a blog post browser. It expects a posts/ directory inside your content root, with each post as a dated directory containing a blog.md file:

Loading...

Frontmatter

Each blog.md starts with YAML frontmatter between --- delimiters. The app uses these fields:

Loading...
FieldRequiredDescription
titleNoDisplay name in the post browser. Falls back to the directory slug.
dateNoYYYY-MM-DD format. Used for sorting, filtering recent posts, and determining published vs scheduled status.
sectionNoGrouping label. Populates the section filter dropdown.
draftNotrue or false. Draft posts show a gold indicator; omitting defaults to published.

You can include any additional frontmatter fields your blog needs (e.g., description, categories, author, image). The app ignores them but preserves them in the file.

A post with a future date and draft: false shows as "scheduled" (indigo indicator). Otherwise it's "published" (green).

How Claude Code integration works

There is no special Claude Code integration. The app runs a terminal and launches Claude Code with no app-specific modifications. It uses agent skills for additional behavior.

Skills and knowledge base

On first launch, Raw2Draft clones two minimal starter repos into ~/.raw2draft/context/:

These are passed to Claude Code via --add-dir so skills are available as /slash-commands and reference docs are in context. They are intentionally minimal: enough to see how things work, not enough to produce great output on their own.

Customizing

Fork the starter repos or point Raw2Draft at your own repos in Settings. That's what I do. My personal skills and knowledge base are what make the agent useful. The starters are scaffolding.

The app won't overwrite your local changes on subsequent launches, so you can also edit the cloned repos in place at ~/.raw2draft/context/.

Resetting

To re-clone the starter repos (replacing your local changes):

Loading...

Or press Reset to Defaults in Settings.

Just recipes

Loading...

CLI

The draft CLI lets you open files and directories from any terminal:

Loading...

License

MIT. See LICENSE for details.