Model or dataset
yilujian/easy-writing avatar
yilujian/easy-writing

易创 (easy-writing): a local-first AI web novel studio for Chinese serial fiction authors

易创:纯本地、开源的 AI 网文写作桌面软件,支持小说创作、AI 辅助写作、BYOK 与自定义提示词。

574 stars95 forksVueAGPL-3.0

At a glance

What is it?
易创 is an AGPL-3.0 Tauri desktop app that keeps manuscripts in a local SQLite file and sends AI requests straight from your machine with your own API key. It is built for Chinese web novel workflows, and that focus is both its strength and its limit.
Who is it for?
Adopt 易创 if you write Chinese web serials and want your drafts in a local SQLite file with AI calls billed to your own provider key. Skip it if you need English-language drafting, collaborative editing, or a signed macOS build, since the README notes the app is not notarized.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 5 days ago.
What is it written in?
Mainly Vue, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 16, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What 易创 solves for serial fiction writers on Chinese platforms

The README positions 易创 for authors on 起点, 番茄, 七猫 and 晋江, and says the client was refactored from a long-running online writing platform, so the editor, autosave and chapter management have already been through daily use by working web novel authors. That lineage explains the feature list: volume and chapter trees with drag-and-drop ordering, full-book search, per-chapter history versions, a local profanity word list, and word count tracking that separates hand-written output from AI output. A serial author juggling a 300-chapter book cares about those things more than about prose generation.

The second problem is data custody. The README states that works, settings and writing records live on your own machine, that the desktop build stores everything in a single SQLite database file, and that timed automatic backups produce txt plus json. There is no registration or login, and basic writing works offline. For an author whose manuscript is their income, that is a different proposition from a browser-based AI writing service where the draft sits on someone else's server.

The third is cost control. 易创 is BYOK: you configure DeepSeek, 通义千问, 智谱, Kimi, OpenAI or any OpenAI-compatible endpoint, the key stays in local configuration, and requests go from your computer to the provider you chose. Ollama and LM Studio work with an empty API key. The software is free; the README is explicit that AI charges come from your provider by usage.

Editor, SQLite store and a direct line to your model provider

The stack is Vue 3, TypeScript, Vite, Pinia, Element Plus, TipTap 3 and Tauri 2, per the README. The editor is TipTap, which is why the feature list includes rich text, find and replace, and a reading preview that scrolls in sync with the manuscript. Persistence is the interesting part: the README describes 160ms local writes while typing plus a snapshot when the window closes, so an abnormal exit can be recovered on reopen. Each chapter also keeps automatic history versions.

AI flows through configuration rather than a bundled service. Every model entry has a thinking-mode switch, and the README explains why: reasoning models spend their output budget on thinking, which makes structured tasks such as outline generation slow or error-prone. Turning thinking off is described as fastest and most stable; keeping it on requires raising maximum output tokens above 32768. The app ships the provider-specific parameter spellings for DeepSeek, 智谱, 火山方舟, 千问, 硅基流动, OpenRouter, Gemini and Ollama, and an extra request parameters field covers anything else.

Prompts are plain markdown files on disk. The README says they live under 文稿/易创提示词, can be edited visually in the app or directly as files, and that sampling temperature is adjustable per scenario. That is an unusually open design for a consumer writing tool, and it means prompt changes survive app updates as long as you keep the files.

The ranking feature is the odd one out. A built-in crawler pulls leaderboards from 80+ sources including 起点, 番茄 and 七猫, using your own network, storing data locally, with trend analysis, tag analysis and CSV export. It only works in the desktop build because it needs system capabilities the browser mode lacks.

Installing 易创 from Releases and writing your first chapter

The README points to the GitHub Releases page for installers: a .dmg for macOS and an .exe for Windows. The macOS build is not notarized by Apple, and the README gives the workaround for the resulting warning, which you run in Terminal after confirming the package came from this repository.

bash
xattr -cr /Applications/易创.app

On Windows, SmartScreen may block the installer; the README says to click more information, then run anyway. After launch the app checks for new versions at most once a day through the public GitHub API and shows a notification linking to the download page.

For a first real use, install, open the app, and create a work with 新建作品. Writing needs no configuration at all. To turn on AI, open 模型管理 in the sidebar, pick a provider preset such as DeepSeek, paste your own API key, test the connection, save, and set that model as default. If you run a local model instead, the README says to leave the API key blank. If the built-in prompts do not fit your genre, open 提示词管理, edit the scenario you care about, and use the restore-defaults button when an experiment goes wrong. You should see the edited prompt take effect on the next AI call, and every call recorded in the AI call ledger with scenario, character count, tokens and success or failure.

Where 易创 gets in the way: signing, local endpoints and scope

The macOS distribution is unsigned. The README states the app has not gone through Apple signing and notarization, so first launch can report the package as damaged or from an unidentified developer, and the fix is a Terminal command. That is a real friction point for anyone who is not comfortable running xattr, and it is a supply-chain decision the project has made deliberately or has not yet gotten to.

