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

§ 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

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 WorksEpisodes
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.
linetta_get_story_contextThe curated brief for one scene — the core toollinetta_read_sceneScene text with its content versionlinetta_get_outlineThe tree with labels, kinds, status and lengthlinetta_search_manuscriptFull-text search across the worklinetta_list_worksWorks, titles, status, scene countslinetta_list_charactersCharacters, places, objects, conceptslinetta_where_does_appearEvery scene an entity appears inlinetta_get_plotStorylines and beatslinetta_get_fact_cardsResearch notes with their sourceslinetta_get_character_visualsCharacter designs and reference imageslinetta_build_illustration_promptIllustration and four-panel promptslinetta_list_illustrationsThe gallery, and how recent requests were decidedlinetta_analyze_styleReports where prose breaks your style ruleslinetta_read_skillOpen one recorded how-to in full — the brief lists only names and descriptionslinetta_publish_statusWhat is published on Linetta Works
linetta_create_workStart a new work with its first scene ready to draftlinetta_write_sceneRequires the expected content versionlinetta_revise_scenePartial revision without resending the scenelinetta_apply_story_opsStructured story changes as one batchlinetta_write_summaryScene, container and synopsis summarieslinetta_create_checkpointA labelled restore point before a big rewritelinetta_undo_last_changeUndo a batch in one calllinetta_edit_memoryRecord what it has learned — the writer profile, which applies to every work, or this work’s noteslinetta_edit_skillWrite 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 switchlinetta_propose_story_opsSend candidates to the suggestions inbox; nothing is appliedlinetta_report_continuityRecord continuity findings, each with an exact quotelinetta_save_forecastSave possible branches; none of it is canonlinetta_propose_style_profileDrafts a style profile for you to approvelinetta_set_character_visualsSave character designslinetta_set_art_styleSave illustration stylelinetta_add_reference_imageAttach a reference image, including one from the gallerylinetta_delete_reference_imageRemove reference imagelinetta_request_illustrationAsk for a picture; nothing is drawn until you approvelinetta_set_representative_illustrationSet or clear the picture that stands for a scene, episode or partlinetta_register_workRegister a work on Linetta Works with a blurb you approvedlinetta_publish_episodePublish 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 holdClaude CodeRuns the claude CLI you already have, under your own sign-in — no key; not in the Mac App Store buildAnthropicBy API keyGoogle GeminiBy API keyOpenAI-compatibleBy 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.


