Skip to content

macOS · Windows · Linux — local first

The whole story, within reach
of the sentence you are writing.

Linetta is a calm writing studio for novels and web fiction. Outline, characters, places, relationships, plot threads and research live beside the manuscript — in a SQLite file on your own disk, with no account and no mandatory cloud. When you want more, an agent can check your continuity, a scene can become an illustration, and an episode can reach readers. All of it is optional.

  • No account, no subscription
  • The manuscript stays on your disk
  • Korean, English, Japanese
The Linetta workspace: an outline rail, a serif editor holding the opening of a scene, and a right-hand panel with the scene’s character count, targets and synopsis.

§ 01 — What it is

Writing is not project management.

A long story accumulates state. By episode forty, a promise made in chapter three, a debt, and the colour of somebody’s coat are all load-bearing — and none of it is in the paragraph on screen.

Most tools answer that with more ceremony: boards, tags, statuses, a second app to keep current. Linetta answers it by putting the story’s memory beside the sentence — one keystroke away, never in the way.

So the editor stays a quiet serif page. Everything else — outline, characters, plot spine, research, history — is a rail or a panel you open when the sentence needs it, and close when it does not.

§ 02 — The workspace

One room for the whole work.

Every panel is built around the same question: what does this scene need to be consistent with?


The page

A serif page, the outline beside it, and the scene’s own record.

Write scene by scene with the outline within reach and the count where you can ignore it. The right rail holds what you check without leaving the sentence — characters written today, the episode target, the synopsis, the entities this scene mentions.

  • Parts and chapters, or arcs and episodes — Linetta numbers the tree in the language of the interface
  • Per-scene length targets with a live count, beside the work total
  • ZEN empties the room down to the text and a counter
The workspace: an outline rail on the left, a serif editor in the middle, and a right panel showing 442 characters, an episode target and a project overview.

Also in the room

Contextual Edit

Fix a fact everywhere

Change a character, place or relationship once, and Linetta finds the scenes that still carry the old version and walks you through them. No language model involved.

Plot

Threads on a spine

Storylines and beats placed across the outline, so a promise you opened in episode 3 is something you can see rather than something you remember late.

History

Snapshots per scene

Manual and automatic snapshots, restorable. Manual ones, and the ones taken before an agent writes, are kept indefinitely.

Record

Writing pace

A seven-day average and the number of episodes per week it implies. No streaks, no guilt.

§ 03 — Assist

A second reader at the desk.

Everything here is optional and needs an agent you connect — § 06 says how. It reads, checks and proposes; the manuscript changes only when you ask.

Ask the agent

Ask about the passage you selected

Select text and choose Ask the agent. The passage arrives quoted above the message box, and a follow-up like “make it shorter” still knows which paragraph you meant. Asked only a question, the agent changes nothing.

Writer’s Direction

Your direction comes first

A current focus for the next few episodes, and a one-line intent for any scene. Only you write them, and every agent reads them first, as binding. Three written episodes on, the app asks whether the focus still holds.

Continuity checks

Findings that show their work

The agent holds a scene against Story World, your fact cards, earlier scenes and your direction. Every finding must quote the scene exactly and point at something the work really has. The manuscript does not change.

Suggestions inbox

Proposals wait for you

What the agent draws from the manuscript waits here to be accepted, edited or rejected, one at a time. A likely duplicate can become an alias instead. After a Markdown import, Linetta offers to fill Story World this way, with a token estimate first.

Where the story could go

Branches, not canon

Two to five possible continuations side by side: a premise, beats episode by episode, risk badges. Nothing in the outline or the manuscript changes. Pick one and it goes into the agent’s brief as a plan, marked stale once the story moves on.

Images in messages

Show it what you mean

Attach up to four images to a message, 5 MB each. They go to the model with that message only, and the agent can keep one as a character’s reference image. The Claude Code provider takes text only.

§ 04 — Illustrations

Pictures that stay in character.