Local model endpoints have their own failure mode. The FAQ describes a 403 with Ollama or LM Studio even when the API key is empty, caused by the local service filtering by request origin. The README says the desktop build no longer sends origin information and recommends updating; for older versions it suggests setting `OLLAMA_ORIGINS=*` and restarting Ollama, or allowlisting `http://tauri.localhost` and `tauri://localhost` in other services. If you are pinned to an older build, expect to debug this.

Reasoning models are a second trap. The FAQ warns that DeepSeek V4 and Qwen-style thinking models can make outline generation fail or crawl because thinking consumes the output limit. The mitigation is per-model: turn thinking off, or raise maximum output tokens above 32768. A writer who does not read that FAQ will blame the app.

Scope is the last constraint. The interface, documentation and target platforms are Chinese, and the README's own framing is Chinese web serial fiction. There is no collaboration, no cloud sync, and the browser mode is described as a development preview that stores data in IndexedDB and localStorage, where clearing browser data costs you the manuscript unless you exported first.

易创 compared with a general-purpose AI writing assistant

A general assistant such as an editor plugin or a chat-based writing tool starts from the text and treats structure as an afterthought. 易创 starts from the book: volumes, chapters, outlines, characters with a relationship canvas, settings, timeline and story line are first-class objects, and the AI features are wired into them. 工作流一键建书 walks from idea to outline to settings to book creation to chapter-by-chapter generation with resumable checkpoints, which is a pipeline, not a chat box.

The difference shows up in what each tool cannot do. A chat assistant will happily draft an English essay; 易创's prompts, interface and target audience are Chinese serial fiction, and the README's own FAQ is organized around platform conventions. Conversely, 易创's local SQLite store, per-chapter history, and separated hand-written versus AI word counts are things a hosted assistant generally does not expose.

The closest structural alternative is assembling the same workflow yourself from a local model plus a plain text editor plus a script. That gives you full control and no GUI, and you would be rebuilding chapter trees, version history, autosave and the prompt file layout that 易创 already ships. For an author who wants to write rather than maintain tooling, that trade is usually not worth it.

Licence, upgrade cadence and what AGPL-3.0 means for a fork

The project is AGPL-3.0, and the README states the terms plainly: you may use, modify and distribute it, but a modified version, including one hosted as a network service for others, must be released under the same licence. The package.json declares AGPL-3.0-only. If you plan to embed 易创 in a commercial product, the README lists non-AGPL commercial licensing, private deployment, OEM and secondary development as services available through the contact email, which is the route the project itself points to rather than a licence exception you can assume.

Upgrade cost is low but not zero. Releases move quickly: v1.0.7 on 2026-09-06, v1.0.8 on 2026-09-11, v1.0.9 on 2026-09-13, and the last push to the repository was on 2026-09-13. The in-app updater checks the public GitHub API at most once a day, so staying current is a notification click rather than a manual download. The parts you customize are the parts most likely to need attention across versions: prompt markdown files live outside the app in 文稿/易创提示词, and the README gives a restore-defaults button, which implies the shipped prompts can change between releases. Custom prompts are yours to re-merge.

The repository is not archived, and the last push was on 2026-09-13, four days before this writing. That is the fact to weigh, not a claim about long-term support.

Editorial conclusion

Adopt 易创 if you write Chinese web serials and want your drafts in a local SQLite file with AI calls billed to your own provider key. Skip it if you need English-language drafting, collaborative editing, or a signed macOS build, since the README notes the app is not notarized. Before committing a book to it, create one work, write a chapter, close the window mid-sentence, reopen it and confirm the 160ms autosave plus close-window snapshot restored your text, then run one AI polish to see the request land in the AI call ledger.

Frequently asked questions

Does 易创 cost money to use?

The software itself is free and open source under AGPL-3.0. AI usage is billed by whichever model provider you configure, at that provider's rates.

Where is my API key stored in 易创?

The README says the key is kept in your local configuration, and that when you call AI the key and request content go directly from your computer to the provider you selected.

Why can't I use the ranking feature in the browser version of 易创?

The crawler needs system capabilities that only the desktop build provides. In the desktop app it fetches leaderboards over your own network and stores the data locally.

How do I migrate 易创 data to a new computer?

Export the whole book as JSON from the bookshelf, including reference material, and import it on the new machine. Alternatively, copy the application data directory directly.

Why does 易创 report no access permission when connecting to a local Ollama or LM Studio model?

Leave the API key empty. If a 403 persists, the local service is likely filtering by request origin; the README says current desktop builds no longer send origin information, and older versions can set OLLAMA_ORIGINS=* and restart Ollama.

Official sources

  1. Issues
  2. License: AGPL-3.0
  3. README
  4. Releases
  5. yilujian/easy-writing on GitHub
Community notes

Community notes