The App Is Open. The Part That Pays for It Isn’t.

Shiro’s desktop app, command-line tool and shared packages are on GitHub under MIT and AGPL-3.0. The web app and the Shiro Cloud service are closed, and Cloud’s subscriptions pay for the rest. Every line that touches a local project is there for you to read.

What’s in the Repository

The code is at github.com/Quentin967/shiro.

Path Holds Licence
packages/core The project format, the binder and metadata model, World mention detection, the compile engine MIT
packages/editor The TipTap editor, typography rules in English and French, CriticMarkup, the Yjs binding MIT
packages/sdk The plugin SDK and API client MIT
packages/ui Views, components and the design system AGPL-3.0
packages/ai The context engine, tool prompts in English and French, model adapters AGPL-3.0
apps/desktop The Tauri shell for Mac, Windows and Linux AGPL-3.0
apps/cli The shiro command-line tool AGPL-3.0
apps/site This website, whose typos are therefore open to contributions AGPL-3.0

The split has a practical effect. MIT on the format and the editor means anyone can write a tool that reads a Shiro project, without asking us. AGPL on the app means that someone who ships a changed Shiro, or runs one for other people over a network, has to publish their changes under the same licence. That’s a summary from people who aren’t your lawyer, and the LICENSE file in each package is what counts.

It also means the privacy claims on this site can be checked. apps/desktop/e2e/privacy.spec.ts is the test that fails when the desktop app makes a request it shouldn’t. Read it, and change it if you can think of a stricter one.

What’s Closed, and Why

Two things: the web app, and the Shiro Cloud service behind it, which covers accounts, sync, billing and metered hosted AI. They live in a private repository that imports the same packages.

The reason is money. A server costs something every month, however the second act is going, and Cloud’s plans pay for that and for the work on everything in the table above.

It follows that you can’t run your own Shiro Cloud, and we’d rather you heard that here than after an afternoon looking for the server. What you keep without it is the whole desktop app: a local project on your disk, with a local model if you want one, doesn’t run a line of closed code.

Build It From Source

You need Node 22, pnpm 10 and, for the desktop shell, Rust and the Tauri 2 prerequisites.

git clone https://github.com/Quentin967/shiro
cd shiro
pnpm install
pnpm dev            # the client in a browser at http://localhost:1420
pnpm tauri dev      # the desktop app
pnpm test           # unit tests (Vitest)
pnpm e2e            # browser tests (Playwright)
pnpm lint && pnpm typecheck

pnpm dev keeps a sample project in memory and saves nothing, so it’s a poor place to start your novel. pnpm tauri dev is the real app. Its first run compiles the Rust shell, which leaves time to reconsider your ending.

The shiro command-line tool is built from source too:

pnpm --filter shiro build
node apps/cli/dist/cli.js --help

It compiles, exports, validates and backs up projects from a terminal, verifies authorship reports, and serves a project to AI agents over MCP.

Contributing Means Signing a CLA

Every contribution needs a signed contributor licence agreement before it can be merged, and the CLA assistant asks for it on your first pull request. The shared packages also ship inside the closed web app, which is only possible if Shiro holds the rights to every contribution. If you’d rather not grant that, fair enough: the licences still let you fork.

Before opening a pull request, check that pnpm lint, pnpm typecheck, pnpm test and pnpm e2e pass. Every interface string goes in both en.ts and fr.ts, with colours, type and spacing taken from the design tokens and both themes looked at. A test will fail your pull request over one missing no-break space before a French colon. It treats everybody the same. CONTRIBUTING.md has the full list.

The Name Isn’t Included

The name Shiro and its logo are trademarks, and the licences don’t cover them. Forks may use the code and not the name. You think up names for characters all day, so this shouldn’t hold you back for long.

The Questions People Ask

Is Shiro open source?

The desktop app, the command-line tool and the shared packages are, under MIT and AGPL-3.0. The web app and the Shiro Cloud service are closed.

Can I use Shiro’s code in my own app?

Yes, under its licence. The core, editor and sdk packages are MIT, which asks for little beyond keeping the notice. The ui and ai packages, the desktop app and the command-line tool are AGPL-3.0, so a changed version you distribute or run for others has to publish its source. In neither case may you call it Shiro.

Can I host my own Shiro Cloud?

No. The server’s code isn’t published. Local projects in the desktop app don’t need it at all.

Why is there a contributor licence agreement?

The shared packages also ship inside the closed web app, which is only possible if Shiro holds the rights to every contribution.

And So the Writer, Having Read This Far Down a Website About Writing, Opened a Blank Page at Last.