chunk
Splits a repository into multiple context chunks for multi-turn LLM conversations, intelligently grouping related files.
Usage
infiniloom chunk [PATH] [OPTIONS]
Description
The chunk command splits repositories into semantic chunks, respecting token limits. Designed to optimize context for large language models in multi-turn conversations.
Options
--strategy <STRATEGY>
Chunking strategy: semantic, file, module, symbol, dependency, fixed (default: semantic)
--max-tokens <NUM>
Maximum tokens per chunk (default: 8000)
-o, --output <DIR>
Output directory for chunks
-m, --model <MODEL>
Target model for token counting (default: claude)
-f, --format <FORMAT>
Output format: xml, markdown, json, yaml, toon, plain (default: xml)
--overlap <TOKENS>
Token overlap between chunks (default: 0)
--no-chunk-summary
Disable auto-generated summary headers
--priority-first
Sort chunks by priority (core first, tests last)
-i, --include <PATTERN>
Include only files matching glob pattern (repeatable)
-e, --exclude <PATTERN>
Exclude files/directories matching pattern (repeatable)
--include-tests
Include test files in chunks
-v, --verbose
Show detailed progress
Examples
# Chunk with default settings
infiniloom chunk
# Chunk with module-based strategy
infiniloom chunk --strategy module
# Chunk to specific directory
infiniloom chunk -o chunks/
# Custom token limit per chunk
infiniloom chunk --max-tokens 4000
Strategies
- semantic — Groups by character frequency similarity (default)
- file — One file per chunk
- module — Groups by directory/module
- symbol — Groups by key symbols (AST-based)
- dependency — Groups by import relationships
- fixed — Fixed token size chunks