Off until you choose ChatGPT or Gemini under Settings → Image generation, with its own consent. ChatGPT counts against your plan’s usage; Gemini is billed per image by Google AI. Nothing is drawn until you press Generate.

Draw this scene

From a passage to a picture

Select a passage, describe the moment, pick the characters, then choose a single picture or four panels. Linetta builds the prompt from the scene, the visual sheets and your art style. You can edit it, and what you edit is what goes.

Character sheets

A sheet for every face

Appearance notes and up to eight reference images per character. Drop images in, or take one from the gallery: the face episode 1 got right.

Earlier pictures

The same face in episode 40

Up to two earlier pictures go along after the reference images, those of the same characters first. They appear as thumbnails, and one click leaves a picture out.

Agents ask

An agent cannot draw

It leaves a request card with a prompt, aspect and caption for you to edit. Nothing reaches the image provider until you press Generate.

Gallery

Up to 200 pictures a work

Each keeps the prompt and model it came from. Insert one into a scene, or let it stand for a scene, an episode or a part on the outline.

Everywhere the work goes

Pictures travel with the text

Illustrations are in library backups, inside a Markdown export, in folder and Git sync, and go up with an episode you publish.

§ 05 — Publish

Readers, when you choose.

Linetta Works is an optional reading site for fiction written in Linetta, run by Linetta’s developer. Nothing goes to it until you connect an account, and after that only what you choose to publish.

Visit Linetta Works

Episodes

One episode at a time

Publish from the outline or the command palette. Each episode gets an address, the outline marks it Edited when the text moves on, and publishing again updates the same address. An agent can publish when you ask, once you have connected.

Sheets and cover

Show the world, if you want

Character and world sheets are private until you turn each one on, so you can check it for spoilers first. Pick a cover from your gallery. Notes are never sent.

Share

Tell people

X, Threads and Naver Blog open with the title and link filled in. KakaoTalk and Instagram copy them for you to paste.

What goes

Public, and reviewed

Published text, its illustrations and the sheets you chose are public, and the site sends them to the Anthropic API for content review. Unpublished episodes, notes, fact cards and agent memories are never sent.

§ 06 — Agents

Bring your own agent, or your own key.

Linetta ships no model and no subscription of its own. Connect an agent you already run — Claude Code, Claude Desktop, Codex CLI, Gemini CLI — over MCP, using the subscription you already pay for and no credential to Linetta at all. Or turn on the built-in agent below and give it a provider of your own.

A generic filesystem MCP server can already read and write Markdown. What it cannot assemble is the brief for one scene: where that scene sits in the outline, the summaries above it, the previous scene’s summary, character and relationship briefs, the plot spine, fact cards, memories, and your style and length targets.

That brief is what Linetta hands over, and it is the reason a draft written outside the app comes back without contradicting episode fourteen. The writer keeps the desk, the filing cabinet, and the veto.

Claude Code — one line in your terminal

claude mcp add --transport http linetta http://127.0.0.1:7391/mcp \
  --header "Authorization: Bearer <token>"

When Settings finds Claude Code, Claude Desktop, Codex CLI or Gemini CLI, it offers to connect them in one click through the linetta-mcp stdio bridge, which some builds ship and others do not — Settings says which, and where to get it otherwise. The token is generated when you turn MCP on and can be regenerated or revoked from Settings.

Access

Off

The default. Nothing listens, and nothing is exposed.

Read only

Fifteen read tools. The write tools are never registered, so they do not appear in tools/list and cannot be called.

Full

All thirty-six. A scene write is snapshotted first, and an outline restructuring can be undone in one call.

Thirty-seven tools, not a hundred RPCs

A client’s tool budget is finite and selection accuracy falls as the list grows, so the engine’s RPC surface is not exposed one-to-one. Access can also be pinned to a single work, and Settings → Tool budget shows what each optional group costs and turns it off.

