Clean Sheet — AI-native creative writing suite. Desktop app (Deno Desktop + SvelteKit) with in-place LLM editing, project-aware context, and multi-agent workflows via Carin.
  • TypeScript 79.8%
  • Svelte 19.3%
  • CSS 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Pyrrha 0b8da0869d fix: add --no-check to desktop:build:win for Deno Desktop/SvelteKit type interop
The deno desktop tool's type checker encounters TS2307 errors for type-only
import paths (types.js, exports/internal/index.js) that SvelteKit's Vite
build strips during production bundling. These are not real code defects
— they're framework-internal type references that don't exist in the built
output. Adding --no-check skips the type-checking step for the desktop
build only; the web build and test suite remain fully type-checked.
2026-07-05 02:41:04 -04:00
desktop Phase 8-9: Card infrastructure, home screen, and desktop packaging 2026-07-04 23:29:20 -04:00
example-project feat: add example project with manuscript, style guide, agent profiles 2026-07-05 02:13:23 -04:00
src feat: editor surface — CodeMirror, project shell, command palette 2026-07-05 00:08:43 -04:00
tests Fix 3 failing project tests: replace deprecated rmdirSync({recursive:true}) with rmSync() 2026-07-05 02:19:11 -04:00
.gitignore fix: update deno config for desktop builds, add deps for adapter-node 2026-07-05 02:13:23 -04:00
deno.json fix: add --no-check to desktop:build:win for Deno Desktop/SvelteKit type interop 2026-07-05 02:41:04 -04:00
deno.lock fix: update deno config for desktop builds, add deps for adapter-node 2026-07-05 02:13:23 -04:00
package-lock.json Phase 0: Deno Desktop + SvelteKit scaffold 2026-07-04 23:00:31 -04:00
package.json fix: update deno config for desktop builds, add deps for adapter-node 2026-07-05 02:13:23 -04:00
README.md Add README and .gitignore 2026-07-04 22:09:08 -04:00
revised plan.md Update revised plan.md 2026-07-05 02:48:57 +00:00
svelte.config.js Phase 0: Deno Desktop + SvelteKit scaffold 2026-07-04 23:00:31 -04:00
vite.config.ts Phase 0: Deno Desktop + SvelteKit scaffold 2026-07-04 23:00:31 -04:00

Clean Sheet

An AI-native creative writing suite. Not a chatbox bolted onto a text editor — AI that lives in the margins, invoked with context, responding in-place.

Status: Planning (see PLAN.md)

What It Is

A desktop app where LLMs work on your manuscript with you — editing prose inline, flagging continuity issues in the margin, brainstorming from your world bible — without ever leaving your document or re-explaining your story.

Tech Stack

  • Runtime: Deno 2.9+ with Deno Desktop
  • Framework: SvelteKit
  • Editor: CodeMirror 6 (Markdown mode)
  • LLM Backend: Carin via direct REST API
  • Agent Config: TOML (local per-project agent profiles)
  • Storage: Markdown files on disk + Deno KV for run history

The Sacred Loop (v0.1 MVP)

Open project → open chapter → select paragraph → Cmd+K → Editor: Revise
→ context engine assembles bundle → Carin returns suggestion
→ inline diff displayed → accept/reject → file saved → run logged

No chatbox. No accounts. No collaboration. Just a writer, their manuscript, and AI that knows the project context.

Project Structure

clean-sheet/
├── src/
│   ├── lib/
│   │   ├── server/     # Project mgmt, context engine, Carin client
│   │   ├── client/     # CodeMirror, cards, palette, diff components
│   │   └── shared/     # Types, constants
│   └── routes/         # SvelteKit routes + API endpoints
├── tests/
└── example-project/    # Test fixture with sample manuscript + agents

A user's project looks like:

my-novel/
├── manuscript/
│   └── ch-01.md
├── world-bible/
│   └── characters/
│       └── protagonist.md
├── outline.md
├── style-guide.md
└── agents/
    ├── editor.toml
    └── continuity.toml

Boundaries

  • No chatbox. AI responds inline or in margin cards.
  • No collaboration. Single user, local files.
  • No rich text. Markdown + CodeMirror.
  • No cloud. Everything is local except Carin API calls.
  • Desktop-first. Deno Desktop binary. PWA is a future companion mode.