A smart text chunking tool designed for breaking down voiceover scripts into AI-friendly bite-sized pieces.
Edithor helps you split long voiceover scripts into manageable chunks that AI voiceover tools can process effectively. Unlike simple character-count splitters, Edithor intelligently preserves sentence boundaries, ensuring your chunks never cut off mid-sentence.
- Smart Chunking: Automatically splits text while respecting sentence boundaries
- Flexible Input: Paste text directly or upload a text file
- Customizable Chunk Size: Set your preferred character limit (default: 500)
- Multiple Export Options:
- Single file with numbered chunk headers
- Multiple files bundled in a ZIP download
- Live Preview: See your chunks before downloading
- Dark Mode: Easy on the eyes with default dark theme
- Modern UI: Built with shadcn-svelte components
# Install dependencies
npm install
# Start development server
npm run devVisit http://localhost:5173 to use the app.
-
Input your text:
- Paste directly into the text area, or
- Upload a
.txtfile
-
Set chunk limit:
- Adjust the character limit (default: 500)
- Text will be split intelligently without breaking sentences
-
Preview & Download:
- View chunked results in the preview panel
- Download as a single file with chunk headers
- Or download as multiple files (ZIP)
- Framework: SvelteKit 2 + Svelte 5
- Styling: Tailwind CSS 4 + shadcn-svelte
- Language: TypeScript
- Build Tool: Vite
- Testing: Vitest + Playwright
npm run buildPreview the production build:
npm run preview# Run all tests
npm test
# Unit tests only
npm run test:unit
# E2E tests only
npm run test:e2esrc/
├── lib/
│ ├── components/
│ │ ├── ui/ # shadcn components
│ │ ├── TextInput.svelte
│ │ ├── ChunkSettings.svelte
│ │ ├── ChunkPreview.svelte
│ │ └── ExportOptions.svelte
│ ├── utils/
│ │ ├── chunker.ts # Core chunking logic
│ │ └── fileHandler.ts # File I/O operations
│ └── types/
│ └── index.ts
└── routes/
└── +page.svelte # Main application
Edithor uses an intelligent sentence-boundary detection algorithm:
- Parse Text: Identifies sentence endings (. ! ? followed by space/newline)
- Smart Splitting: Groups sentences into chunks up to the character limit
- Boundary Preservation: Never breaks sentences mid-way - if adding the next sentence exceeds the limit, it starts a new chunk
- Export: Generates files with proper formatting and metadata
- Adjust character limit (default: 500)
- Future: Custom sentence delimiters, paragraph preservation options
- Single File: All chunks in one file with "Chunk {n}" headers
- Multiple Files: Individual txt files bundled in a ZIP archive
# Format code
npm run format
# Lint
npm run lint
# Type check
npm run checknpx shadcn-svelte@latest add [component-name]- PDF and DOCX file support
- Custom delimiter patterns
- Save/load chunking presets
- JSON/CSV export options
- TTS preview for chunks
- Cloud storage integration
Contributions are welcome! Please feel free to submit a Pull Request.
MIT