Read 15
  • linetta_get_story_context The curated brief for one scene — the core tool
  • linetta_read_scene Scene text with its content version
  • linetta_get_outline The tree with labels, kinds, status and length
  • linetta_search_manuscript Full-text search across the work
  • linetta_list_works Works, titles, status, scene counts
  • linetta_list_characters Characters, places, objects, concepts
  • linetta_where_does_appear Every scene an entity appears in
  • linetta_get_plot Storylines and beats
  • linetta_get_fact_cards Research notes with their sources
  • linetta_get_character_visuals Character designs and reference images
  • linetta_build_illustration_prompt Illustration and four-panel prompts
  • linetta_list_illustrations The gallery, and how recent requests were decided
  • linetta_analyze_style Reports where prose breaks your style rules
  • linetta_read_skill Open one recorded how-to in full — the brief lists only names and descriptions
  • linetta_publish_status What is published on Linetta Works
Write 21
  • linetta_create_work Start a new work with its first scene ready to draft
  • linetta_write_scene Requires the expected content version
  • linetta_revise_scene Partial revision without resending the scene
  • linetta_apply_story_ops Structured story changes as one batch
  • linetta_write_summary Scene, container and synopsis summaries
  • linetta_create_checkpoint A labelled restore point before a big rewrite
  • linetta_undo_last_change Undo a batch in one call
  • linetta_edit_memory Record what it has learned — the writer profile, which applies to every work, or this work’s notes
  • linetta_edit_skill Write a how-to as a SKILL.md file — global, or tied to one work. No approval step; the writer gets attribution, history and an off switch
  • linetta_propose_story_ops Send candidates to the suggestions inbox; nothing is applied
  • linetta_report_continuity Record continuity findings, each with an exact quote
  • linetta_save_forecast Save possible branches; none of it is canon
  • linetta_propose_style_profile Drafts a style profile for you to approve
  • linetta_set_character_visuals Save character designs
  • linetta_set_art_style Save illustration style
  • linetta_add_reference_image Attach a reference image, including one from the gallery
  • linetta_delete_reference_image Remove reference image
  • linetta_request_illustration Ask for a picture; nothing is drawn until you approve
  • linetta_set_representative_illustration Set or clear the picture that stands for a scene, episode or part
  • linetta_register_work Register a work on Linetta Works with a blurb you approved
  • linetta_publish_episode Publish an episode when you ask

What keeps it safe

  • 01 Bound to 127.0.0.1 only, with an Origin check against DNS rebinding. No LAN binding and no tunnel, at any setting.
  • 02 A 32-byte bearer token, held in the operating system’s secret store where there is one and in a 0600 file otherwise, regenerable and revocable from Settings.
  • 03 Optimistic version checks: if you are typing in the scene an agent is rewriting, the write is refused rather than silently applied.
  • 04 A snapshot before every scene write, and an outline capture before every structural change.
  • 05 An activity log of every call — time, tool, work, target, result — shown in Settings.
  • 06 A cap of 120 tool calls a minute, so a runaway agent loop hits a wall instead of forty rewritten scenes.

Or, the built-in agent

Rather write with a panel inside Linetta than switch to a separate app? Turn on the built-in agent and connect a provider of your own.

  • ChatGPT (Codex) Sign in with your ChatGPT account — no key to hold
  • Claude Code Runs the claude CLI you already have, under your own sign-in — no key; not in the Mac App Store build
  • Anthropic By API key
  • Google Gemini By API key
  • OpenAI-compatible By API key, any compatible endpoint — including one on your own machine
  • 01 Consent is per provider, and it gates even the connection test
  • 02 An API key goes into your OS’s secure store; Linux has none, so only the ChatGPT sign-in and Claude Code work there
  • 03 Open it with Cmd/Ctrl+J — it reaches Linetta’s tools through the same MCP layer an external client uses
  • 04 Every call lands in the same activity log, marked with which agent made it
  • 05 A structural change or a scene the agent wrote gets an Undo button on its line — the last eight, and only while the app stays open. The previous text is also kept indefinitely as a restorable version
  • 06 It reads two short memories at the start of every turn — a writer profile and this work’s notes — and writes to them itself. The profile is global: it is not scoped to the work you have open. Both are yours to rewrite in Settings → Memory
  • 07 It also keeps skills — how-to documents about method, as plain SKILL.md files under your data directory, which you can edit in any editor or point your own Claude Code at. A skill can apply to every work or to one. It writes them without asking; you get the author badge, the version history and an off switch, in Settings → Skills
  • 08 After a turn that ran eight or more tool calls, and once your reply has gone, it asks the same provider and model one more time whether that turn taught it a skill — an extra call your provider meters, on by default, switched off under Settings → Skills. The Claude Code provider never runs it
  • 09 A turn stops at 48 tool calls by default, then says what it finished and what is left. Change the limit from 8 to 200 under Settings → Tool budget
  • 10 The daily backup is the database only. It carries every skill’s version history and not the skills folder itself

