English | 简体中文
An AI-powered writing studio for novelists, screenwriters, and storytellers.
Author is an AI-assisted creative writing tool designed for fiction writers. It brings together a professional rich text editor, an intelligent AI writing assistant, and a complete worldbuilding management system — all in one seamless experience.
🌐 Live Demo: author-delta.vercel.app
📦 Gitee Mirror (国内镜像): gitee.com/yuanshijilong/author
I've been using AI for a while now — from the early days of ChatGPT 3.5, to Gemini 2.0 Exp Thinking, and eventually settling on Gemini 2.5 Pro Thinking after the ChatGPT o1 era.
As a novelist, I care deeply about AI's ability to handle language. Novels are long, so I need models with strong context windows and high recall. But what truly moved me about Gemini was its characters — there were moments when the words on screen made me want to cry. That's emotional resonance. I need writing that embraces the full complexity of being human.
Then the coding-focused trend took over. Every company started optimizing for code. I thought it was a good thing — until Gemini 3.1 Pro started describing its characters in biological and psychological terminology. Code-optimized models had begun deconstructing humans into biological components. Claude Opus 4.6 was even worse: every character spoke with peak efficiency — concise, economical, not like a human, but like a machine wearing a human mask.
I could no longer see the models understanding human complexity. They didn't care about what humans do — only what humans are. They stopped showing personality through behavior and emotion, and instead slapped simple definitions onto human beings.
I watched the versatility of these models being gutted. I don't want us to live in a cold world of code. I built this project so that AI can preserve our own language — beyond the mechanical operators.
To all the authors, screenwriters, hobbyists, readers, and players who use this project: I hope you can bring out the best of your craft, create works with a human touch, and keep the flame of our language alive. 🔥
- Rich text editor powered by Tiptap — bold, italic, headings, lists, code blocks, and more
- Word-style pagination with WYSIWYG layout
- KaTeX math formula support
- Customizable fonts, font size, line height, and colors
- Real-time word / character / paragraph count
- Multi-provider support: ZhipuAI GLM-4 / DeepSeek / OpenAI / Google Gemini / Claude / SiliconFlow / Volcengine / Moonshot + custom endpoints
- Smart model fetching — one-click fetch full model list from API, auto-compatible with various proxy formats (
/models,/v1/models), with timeout protection - Continue / Rewrite / Polish / Expand — one-click generation
- Ghost Text streaming preview — see AI output in real-time like Cursor, with accept/reject
- Free chat mode — discuss plot, characters, and settings with AI
- Context engine — AI automatically reads your character profiles, worldbuilding, and previous chapters to maintain story consistency
- Tree-structured management for characters, locations, items, outlines, and writing rules
- Three writing modes: Web Novel / Literary Fiction / Screenplay, each with dedicated fields
- Color-coded categories with glassmorphism design
- Settings automatically injected into AI context
- Local-first — all data stored in browser IndexedDB, never uploaded to servers
- Snapshot system — manual/auto versioning with one-click rollback
- Project import/export — full project JSON backup
- Markdown export — single chapter or entire book
- 🇨🇳 简体中文 / 🇺🇸 English / 🇷🇺 Русский
- Eye-comfort warm tones / dark mode toggle
- Interactive onboarding tour
- Help panel with keyboard shortcuts
No Node.js required! Download the pre-built installer:
Just install and start writing. All features work out of the box.
💡 To build the desktop app from source:
npm run build && npx electron-builder --win
- Node.js 18+
- npm 9+ or pnpm 8+
# Clone the repository
git clone https://github.com/YuanShiJiLoong/author.git
# Or use Gitee mirror (faster in China)
# git clone https://gitee.com/yuanshijilong/author.git
cd author
# Install dependencies
npm install
# Or use pnpm (no phantom dependency issues)
# pnpm install
# pnpm approve-builds # Required by pnpm to activate native packages
# Configure environment variables (optional)
cp .env.example .env.local
# Edit .env.local with your API keys
# You can also configure them in the app's Settings panelnpm run devOpen http://localhost:3000 to start writing.
npm run build
npm startDownload the latest installer from the Releases page and install it over your current version. Your data is stored in the browser/Electron profile and will not be lost.
git pull origin main
npm install # or: pnpm install && pnpm approve-builds
npm run devIf you deployed via Vercel fork, just sync your fork with upstream on GitHub — Vercel will automatically redeploy.
Author supports multiple AI providers. Configure via environment variables or in-app settings:
| Provider | Env Variable | Get API Key |
|---|---|---|
| ZhipuAI (GLM-4) | ZHIPU_API_KEY |
open.bigmodel.cn |
| Google Gemini (Native) | GEMINI_API_KEY |
aistudio.google.com |
| Google Gemini (OpenAI-compat) | GEMINI_API_KEY |
aistudio.google.com |
| DeepSeek | In-app config | platform.deepseek.com |
| OpenAI | In-app config | platform.openai.com |
| OpenAI Responses | In-app config | platform.openai.com |
| Claude (Anthropic) | CLAUDE_API_KEY |
console.anthropic.com |
| SiliconFlow (硅基流动) | In-app config | siliconflow.cn |
| Volcengine (火山引擎/豆包) | In-app config | console.volcengine.com |
| Moonshot (Kimi) | In-app config | platform.moonshot.cn |
| Custom (OpenAI-compat) | In-app config | Any OpenAI-compatible endpoint |
| Custom (Gemini format) | In-app config | Any Gemini-compatible endpoint |
| Custom (Claude format) | In-app config | Any Claude-compatible endpoint |
💡 No API key required for most editing features. AI features need at least one provider configured.
Author supports AI-powered web search for real-time information. Different providers handle search differently:
| Provider | Search Method | Extra Setup |
|---|---|---|
| Gemini (Native) | Built-in Google Search | No extra config needed |
| OpenAI / OpenAI Responses | Built-in Web Search | No extra config (needs search model) |
| DeepSeek / ZhipuAI / SiliconFlow / Others | External Search API | Search engine Key required |
For providers without built-in search, choose a search engine and enter your API Key:
- Visit tavily.com and create an account
- After login, find your API Key on the Dashboard (format:
tvly-...) - In Author Settings → Web Search → Select Tavily → Paste the Key
Free tier: 1,000 requests/month
- Visit exa.ai and create an account
- Get your API Key from the Dashboard
- In Author Settings → Web Search → Select Exa → Paste the Key
Free tier: 1,000 requests/month — Semantic search optimized for AI use cases
If you've set up a Tavily/Exa proxy pool using multiple free-tier accounts, you can configure a custom API URL in the search settings:
- In Author Settings → Web Search → Search engine config area
- Find the "🔗 Custom API URL (optional)" input field
- Enter your proxy URL, e.g.
https://your-proxy.com - Leave blank to use the official default URL
💡 The system automatically appends
/searchto your URL — no need to add it manually
- All creative data (chapters, settings, snapshots) is stored 100% locally in your browser (IndexedDB) — never uploaded to any server
- API Keys are stored in browser localStorage
When using AI features (continue, rewrite, chat, etc.), the following data passes through the deployer's server on its way to the AI provider:
- Your API Key
- The text content you send to AI
Your Browser → Deployer's Server → AI Provider (ZhipuAI/Gemini/DeepSeek/etc.)
If you're using someone else's deployed public instance, while the deployer promises not to inspect logs, the technical capability to intercept data exists. Therefore:
- ✅ You can use a public instance for a quick trial
⚠️ After trying it, immediately destroy your API Key at your provider's website- 🔐 For real use, fork and deploy your own private instance — then all data only passes through your own server
💡 Deploying your own instance is easy: Fork this repo → One-click deploy to Vercel → Done. Takes less than 5 minutes.
This project is licensed under AGPL-3.0.
In short:
- ✅ Free to use, modify, and distribute
- ✅ Personal and commercial use allowed (as long as you open-source your changes)
⚠️ Modified versions must also be open-sourced under AGPL-3.0 (including network services / SaaS)⚠️ Original copyright notice must be preserved- ❌ Closed-source commercial use is NOT allowed
- Google Antigravity — AI programming partner
- Tiptap — Editor framework
- Next.js — React full-stack framework
- Zustand — State management
- KaTeX — Math rendering