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%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
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. |
||
| desktop | ||
| example-project | ||
| src | ||
| tests | ||
| .gitignore | ||
| deno.json | ||
| deno.lock | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| revised plan.md | ||
| svelte.config.js | ||
| vite.config.ts | ||
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.