§ 07 — Your data

The manuscript is a file you own.

Linetta has no account and no mandatory cloud. Everything below is on your own disk, in formats you can read without it.

Where it lives

macOS
~/Library/Application Support/com.devlikebear.linetta
Linux
${XDG_DATA_HOME:-~/.local/share}/com.devlikebear.linetta
Windows
%APPDATA%\com.devlikebear.linetta
library.db

One SQLite library

Projects, scenes, outline, entities, relationships, plot, version snapshots, the memories an agent reads, and every skill’s version history, in a single database file.

Snapshots

History that thins, not disappears

Manual snapshots are kept indefinitely. Autosave snapshots go from every save on the first day to daily after thirty.

backups/

Verified daily backups

A daily backup and a pre-migration backup, kept fourteen days, with restore controls at startup. It copies the database and nothing beside it — the skills folder included.

Markdown

In and out, freely

Import an existing manuscript, export scenes as Markdown into a folder, and optionally let Git carry that folder somewhere else. Illustrations travel with the export.

§ 08 — Get it

Free on the Mac App Store. Signed builds everywhere else.

The direct macOS build is Developer ID signed and notarised by Apple. Windows and Linux installers are published on every GitHub release.

Current release v1.16.0

Mac App Store

Free. The simplest way onto an Apple Silicon Mac.

Homebrew — Apple Silicon

Signed and notarised, updated with the tap.

brew install --cask devlikebear/tap/linetta

Windows

NSIS and MSI installers on every release.

Linux

AppImage, .deb and .rpm packages on every release.

Intel Macs, and anyone who would rather compile it, can build from source: a Tauri 2 Rust shell, React and Vite, an embedded Go engine, and SQLite.

§ 09 — Questions

Before you download.

01 Does Linetta need an account or a subscription?
No. Writing, organisation, import and export, snapshots and backups all work without one. There is no Linetta account to create.
02 Is there AI inside the app?
Optionally. A built-in agent can write for you once you connect a provider — a ChatGPT sign-in, the Claude Code CLI, Anthropic, Google Gemini or an OpenAI-compatible endpoint — and consent to it, provider by provider. Or skip that entirely and connect your own agent, such as Claude Code or Codex CLI, over the MCP server instead. Illustrations are a separate choice, with their own consent.
03 Can I bring an existing manuscript?
Yes. Markdown import and export both work, so a work can arrive from another tool and leave for one.
04 Is my writing uploaded anywhere?
Not by default, and never to a Linetta cloud — there is none. It leaves this device only once you turn something on: the built-in agent sends what it works on to the provider you connected, an MCP client you run reads it, the image provider you chose receives a prompt and any reference images when you press Generate, an episode you publish goes to Linetta Works for anyone to read, and GitHub Sync or Folder Sync, once configured, export your whole library on a daily tick and at every launch.
05 What about iPad and Android?
The engine is built for mobile targets and the iPad layout is in progress, but mobile does not host the MCP server. The desktop app is the supported product today.
06 What licence is it under?
AGPL-3.0-only. The source is on GitHub, and commercial licensing options are described in the licence notice.