{"exhaustive":{"nbHits":false,"typo":false},"exhaustiveNbHits":false,"exhaustiveTypo":false,"hits":[{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"bhavnicksm"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"I built <em>Chonkie</em> because I was tired of rewriting chunking code for RAG applications. Existing libraries were either too bloated (80MB+) or too basic, with no middle ground.<p>Core features:<p>- 21MB default install vs 80-171MB alternatives<p>- 33x faster token chunking than popular alternatives<p>- Supports multiple chunking strategies: token, word, sentence, and semantic<p>- Works with all major tokenizers (transformers, tokenizers, tiktoken)<p>- Zero external dependencies for basic functionality<p>Technical optimizations:<p>- Uses tiktoken with multi-threading for faster tokenization<p>- Implements aggressive caching and precomputation<p>- Running mean pooling for efficient semantic chunking<p>- Modular dependency system (install only what you need)<p>Benchmarks and code: <a href=\"https://github.com/bhavnicksm/chonkie\">https://github.com/bhavnicksm/<em>chonkie</em></a><p>Looking for feedback on the architecture and performance optimizations. What other chunking strategies would be useful for RAG applications?"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Show HN: <em>Chonkie</em> \u2013 A Fast, Lightweight Text Chunking Library for RAG"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"https://github.com/bhavnicksm/<em>chonkie</em>"}},"_tags":["story","author_bhavnicksm","story_42100819","show_hn"],"author":"bhavnicksm","children":[42101145,42101198,42101291,42101314,42101331,42101332,42101415,42101684,42101904,42102103,42102269,42103628,42108006,42108900,42109009],"created_at":"2024-11-10T15:58:25Z","created_at_i":1731254305,"num_comments":36,"objectID":"42100819","points":199,"story_id":42100819,"story_text":"I built Chonkie because I was tired of rewriting chunking code for RAG applications. Existing libraries were either too bloated (80MB+) or too basic, with no middle ground.<p>Core features:<p>- 21MB default install vs 80-171MB alternatives<p>- 33x faster token chunking than popular alternatives<p>- Supports multiple chunking strategies: token, word, sentence, and semantic<p>- Works with all major tokenizers (transformers, tokenizers, tiktoken)<p>- Zero external dependencies for basic functionality<p>Technical optimizations:<p>- Uses tiktoken with multi-threading for faster tokenization<p>- Implements aggressive caching and precomputation<p>- Running mean pooling for efficient semantic chunking<p>- Modular dependency system (install only what you need)<p>Benchmarks and code: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;bhavnicksm&#x2F;chonkie\">https:&#x2F;&#x2F;github.com&#x2F;bhavnicksm&#x2F;chonkie</a><p>Looking for feedback on the architecture and performance optimizations. What other chunking strategies would be useful for RAG applications?","title":"Show HN: Chonkie \u2013 A Fast, Lightweight Text Chunking Library for RAG","updated_at":"2026-02-24T17:51:58Z","url":"https://github.com/bhavnicksm/chonkie"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"snyy"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Hey HN! We're Shreyash and Bhavnick. We're building <em>Chonkie</em> (<a href=\"https://chonkie.ai\">https://<em>chonkie</em>.ai</a>), an open-source library for chunking and embedding data.<p>Python: <a href=\"https://github.com/chonkie-inc/chonkie\">https://github.com/<em>chonkie</em>-inc/<em>chonkie</em></a><p>TypeScript: <a href=\"https://github.com/chonkie-inc/chonkie-ts\">https://github.com/<em>chonkie</em>-inc/<em>chonkie</em>-ts</a><p>Here's a video showing our code chunker: <a href=\"https://youtu.be/Xclkh6bU1P0\" rel=\"nofollow\">https://youtu.be/Xclkh6bU1P0</a>.<p>Bhavnick and I have been building personal projects with LLMs for a few years. For much of this time, we found ourselves writing our own chunking logic to support RAG applications. We often hesitated to use existing libraries because they either had only basic features or felt too bloated (some are 80MB+).<p>We built <em>Chonkie</em> to be lightweight, fast, extensible, and easy. The space is evolving rapidly, and we wanted <em>Chonkie</em> to be able to quickly support the newest strategies. We currently support: Token Chunking, Sentence Chunking, Recursive Chunking, Semantic Chunking, plus:<p>-  Semantic Double Pass Chunking: Chunks text semantically first, then merges closely related chunks.<p>-  Code Chunking: Chunks code files by creating an AST and finding ideal split points.<p>-  Late Chunking: Based on the paper (<a href=\"https://arxiv.org/abs/2409.04701\" rel=\"nofollow\">https://arxiv.org/abs/2409.04701</a>), where chunk embeddings are derived from embedding a longer document.<p>-  Slumber Chunking: Based on the &quot;Lumber Chunking&quot; paper (<a href=\"https://arxiv.org/abs/2406.17526\" rel=\"nofollow\">https://arxiv.org/abs/2406.17526</a>). It uses recursive chunking, then an LLM verifies split points, aiming for high-quality chunks with reduced token usage and LLM costs.<p>You can see how <em>Chonkie</em> compares to LangChain and LlamaIndex in our benchmarks: <a href=\"https://github.com/chonkie-inc/chonkie/blob/main/BENCHMARKS.md\">https://github.com/<em>chonkie</em>-inc/<em>chonkie</em>/blob/main/BENCHMARKS....</a><p>Some technical details about the <em>Chonkie</em> package:  - ~15MB default install vs. ~80-170MB for some alternatives. - Up to 33x faster token chunking compared to LangChain and LlamaIndex in our tests. - Works with major tokenizers (transformers, tokenizers, tiktoken). - Zero external dependencies for basic functionality. - Implements aggressive caching and precomputation. - Uses running mean pooling for efficient semantic chunking. - Modular dependency system (install only what you need).<p>In addition to chunking, <em>Chonkie</em> also provides an easy way to create embeddings. For supported providers (SentenceTransformer, Model2Vec, OpenAI), you just specify the model name as a string. You can also create custom embedding handlers for other providers.<p>RAG is still the most common use case currently. However, <em>Chonkie</em> makes chunks that are optimized for creating high quality embeddings and vector retrieval, so it is not really tied to the &quot;generation&quot; part of RAG. In fact, We're seeing more and more people use <em>Chonkie</em> for implementing semantic search and/or setting context for agents.<p>We are currently focused on building integrations to simplify the retrieval process. We've created &quot;handshakes&quot; \u2013 thin functions that interact with vector DBs like pgVector, Chroma, TurboPuffer, and Qdrant, allowing you to interact with storage easily. If there's an integration you'd like to see (vector DB or otherwise), please let us know.<p>We also offer hosted and on-premise versions with OCR, extra metadata, all embedding providers, and managed vector databases for teams that want a fully managed pipeline. If you're interested, reach out at shreyash@<em>chonkie</em>.ai or book a demo: <a href=\"https://cal.com/shreyashn/chonkie-demo\" rel=\"nofollow\">https://cal.com/shreyashn/<em>chonkie</em>-demo</a>.<p>We're eager to hear your feedback and comments! Thanks!"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Launch HN: <em>Chonkie</em> (YC X25) \u2013 Open-Source Library for Advanced Chunking"}},"_tags":["story","author_snyy","story_44225930","launch_hn"],"author":"snyy","children":[44226305,44226321,44226442,44226492,44226623,44226801,44226803,44227157,44227439,44227582,44227938,44228962,44229055,44229515,44229641,44230096,44230663,44231089,44233507,44234182,44236210,44237234],"created_at":"2025-06-09T16:09:03Z","created_at_i":1749485343,"num_comments":42,"objectID":"44225930","points":151,"story_id":44225930,"story_text":"Hey HN! We&#x27;re Shreyash and Bhavnick. We&#x27;re building Chonkie (<a href=\"https:&#x2F;&#x2F;chonkie.ai\">https:&#x2F;&#x2F;chonkie.ai</a>), an open-source library for chunking and embedding data.<p>Python: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie\">https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie</a><p>TypeScript: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie-ts\">https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie-ts</a><p>Here&#x27;s a video showing our code chunker: <a href=\"https:&#x2F;&#x2F;youtu.be&#x2F;Xclkh6bU1P0\" rel=\"nofollow\">https:&#x2F;&#x2F;youtu.be&#x2F;Xclkh6bU1P0</a>.<p>Bhavnick and I have been building personal projects with LLMs for a few years. For much of this time, we found ourselves writing our own chunking logic to support RAG applications. We often hesitated to use existing libraries because they either had only basic features or felt too bloated (some are 80MB+).<p>We built Chonkie to be lightweight, fast, extensible, and easy. The space is evolving rapidly, and we wanted Chonkie to be able to quickly support the newest strategies. We currently support: Token Chunking, Sentence Chunking, Recursive Chunking, Semantic Chunking, plus:<p>-  Semantic Double Pass Chunking: Chunks text semantically first, then merges closely related chunks.<p>-  Code Chunking: Chunks code files by creating an AST and finding ideal split points.<p>-  Late Chunking: Based on the paper (<a href=\"https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2409.04701\" rel=\"nofollow\">https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2409.04701</a>), where chunk embeddings are derived from embedding a longer document.<p>-  Slumber Chunking: Based on the &quot;Lumber Chunking&quot; paper (<a href=\"https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2406.17526\" rel=\"nofollow\">https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2406.17526</a>). It uses recursive chunking, then an LLM verifies split points, aiming for high-quality chunks with reduced token usage and LLM costs.<p>You can see how Chonkie compares to LangChain and LlamaIndex in our benchmarks: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie&#x2F;blob&#x2F;main&#x2F;BENCHMARKS.md\">https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie&#x2F;blob&#x2F;main&#x2F;BENCHMARKS....</a><p>Some technical details about the Chonkie package:  - ~15MB default install vs. ~80-170MB for some alternatives. - Up to 33x faster token chunking compared to LangChain and LlamaIndex in our tests. - Works with major tokenizers (transformers, tokenizers, tiktoken). - Zero external dependencies for basic functionality. - Implements aggressive caching and precomputation. - Uses running mean pooling for efficient semantic chunking. - Modular dependency system (install only what you need).<p>In addition to chunking, Chonkie also provides an easy way to create embeddings. For supported providers (SentenceTransformer, Model2Vec, OpenAI), you just specify the model name as a string. You can also create custom embedding handlers for other providers.<p>RAG is still the most common use case currently. However, Chonkie makes chunks that are optimized for creating high quality embeddings and vector retrieval, so it is not really tied to the &quot;generation&quot; part of RAG. In fact, We&#x27;re seeing more and more people use Chonkie for implementing semantic search and&#x2F;or setting context for agents.<p>We are currently focused on building integrations to simplify the retrieval process. We&#x27;ve created &quot;handshakes&quot; \u2013 thin functions that interact with vector DBs like pgVector, Chroma, TurboPuffer, and Qdrant, allowing you to interact with storage easily. If there&#x27;s an integration you&#x27;d like to see (vector DB or otherwise), please let us know.<p>We also offer hosted and on-premise versions with OCR, extra metadata, all embedding providers, and managed vector databases for teams that want a fully managed pipeline. If you&#x27;re interested, reach out at shreyash@chonkie.ai or book a demo: <a href=\"https:&#x2F;&#x2F;cal.com&#x2F;shreyashn&#x2F;chonkie-demo\" rel=\"nofollow\">https:&#x2F;&#x2F;cal.com&#x2F;shreyashn&#x2F;chonkie-demo</a>.<p>We&#x27;re eager to hear your feedback and comments! Thanks!","title":"Launch HN: Chonkie (YC X25) \u2013 Open-Source Library for Advanced Chunking","updated_at":"2025-11-16T22:46:03Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"snyy"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Hi HN,<p>We\u2019re Shreyash and Bhavnick. We built <em>Chonkie</em>, an open-source library for advanced chunking and embedding of text and code. It was previously Python-only, but we just released a TypeScript version: <a href=\"https://github.com/chonkie-inc/chonkie-ts\">https://github.com/<em>chonkie</em>-inc/<em>chonkie</em>-ts</a><p>Many AI projects in JS/TS (like those using Vercel's AI SDK or Mastra) rely on basic text splitters. But better chunking = better retrieval = better performance. That\u2019s what <em>Chonkie</em> is built for.<p>Current native chunkers (in TS):<p>- Code Chunker \u2013 handles Python, TypeScript, etc.<p>- Recursive Chunker \u2013 rule-based, hierarchical splitting<p>- Token Chunker \u2013 split by token count (fully customizable)<p>- Sentence Chunker \u2013 split on sentence boundaries. Delimiters are customizable, so it works for multiple languages.<p>All chunkers support custom tokenizers, chunk overlap, delimiters, and more.<p>Coming soon in native TS (already available via the API client):<p>- Semantic Chunker \u2013 splits texts wherever it detects a shift in meaning.<p>- SDPM Chunker \u2013 merges semantically similar disjoint chunks<p>- Late Chunker \u2013 generates context-aware embeddings for each chunk<p>- Slumber Chunker \u2013 LLM-refined recursive chunks. Significantly reduces token usage (and thus cost) while maximizing chunk quality.<p>- Embeddings Refinery - Embed chunks with any embedding model<p>- Overlap Refinery \u2013 Create overlaps between consecutive chunks for better context preservation.<p><em>Chonkie</em> is free, open-source, and MIT licensed. GitHub: <a href=\"https://github.com/chonkie-inc/chonkie-ts\">https://github.com/<em>chonkie</em>-inc/<em>chonkie</em>-ts</a><p>We\u2019d love your feedback, ideas, or contributions. Thanks!"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Show HN: Advanced Chunking in JavaScript/TypeScript with <em>Chonkie</em>"}},"_tags":["story","author_snyy","story_44076134","show_hn"],"author":"snyy","children":[44076596,44077834,44084757],"created_at":"2025-05-23T20:03:41Z","created_at_i":1748030621,"num_comments":6,"objectID":"44076134","points":10,"story_id":44076134,"story_text":"Hi HN,<p>We\u2019re Shreyash and Bhavnick. We built Chonkie, an open-source library for advanced chunking and embedding of text and code. It was previously Python-only, but we just released a TypeScript version: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie-ts\">https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie-ts</a><p>Many AI projects in JS&#x2F;TS (like those using Vercel&#x27;s AI SDK or Mastra) rely on basic text splitters. But better chunking = better retrieval = better performance. That\u2019s what Chonkie is built for.<p>Current native chunkers (in TS):<p>- Code Chunker \u2013 handles Python, TypeScript, etc.<p>- Recursive Chunker \u2013 rule-based, hierarchical splitting<p>- Token Chunker \u2013 split by token count (fully customizable)<p>- Sentence Chunker \u2013 split on sentence boundaries. Delimiters are customizable, so it works for multiple languages.<p>All chunkers support custom tokenizers, chunk overlap, delimiters, and more.<p>Coming soon in native TS (already available via the API client):<p>- Semantic Chunker \u2013 splits texts wherever it detects a shift in meaning.<p>- SDPM Chunker \u2013 merges semantically similar disjoint chunks<p>- Late Chunker \u2013 generates context-aware embeddings for each chunk<p>- Slumber Chunker \u2013 LLM-refined recursive chunks. Significantly reduces token usage (and thus cost) while maximizing chunk quality.<p>- Embeddings Refinery - Embed chunks with any embedding model<p>- Overlap Refinery \u2013 Create overlaps between consecutive chunks for better context preservation.<p>Chonkie is free, open-source, and MIT licensed. GitHub: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie-ts\">https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie-ts</a><p>We\u2019d love your feedback, ideas, or contributions. Thanks!","title":"Show HN: Advanced Chunking in JavaScript/TypeScript with Chonkie","updated_at":"2025-06-24T06:49:19Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"snyy"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Hey HN,<p>We\u2019re the developers of <em>Chonkie</em>, a powerful and easy-to-use chunking library. Last November, we introduced <em>Chonkie</em> OSS here on HN (<a href=\"https://news.ycombinator.com/item?id=42100819\">https://news.ycombinator.com/item?id=42100819</a>) and got some fantastic feedback. Today, we\u2019re excited to share <em>Chonkie</em> Cloud, a fully hosted service for chunking, along with new tools to make building and debugging RAG systems easier than ever.<p>---<p>A quick recap for context:<p>We launched <em>Chonkie</em> as an open-source project late last year. A few weeks ago, we decided to go full-time on it. Unfortunately, this shift wasn\u2019t as smooth as we had hoped. Due to some legal stuff, we had to rebuild the entire project from scratch in a new repo.<p>Restarting sucked but it gave us the chance to clean things up and build something faster, cleaner, and better. You can check out the new repo here: <a href=\"https://github.com/chonkie-inc/chonkie\">https://github.com/<em>chonkie</em>-inc/<em>chonkie</em></a><p>---<p>What we're launching today:<p>- <em>Chonkie</em> Cloud \u2013 A fully hosted chunking service. Just send in your texts and get chunks back. It supports all our chunkers and comes with a playground to help visualize RAG. Try it out: <a href=\"https://chonkie.cloud\" rel=\"nofollow\">https://<em>chonkie</em>.cloud</a> (no credit card required)<p>- <em>Chonkie</em> Recipes \u2013 Predefined chunking configs to help you quickly get started. If you're not sure which settings to use, just find the closest match in our recipes. These work with the Recursive and Late chunkers. Available here: <a href=\"https://huggingface.co/datasets/chonkie-ai/recipes\" rel=\"nofollow\">https://huggingface.co/datasets/<em>chonkie</em>-ai/recipes</a><p>- <em>Chonkie</em> Vizard \u2013 A tool to visualize chunking output during development. If you've ever debugged with print statements full of dashes and stars, this is for you.<p>Installation: pip install &quot;<em>chonkie</em>[viz]&quot;<p>Example usage (1) : viz.print(chunks) # Print in terminal<p>Example usage (2): viz.save(&quot;out.html&quot;, chunks) # Save for later<p>---<p>What's next:<p>- A code chunker<p>- File \u201cchefs\u201d to help clean and prepare data<p>- Integrations with vector DBs and data extraction tools<p>- Support for more languages (typescript is #1 on our list)<p>---<p>We\u2019d love feedback on what we\u2019re building. If you have feature requests or ideas, please open an issue on the repo (<a href=\"https://github.com/chonkie-inc/chonkie\">https://github.com/<em>chonkie</em>-inc/<em>chonkie</em></a>) or comment here.<p>Thank you!"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Show HN: <em>Chonkie</em> Cloud \u2013 No-nonsense chunking now on the the cloud"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"https://cloud.<em>chonkie</em>.ai"}},"_tags":["story","author_snyy","story_43694848","show_hn"],"author":"snyy","children":[43695972,43701648,43718931],"created_at":"2025-04-15T16:06:39Z","created_at_i":1744733199,"num_comments":5,"objectID":"43694848","points":6,"story_id":43694848,"story_text":"Hey HN,<p>We\u2019re the developers of Chonkie, a powerful and easy-to-use chunking library. Last November, we introduced Chonkie OSS here on HN (<a href=\"https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=42100819\">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=42100819</a>) and got some fantastic feedback. Today, we\u2019re excited to share Chonkie Cloud, a fully hosted service for chunking, along with new tools to make building and debugging RAG systems easier than ever.<p>---<p>A quick recap for context:<p>We launched Chonkie as an open-source project late last year. A few weeks ago, we decided to go full-time on it. Unfortunately, this shift wasn\u2019t as smooth as we had hoped. Due to some legal stuff, we had to rebuild the entire project from scratch in a new repo.<p>Restarting sucked but it gave us the chance to clean things up and build something faster, cleaner, and better. You can check out the new repo here: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie\">https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie</a><p>---<p>What we&#x27;re launching today:<p>- Chonkie Cloud \u2013 A fully hosted chunking service. Just send in your texts and get chunks back. It supports all our chunkers and comes with a playground to help visualize RAG. Try it out: <a href=\"https:&#x2F;&#x2F;chonkie.cloud\" rel=\"nofollow\">https:&#x2F;&#x2F;chonkie.cloud</a> (no credit card required)<p>- Chonkie Recipes \u2013 Predefined chunking configs to help you quickly get started. If you&#x27;re not sure which settings to use, just find the closest match in our recipes. These work with the Recursive and Late chunkers. Available here: <a href=\"https:&#x2F;&#x2F;huggingface.co&#x2F;datasets&#x2F;chonkie-ai&#x2F;recipes\" rel=\"nofollow\">https:&#x2F;&#x2F;huggingface.co&#x2F;datasets&#x2F;chonkie-ai&#x2F;recipes</a><p>- Chonkie Vizard \u2013 A tool to visualize chunking output during development. If you&#x27;ve ever debugged with print statements full of dashes and stars, this is for you.<p>Installation: pip install &quot;chonkie[viz]&quot;<p>Example usage (1) : viz.print(chunks) # Print in terminal<p>Example usage (2): viz.save(&quot;out.html&quot;, chunks) # Save for later<p>---<p>What&#x27;s next:<p>- A code chunker<p>- File \u201cchefs\u201d to help clean and prepare data<p>- Integrations with vector DBs and data extraction tools<p>- Support for more languages (typescript is #1 on our list)<p>---<p>We\u2019d love feedback on what we\u2019re building. If you have feature requests or ideas, please open an issue on the repo (<a href=\"https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie\">https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie</a>) or comment here.<p>Thank you!","title":"Show HN: Chonkie Cloud \u2013 No-nonsense chunking now on the the cloud","updated_at":"2025-04-23T22:20:40Z","url":"https://cloud.chonkie.ai"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"snyy"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Hi HN,<p>We\u2019re <em>Chonkie</em> (<a href=\"https://github.com/chonkie-inc/chonkie\">https://github.com/<em>chonkie</em>-inc/<em>chonkie</em></a>) \u2014 we build open source tools that help split documents into meaningful chunks for use with AI models.<p>When you use LLMs over large documents or codebases, you often need to break them into smaller parts to fit the model\u2019s context window. Our chunkers do this in a smart way: they preserve structure and meaning, so only the most relevant pieces are passed into the model. This reduces hallucinations, avoids confusion, and improves performance and accuracy.<p>Today we\u2019re launching our Code Chunker \u2014 a fast, structure-aware way to break down source code into high-quality, token-aware chunks.<p>How it works:<p>(See the code: <a href=\"https://github.com/chonkie-inc/chonkie/blob/main/src/chonkie/chunker/code.py\">https://github.com/<em>chonkie</em>-inc/<em>chonkie</em>/blob/main/src/<em>chonkie</em>...</a>)<p>Code Chunker uses tree-sitter (<a href=\"https://tree-sitter.github.io/tree-sitter/\" rel=\"nofollow\">https://tree-sitter.github.io/tree-sitter/</a>) to parse your code into an abstract syntax tree (AST). It then recursively merges and groups nodes in a way that respects both code structure and token limits.<p>It supports all languages that tree-sitter supports, and is designed to preserve formatting and semantics. Large functions or class definitions won\u2019t be split in the middle of a block \u2014 instead, we dive recursively into the AST to produce clean, coherent chunks that fit your configured token budget.<p>What it\u2019s useful for:<p><pre><code>  - Embedding-based code search\n\n  - RAG (retrieval-augmented generation) over codebases\n\n  - Long-context analysis of code\n\n  - Preparing repos for fine-tuning or pretraining\n</code></pre>\nTry it out:<p><pre><code>  - Open source package: https://docs.<em>chonkie</em>.ai/chunkers/code-chunker\n\n  - Hosted playground (free with account): https://cloud.<em>chonkie</em>.ai\n</code></pre>\nHappy Chonking!"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Show HN: Fast and Quality Code Chunking with <em>Chonkie</em>"}},"_tags":["story","author_snyy","story_43776908","show_hn"],"author":"snyy","created_at":"2025-04-23T21:41:53Z","created_at_i":1745444513,"num_comments":0,"objectID":"43776908","points":1,"story_id":43776908,"story_text":"Hi HN,<p>We\u2019re Chonkie (<a href=\"https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie\">https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie</a>) \u2014 we build open source tools that help split documents into meaningful chunks for use with AI models.<p>When you use LLMs over large documents or codebases, you often need to break them into smaller parts to fit the model\u2019s context window. Our chunkers do this in a smart way: they preserve structure and meaning, so only the most relevant pieces are passed into the model. This reduces hallucinations, avoids confusion, and improves performance and accuracy.<p>Today we\u2019re launching our Code Chunker \u2014 a fast, structure-aware way to break down source code into high-quality, token-aware chunks.<p>How it works:<p>(See the code: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie&#x2F;blob&#x2F;main&#x2F;src&#x2F;chonkie&#x2F;chunker&#x2F;code.py\">https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;chonkie&#x2F;blob&#x2F;main&#x2F;src&#x2F;chonkie...</a>)<p>Code Chunker uses tree-sitter (<a href=\"https:&#x2F;&#x2F;tree-sitter.github.io&#x2F;tree-sitter&#x2F;\" rel=\"nofollow\">https:&#x2F;&#x2F;tree-sitter.github.io&#x2F;tree-sitter&#x2F;</a>) to parse your code into an abstract syntax tree (AST). It then recursively merges and groups nodes in a way that respects both code structure and token limits.<p>It supports all languages that tree-sitter supports, and is designed to preserve formatting and semantics. Large functions or class definitions won\u2019t be split in the middle of a block \u2014 instead, we dive recursively into the AST to produce clean, coherent chunks that fit your configured token budget.<p>What it\u2019s useful for:<p><pre><code>  - Embedding-based code search\n\n  - RAG (retrieval-augmented generation) over codebases\n\n  - Long-context analysis of code\n\n  - Preparing repos for fine-tuning or pretraining\n</code></pre>\nTry it out:<p><pre><code>  - Open source package: https:&#x2F;&#x2F;docs.chonkie.ai&#x2F;chunkers&#x2F;code-chunker\n\n  - Hosted playground (free with account): https:&#x2F;&#x2F;cloud.chonkie.ai\n</code></pre>\nHappy Chonking!","title":"Show HN: Fast and Quality Code Chunking with Chonkie","updated_at":"2025-04-23T21:45:56Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"bhavnicksm"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"We open-sourced catsu, a Python client for embedding APIs.<p>The problem: every embedding provider has a different SDK with different bugs. OpenAI has undocumented token limits. VoyageAI's retry logic was broken until September. Cohere breaks downstream libraries every release. LiteLLM's embedding support is minimal.<p>catsu provides:<p>- One API for 11 providers (OpenAI, Voyage, Cohere, Jina, Mistral, Gemini, etc.)<p>- Bundled database of 50+ models with pricing, dimensions, and benchmark scores<p>- Built-in retry with exponential backoff<p>- Automatic cost tracking per request<p>- Full async support<p>Example:<p>```python<p>import catsu<p>client = catsu.Client()<p>response = client.embed(model=&quot;voyage-3&quot;, input=&quot;Hello!&quot;)<p>print(f&quot;Cost: ${response.embeddings}&quot;)<p>print(f&quot;Cost: ${response.usage.cost:.6f}&quot;)<p>```<p>GitHub: <a href=\"https://github.com/chonkie-inc/catsu\" rel=\"nofollow\">https://github.com/<em>chonkie</em>-inc/catsu</a><p>We built this at <em>Chonkie</em> (YC X25) because we needed it badly for our chunking library and to easily switch embeddings for our search product. Apache 2.0."},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: Catsu: A unified Python client for embedding APIs"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://catsu.dev"}},"_tags":["story","author_bhavnicksm","story_46305840","show_hn"],"author":"bhavnicksm","children":[46306062,46306181,46306824],"created_at":"2025-12-17T21:35:05Z","created_at_i":1766007305,"num_comments":5,"objectID":"46305840","points":7,"story_id":46305840,"story_text":"We open-sourced catsu, a Python client for embedding APIs.<p>The problem: every embedding provider has a different SDK with different bugs. OpenAI has undocumented token limits. VoyageAI&#x27;s retry logic was broken until September. Cohere breaks downstream libraries every release. LiteLLM&#x27;s embedding support is minimal.<p>catsu provides:<p>- One API for 11 providers (OpenAI, Voyage, Cohere, Jina, Mistral, Gemini, etc.)<p>- Bundled database of 50+ models with pricing, dimensions, and benchmark scores<p>- Built-in retry with exponential backoff<p>- Automatic cost tracking per request<p>- Full async support<p>Example:<p>```python<p>import catsu<p>client = catsu.Client()<p>response = client.embed(model=&quot;voyage-3&quot;, input=&quot;Hello!&quot;)<p>print(f&quot;Cost: ${response.embeddings}&quot;)<p>print(f&quot;Cost: ${response.usage.cost:.6f}&quot;)<p>```<p>GitHub: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;catsu\" rel=\"nofollow\">https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;catsu</a><p>We built this at Chonkie (YC X25) because we needed it badly for our chunking library and to easily switch embeddings for our search product. Apache 2.0.","title":"Show HN: Catsu: A unified Python client for embedding APIs","updated_at":"2026-03-05T23:12:57Z","url":"https://catsu.dev"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"mattv8"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"RAGtime is a self-hosted MCP server and FAISS/PGVector manager that lets AI assistants run real operations on your infrastructure: SSH commands, SQL queries through SSH tunnels, git repo indexing, filesystem searches. It connects Claude, OpenAI, or Ollama to your environment via both MCP protocol and OpenAI-compatible chat completions API.<p>I originally built this over Christmas break as a &quot;self-serve business intelligence&quot; tool to stop fielding repetitive coworker questions (&quot;write me a query for X,&quot; &quot;where's the logic for Y?&quot;) but now it's morphed into a dev tool as well. I couldn't find anything that centralized these tools and served them over chat in one place.<p>I've been using it daily (via MCP) for work and it's been such a huge development accelerator for me. I want to share what I've built with the community, get feedback, or if you wish, contributions. Happy to answer questions about the architecture or use cases.<p>(You can stop here, unless you want more technical details...)<p>Tools: The agent gets access to configurable tools you define: SSH connections to servers (run commands, check logs, restart services), database queries via SSH tunnels (PostgreSQL, MySQL, MSSQL) with parameterized queries to prevent injection, and vector search over your indexed content. Each tool is defined in a config with connection details, and you can enable/disable them per use case. The database tools return structured results the LLM can reason about. SSH tools stream output for long-running commands. There's also a Python REPL tool for data manipulation when the LLM needs to transform query results.<p>On the RAG/indexing side: Chunking uses <em>Chonkie</em>'s CodeChunker with Magika (Google's ML model) for automatic language detection, then tree-sitter for AST-aware splitting that respects semantic boundaries (functions, classes, blocks). Each code chunk gets a header with file path and import context so the LLM knows where it came from. Retrieval uses MMR (Maximal Marginal Relevance) to reduce near-duplicate results, balancing relevance with diversity via a configurable lambda parameter. FAISS indexes are portable and can be exported."},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: Self-hosted MCP server for SQL, SSH, and FAISS indexing"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://github.com/mattv8/ragtime"}},"_tags":["story","author_mattv8","story_46964772","show_hn"],"author":"mattv8","created_at":"2026-02-10T18:42:37Z","created_at_i":1770748957,"num_comments":0,"objectID":"46964772","points":3,"story_id":46964772,"story_text":"RAGtime is a self-hosted MCP server and FAISS&#x2F;PGVector manager that lets AI assistants run real operations on your infrastructure: SSH commands, SQL queries through SSH tunnels, git repo indexing, filesystem searches. It connects Claude, OpenAI, or Ollama to your environment via both MCP protocol and OpenAI-compatible chat completions API.<p>I originally built this over Christmas break as a &quot;self-serve business intelligence&quot; tool to stop fielding repetitive coworker questions (&quot;write me a query for X,&quot; &quot;where&#x27;s the logic for Y?&quot;) but now it&#x27;s morphed into a dev tool as well. I couldn&#x27;t find anything that centralized these tools and served them over chat in one place.<p>I&#x27;ve been using it daily (via MCP) for work and it&#x27;s been such a huge development accelerator for me. I want to share what I&#x27;ve built with the community, get feedback, or if you wish, contributions. Happy to answer questions about the architecture or use cases.<p>(You can stop here, unless you want more technical details...)<p>Tools: The agent gets access to configurable tools you define: SSH connections to servers (run commands, check logs, restart services), database queries via SSH tunnels (PostgreSQL, MySQL, MSSQL) with parameterized queries to prevent injection, and vector search over your indexed content. Each tool is defined in a config with connection details, and you can enable&#x2F;disable them per use case. The database tools return structured results the LLM can reason about. SSH tools stream output for long-running commands. There&#x27;s also a Python REPL tool for data manipulation when the LLM needs to transform query results.<p>On the RAG&#x2F;indexing side: Chunking uses Chonkie&#x27;s CodeChunker with Magika (Google&#x27;s ML model) for automatic language detection, then tree-sitter for AST-aware splitting that respects semantic boundaries (functions, classes, blocks). Each code chunk gets a header with file path and import context so the LLM knows where it came from. Retrieval uses MMR (Maximal Marginal Relevance) to reduce near-duplicate results, balancing relevance with diversity via a configurable lambda parameter. FAISS indexes are portable and can be exported.","title":"Show HN: Self-hosted MCP server for SQL, SSH, and FAISS indexing","updated_at":"2026-03-05T23:34:10Z","url":"https://github.com/mattv8/ragtime"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"rasinmuhammed"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"I built this because I was tired of guessing chunk_size=1000 and overlap=200 in my RAG pipelines and hoping for the best.<p>RAG-TUI is an open-source terminal tool that lets you visualize exactly how your text is being split before you index it. It helps you tune parameters in real-time and spot issues like sentences getting cut in half.<p>The Stack:\nBuilt with Textual (Python) for the TUI.\n<em>Chonkie</em> for token-based chunking.\nUsearch for local vector search.\nIntegrates with Ollama for entirely local/private debugging (also supports OpenAI/Groq).<p>Key Features:\nVisual Feedback: See color-coded chunks and their overlap regions instantly.\nQuality Indicators: The UI flags &quot;bad chunks&quot; (e.g.,  for cuts mid-sentence,  for clean breaks).\nBatch Testing: Run a set of queries against your current settings to calculate a &quot;hit rate&quot; before you deploy.<p>Export: Generates the Python code (LangChain/LlamaIndex) for your tuned config.<p>It\u2019s currently in beta (v0.0.1). I\u2019d love feedback on the chunking visualizations and what other metrics would be useful for debugging retrieval.<p>Repo: <a href=\"https://github.com/rasinmuhammed?tab=repositories\" rel=\"nofollow\">https://github.com/rasinmuhammed?tab=repositories</a> PyPI: <a href=\"https://pypi.org/project/rag-tui/\" rel=\"nofollow\">https://pypi.org/project/rag-tui/</a>"},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: RAG-TUI \u2013 Visual chunking debugger for RAG pipelines in the terminal"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://pypi.org/project/rag-tui/"}},"_tags":["story","author_rasinmuhammed","story_46214454","show_hn"],"author":"rasinmuhammed","created_at":"2025-12-10T05:38:22Z","created_at_i":1765345102,"num_comments":0,"objectID":"46214454","points":2,"story_id":46214454,"story_text":"I built this because I was tired of guessing chunk_size=1000 and overlap=200 in my RAG pipelines and hoping for the best.<p>RAG-TUI is an open-source terminal tool that lets you visualize exactly how your text is being split before you index it. It helps you tune parameters in real-time and spot issues like sentences getting cut in half.<p>The Stack:\nBuilt with Textual (Python) for the TUI.\nChonkie for token-based chunking.\nUsearch for local vector search.\nIntegrates with Ollama for entirely local&#x2F;private debugging (also supports OpenAI&#x2F;Groq).<p>Key Features:\nVisual Feedback: See color-coded chunks and their overlap regions instantly.\nQuality Indicators: The UI flags &quot;bad chunks&quot; (e.g.,  for cuts mid-sentence,  for clean breaks).\nBatch Testing: Run a set of queries against your current settings to calculate a &quot;hit rate&quot; before you deploy.<p>Export: Generates the Python code (LangChain&#x2F;LlamaIndex) for your tuned config.<p>It\u2019s currently in beta (v0.0.1). I\u2019d love feedback on the chunking visualizations and what other metrics would be useful for debugging retrieval.<p>Repo: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;rasinmuhammed?tab=repositories\" rel=\"nofollow\">https:&#x2F;&#x2F;github.com&#x2F;rasinmuhammed?tab=repositories</a> PyPI: <a href=\"https:&#x2F;&#x2F;pypi.org&#x2F;project&#x2F;rag-tui&#x2F;\" rel=\"nofollow\">https:&#x2F;&#x2F;pypi.org&#x2F;project&#x2F;rag-tui&#x2F;</a>","title":"Show HN: RAG-TUI \u2013 Visual chunking debugger for RAG pipelines in the terminal","updated_at":"2026-03-05T23:08:04Z","url":"https://pypi.org/project/rag-tui/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"justacoolname"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"I built VerbatimRAG to solve a specific problem: RAG systems that retrieve the right documents but then paraphrase incorrectly, introducing factual errors (hallucinations).<p>Instead of letting an LLM generate responses based on retrieved context, VerbatimRAG extracts and returns exact text spans from source documents. Every word in the output exists verbatim in your documents.<p>Technical approach:<p>- Fine-tuned ModernBERT on RAGBench dataset for span classification (relevant/not relevant)<p>- Documents chunked with Docling/<em>Chonkie</em> and indexed with SPLADE for sparse retrieval<p>- Query-time: retrieve \u2192 classify spans \u2192 compose response from exact quotes using dynamic templates<p>- Each span includes citation back to source document<p>Trade-offs:<p>- Responses can be choppy since they're composed of exact quotes<p>- No summarization or synthesis across documents<p>- Works poorly for conversational/creative tasks<p>An interesting part: You can run the entire pipeline without any LLM - just embeddings + our ModernBERT extractor. With SPLADE embeddings, it runs entirely on CPU.<p>- Code: <a href=\"https://github.com/KRLabsOrg/verbatim-rag\" rel=\"nofollow\">https://github.com/KRLabsOrg/verbatim-rag</a> (MIT)<p>- Paper: <a href=\"https://aclanthology.org/2025.bionlp-share.8.pdf\" rel=\"nofollow\">https://aclanthology.org/2025.bionlp-share.8.pdf</a><p>- HuggingFace model: <a href=\"https://huggingface.co/KRLabsOrg/verbatim-rag-modern-bert-v1\" rel=\"nofollow\">https://huggingface.co/KRLabsOrg/verbatim-rag-modern-bert-v1</a><p>We can imagine this approach more in applications where accuracy matters more than fluency (e.g. compliant heavy domains).<p>Curious if others have tried similar &quot;constrained generation&quot; approaches."},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: VerbatimRAG \u2013 RAG that returns only exact text from documents"}},"_tags":["story","author_justacoolname","story_44877622","show_hn"],"author":"justacoolname","created_at":"2025-08-12T15:31:36Z","created_at_i":1755012696,"num_comments":0,"objectID":"44877622","points":2,"story_id":44877622,"story_text":"I built VerbatimRAG to solve a specific problem: RAG systems that retrieve the right documents but then paraphrase incorrectly, introducing factual errors (hallucinations).<p>Instead of letting an LLM generate responses based on retrieved context, VerbatimRAG extracts and returns exact text spans from source documents. Every word in the output exists verbatim in your documents.<p>Technical approach:<p>- Fine-tuned ModernBERT on RAGBench dataset for span classification (relevant&#x2F;not relevant)<p>- Documents chunked with Docling&#x2F;Chonkie and indexed with SPLADE for sparse retrieval<p>- Query-time: retrieve \u2192 classify spans \u2192 compose response from exact quotes using dynamic templates<p>- Each span includes citation back to source document<p>Trade-offs:<p>- Responses can be choppy since they&#x27;re composed of exact quotes<p>- No summarization or synthesis across documents<p>- Works poorly for conversational&#x2F;creative tasks<p>An interesting part: You can run the entire pipeline without any LLM - just embeddings + our ModernBERT extractor. With SPLADE embeddings, it runs entirely on CPU.<p>- Code: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;KRLabsOrg&#x2F;verbatim-rag\" rel=\"nofollow\">https:&#x2F;&#x2F;github.com&#x2F;KRLabsOrg&#x2F;verbatim-rag</a> (MIT)<p>- Paper: <a href=\"https:&#x2F;&#x2F;aclanthology.org&#x2F;2025.bionlp-share.8.pdf\" rel=\"nofollow\">https:&#x2F;&#x2F;aclanthology.org&#x2F;2025.bionlp-share.8.pdf</a><p>- HuggingFace model: <a href=\"https:&#x2F;&#x2F;huggingface.co&#x2F;KRLabsOrg&#x2F;verbatim-rag-modern-bert-v1\" rel=\"nofollow\">https:&#x2F;&#x2F;huggingface.co&#x2F;KRLabsOrg&#x2F;verbatim-rag-modern-bert-v1</a><p>We can imagine this approach more in applications where accuracy matters more than fluency (e.g. compliant heavy domains).<p>Curious if others have tried similar &quot;constrained generation&quot; approaches.","title":"Show HN: VerbatimRAG \u2013 RAG that returns only exact text from documents","updated_at":"2026-03-05T22:34:08Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"snyy"},"comment_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"This pertains to the larger open source licensing discussions that have been happening (as I'm sure you've seen too).<p>We've released projects under the MIT license before, most notably <a href=\"https://github.com/feyninc/chonkie\" rel=\"nofollow\">https://github.com/feyninc/<em>chonkie</em></a>. While we're not trying to directly monetize on this work, credit goes a long way and helps in other operations.<p>Recently, attributed usage is shrinking. To be clear, this is not a shrinkage in actual use of our software, just how many people acknowledge that they rely on it.<p>cc-by-nc is a protection against that. We've been very honest about our work being on top of BiRefNet as we want to extend the original creators the same courtesy. I have no issues if individuals fork/finetune/or otherwise build on top of any open source projects we release, irrespective of license. At minimum, we want acknowledgment if a company chooses to use our software in production."},"story_title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: FeyNoBg \u2013 Automatic background removal model and training library"},"story_url":{"matchLevel":"none","matchedWords":[],"value":"https://usefeyn.com/blog/feynobg/"}},"_tags":["comment","author_snyy","story_49072462"],"author":"snyy","children":[49080418],"comment_text":"This pertains to the larger open source licensing discussions that have been happening (as I&#x27;m sure you&#x27;ve seen too).<p>We&#x27;ve released projects under the MIT license before, most notably <a href=\"https:&#x2F;&#x2F;github.com&#x2F;feyninc&#x2F;chonkie\" rel=\"nofollow\">https:&#x2F;&#x2F;github.com&#x2F;feyninc&#x2F;chonkie</a>. While we&#x27;re not trying to directly monetize on this work, credit goes a long way and helps in other operations.<p>Recently, attributed usage is shrinking. To be clear, this is not a shrinkage in actual use of our software, just how many people acknowledge that they rely on it.<p>cc-by-nc is a protection against that. We&#x27;ve been very honest about our work being on top of BiRefNet as we want to extend the original creators the same courtesy. I have no issues if individuals fork&#x2F;finetune&#x2F;or otherwise build on top of any open source projects we release, irrespective of license. At minimum, we want acknowledgment if a company chooses to use our software in production.","created_at":"2026-07-27T20:40:37Z","created_at_i":1785184837,"objectID":"49075234","parent_id":49074829,"story_id":49072462,"story_title":"Show HN: FeyNoBg \u2013 Automatic background removal model and training library","story_url":"https://usefeyn.com/blog/feynobg/","updated_at":"2026-07-28T07:12:20Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"paroneayea"},"comment_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Hi! I actually have, and have been using as my main device, an MNT Pocket Reform, and at one point was using an MNT Reform.<p>MNT's devices are honestly kinda incredible. I can't recommend them for everyone <i>yet</i>, though that will change soon. Both of them are a kind of &quot;laptop of theseus&quot;; you can open and change and repair them, and honestly I have. Both device's guts are dramatically different than where they started, but changes happened piecemeal.<p>The Pocket Reform is an incredibly cute device. I can't pull it out anywhere without people fawning over it. Not even just hackers! It's an open hardware cyberdeck you can use as your main device. What's not to love?<p>The MNT Reform Next will be closer to what many people want out of a laptop. It'll still be <em>chonkie</em>r than a normal laptop. But again, these things are <i>incredibly</i> upgradeable and hackable.<p>Now for the caveats: for <i>most people</i>, I would wait until the MNT Quasar module comes out. The reason being is that while the current &quot;best&quot; module, the RK3588, is honestly pretty good with the 32gb version, it lacks one critical thing for most people and one other critical thing for me in particular. The first thing it lacks is support for suspend. Honestly, it does make working with a tiny computer like this a bit less appealing than the Pocket Reform's form factor could be, since what you <i>really</i> want to do is just be putting it to sleep and taking it out everywhere. The other thing is that Blender doesn't really run on the rk3588 either. You can kind of get a patched version working based on Lucie's patches, and I did, but it doesn't support the Eevee renderer, which is a must-have for me personally.<p>But the MNT Quasar board will be apparently fixing both of those above issues, and yes, at that point this will be a device that I can recommend generally. And I'll also note that I got the very first MNT Reform when it came out, and <i>holy moly</i> the state of the hardware now vs when it originally launched half a decade ago... it's hugely far between, but the amazing thing is that to get it up to the current state, I didn't need to throw things away, I could just open and tinker with things bit by bit.<p>In many ways, the MNT Pocket Reform reminds me of the book the main character has in the solarpunk book A Psalm for the Wild Built; a computer that is issued to you at the age of 16 and that which you carry with you for life. You can upgrade and repair it easily, but you don't need to throw it away.<p>So yeah, it's not for everyone. But if the idea of supporting repairable, upgradeable open hardware made by a lovely bunch of queers in Berlin sounds great? That you can hack on, that has a neat little community, that will be a conversation point amongst fellow hackers for its quirkiness? It's appealing to some, but not all."},"story_title":{"matchLevel":"none","matchedWords":[],"value":"MNT Reform is an open hardware laptop, designed and assembled in Germany"},"story_url":{"matchLevel":"none","matchedWords":[],"value":"http://mnt.stanleylieber.com/reform/"}},"_tags":["comment","author_paroneayea","story_47834689"],"author":"paroneayea","children":[47860472],"comment_text":"Hi! I actually have, and have been using as my main device, an MNT Pocket Reform, and at one point was using an MNT Reform.<p>MNT&#x27;s devices are honestly kinda incredible. I can&#x27;t recommend them for everyone <i>yet</i>, though that will change soon. Both of them are a kind of &quot;laptop of theseus&quot;; you can open and change and repair them, and honestly I have. Both device&#x27;s guts are dramatically different than where they started, but changes happened piecemeal.<p>The Pocket Reform is an incredibly cute device. I can&#x27;t pull it out anywhere without people fawning over it. Not even just hackers! It&#x27;s an open hardware cyberdeck you can use as your main device. What&#x27;s not to love?<p>The MNT Reform Next will be closer to what many people want out of a laptop. It&#x27;ll still be chonkier than a normal laptop. But again, these things are <i>incredibly</i> upgradeable and hackable.<p>Now for the caveats: for <i>most people</i>, I would wait until the MNT Quasar module comes out. The reason being is that while the current &quot;best&quot; module, the RK3588, is honestly pretty good with the 32gb version, it lacks one critical thing for most people and one other critical thing for me in particular. The first thing it lacks is support for suspend. Honestly, it does make working with a tiny computer like this a bit less appealing than the Pocket Reform&#x27;s form factor could be, since what you <i>really</i> want to do is just be putting it to sleep and taking it out everywhere. The other thing is that Blender doesn&#x27;t really run on the rk3588 either. You can kind of get a patched version working based on Lucie&#x27;s patches, and I did, but it doesn&#x27;t support the Eevee renderer, which is a must-have for me personally.<p>But the MNT Quasar board will be apparently fixing both of those above issues, and yes, at that point this will be a device that I can recommend generally. And I&#x27;ll also note that I got the very first MNT Reform when it came out, and <i>holy moly</i> the state of the hardware now vs when it originally launched half a decade ago... it&#x27;s hugely far between, but the amazing thing is that to get it up to the current state, I didn&#x27;t need to throw things away, I could just open and tinker with things bit by bit.<p>In many ways, the MNT Pocket Reform reminds me of the book the main character has in the solarpunk book A Psalm for the Wild Built; a computer that is issued to you at the age of 16 and that which you carry with you for life. You can upgrade and repair it easily, but you don&#x27;t need to throw it away.<p>So yeah, it&#x27;s not for everyone. But if the idea of supporting repairable, upgradeable open hardware made by a lovely bunch of queers in Berlin sounds great? That you can hack on, that has a neat little community, that will be a conversation point amongst fellow hackers for its quirkiness? It&#x27;s appealing to some, but not all.","created_at":"2026-04-21T11:54:12Z","created_at_i":1776772452,"objectID":"47847517","parent_id":47834689,"story_id":47834689,"story_title":"MNT Reform is an open hardware laptop, designed and assembled in Germany","story_url":"http://mnt.stanleylieber.com/reform/","updated_at":"2026-07-08T08:59:25Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"brailsafe"},"comment_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"&gt; That being said, it's nice having 64gb of RAM, a fast CPU and an Nvidia card (we build stuff that runs on CUDA). Build times are quick and I can run some of our more demanding test suites without RAM filling up and slowing everything down.<p>No question there, more RAM and a specifically CUDA capable card make sense. At a big corp gig I did years ago, they issued me this atrocious HP thing they must have bought in bulk. I really tried to be optimistic, since it was just a tool and I was otherwise grateful for the work, and I'm sure the ram and CPU situation was fine, but for my use it only actively detracted from my ability to get things done. It pretty much had to be docked at all times, the screen had one viewing  angle, Windows was functionally detrimental for my workflow (frontend web at that time), and the battery life was just sad.<p>ThinkPads have always seemed a bit better, even their more <em>chonkie</em>r versions."},"story_title":{"matchLevel":"none","matchedWords":[],"value":"The MacBook Neo"},"story_url":{"matchLevel":"none","matchedWords":[],"value":"https://daringfireball.net/2026/03/the_macbook_neo"}},"_tags":["comment","author_brailsafe","story_47334293"],"author":"brailsafe","comment_text":"&gt; That being said, it&#x27;s nice having 64gb of RAM, a fast CPU and an Nvidia card (we build stuff that runs on CUDA). Build times are quick and I can run some of our more demanding test suites without RAM filling up and slowing everything down.<p>No question there, more RAM and a specifically CUDA capable card make sense. At a big corp gig I did years ago, they issued me this atrocious HP thing they must have bought in bulk. I really tried to be optimistic, since it was just a tool and I was otherwise grateful for the work, and I&#x27;m sure the ram and CPU situation was fine, but for my use it only actively detracted from my ability to get things done. It pretty much had to be docked at all times, the screen had one viewing  angle, Windows was functionally detrimental for my workflow (frontend web at that time), and the battery life was just sad.<p>ThinkPads have always seemed a bit better, even their more chonkier versions.","created_at":"2026-03-11T23:40:53Z","created_at_i":1773272453,"objectID":"47344112","parent_id":47343332,"story_id":47334293,"story_title":"The MacBook Neo","story_url":"https://daringfireball.net/2026/03/the_macbook_neo","updated_at":"2026-03-11T23:46:50Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"dormento"},"comment_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"I think its a matter of the chonkers feeling like you're getting what you're paying for. &quot;This thing is so expensive! WHY is it so thin?&quot;<p>Of course the zeitgeist keeps changing and what made sense yesterday might look like madness for those that aren't following things closely. As for myself, I very much prefer &quot;slightly <em>chonkie</em>r, but better heat dissipation&quot; (coming from owning an intel mb pro and using it on my lap often)."},"story_title":{"matchLevel":"none","matchedWords":[],"value":"MacBook Air with M5"},"story_url":{"matchLevel":"none","matchedWords":[],"value":"https://www.apple.com/newsroom/2026/03/apple-introduces-the-new-macbook-air-with-m5/"}},"_tags":["comment","author_dormento","story_47232502"],"author":"dormento","comment_text":"I think its a matter of the chonkers feeling like you&#x27;re getting what you&#x27;re paying for. &quot;This thing is so expensive! WHY is it so thin?&quot;<p>Of course the zeitgeist keeps changing and what made sense yesterday might look like madness for those that aren&#x27;t following things closely. As for myself, I very much prefer &quot;slightly chonkier, but better heat dissipation&quot; (coming from owning an intel mb pro and using it on my lap often).","created_at":"2026-03-05T12:46:43Z","created_at_i":1772714803,"objectID":"47261002","parent_id":47248035,"story_id":47232502,"story_title":"MacBook Air with M5","story_url":"https://www.apple.com/newsroom/2026/03/apple-introduces-the-new-macbook-air-with-m5/","updated_at":"2026-03-05T23:42:10Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"snyy"},"comment_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Memchunk is already in <em>Chonkie</em> as the `FastChunker`<p>To install: pip install <em>chonkie</em>[fast]<p>```\nfrom <em>chonkie</em> import FastChunker<p>chunker = FastChunker(chunk_size=4096)\nchunks = chunker(huge_document)\n```"},"story_title":{"matchLevel":"none","matchedWords":[],"value":"So, you want to chunk really fast?"},"story_url":{"matchLevel":"none","matchedWords":[],"value":"https://minha.sh/posts/so,-you-want-to-chunk-really-fast"}},"_tags":["comment","author_snyy","story_46501665"],"author":"snyy","comment_text":"Memchunk is already in Chonkie as the `FastChunker`<p>To install: pip install chonkie[fast]<p>```\nfrom chonkie import FastChunker<p>chunker = FastChunker(chunk_size=4096)\nchunks = chunker(huge_document)\n```","created_at":"2026-01-05T17:56:31Z","created_at_i":1767635791,"objectID":"46502188","parent_id":46502149,"story_id":46501665,"story_title":"So, you want to chunk really fast?","story_url":"https://minha.sh/posts/so,-you-want-to-chunk-really-fast","updated_at":"2026-03-05T23:16:28Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"brene"},"comment_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Do you see this project merge with the <em>Chonkie</em> at some point? Or do you intend to keep it separate?"},"story_title":{"matchLevel":"none","matchedWords":[],"value":"So, you want to chunk really fast?"},"story_url":{"matchLevel":"none","matchedWords":[],"value":"https://minha.sh/posts/so,-you-want-to-chunk-really-fast"}},"_tags":["comment","author_brene","story_46501665"],"author":"brene","children":[46502188],"comment_text":"Do you see this project merge with the Chonkie at some point? Or do you intend to keep it separate?","created_at":"2026-01-05T17:54:05Z","created_at_i":1767635645,"objectID":"46502149","parent_id":46501665,"story_id":46501665,"story_title":"So, you want to chunk really fast?","story_url":"https://minha.sh/posts/so,-you-want-to-chunk-really-fast","updated_at":"2026-03-05T23:16:28Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"snyy"},"comment_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"We're the maintainers of <em>Chonkie</em>, a chunking library for RAG pipelines.<p>Recently, we've been using <em>Chonkie</em> to build deep research agents that watch topics for new developments and automatically update their reports. This requires chunking a large amount of data constantly.<p>While building this, we noticed <em>Chonkie</em> felt slow. We started wondering: what's the theoretical limit here? How fast can text chunking actually get if we throw out all the abstractions and go straight to the metal?<p>This post is about that rabbit hole and how it led us to build memchunk - the fastest chunking library, capable of chunking text at 1TB/s.<p>Blog: <a href=\"https://minha.sh/posts/so,-you-want-to-chunk-really-fast\" rel=\"nofollow\">https://minha.sh/posts/so,-you-want-to-chunk-really-fast</a><p>GitHub: <a href=\"https://github.com/chonkie-inc/memchunk\" rel=\"nofollow\">https://github.com/<em>chonkie</em>-inc/memchunk</a><p>Happy to answer any questions!"},"story_title":{"matchLevel":"none","matchedWords":[],"value":"So, you want to chunk really fast?"},"story_url":{"matchLevel":"none","matchedWords":[],"value":"https://minha.sh/posts/so,-you-want-to-chunk-really-fast"}},"_tags":["comment","author_snyy","story_46501665"],"author":"snyy","children":[46512808],"comment_text":"We&#x27;re the maintainers of Chonkie, a chunking library for RAG pipelines.<p>Recently, we&#x27;ve been using Chonkie to build deep research agents that watch topics for new developments and automatically update their reports. This requires chunking a large amount of data constantly.<p>While building this, we noticed Chonkie felt slow. We started wondering: what&#x27;s the theoretical limit here? How fast can text chunking actually get if we throw out all the abstractions and go straight to the metal?<p>This post is about that rabbit hole and how it led us to build memchunk - the fastest chunking library, capable of chunking text at 1TB&#x2F;s.<p>Blog: <a href=\"https:&#x2F;&#x2F;minha.sh&#x2F;posts&#x2F;so,-you-want-to-chunk-really-fast\" rel=\"nofollow\">https:&#x2F;&#x2F;minha.sh&#x2F;posts&#x2F;so,-you-want-to-chunk-really-fast</a><p>GitHub: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;memchunk\" rel=\"nofollow\">https:&#x2F;&#x2F;github.com&#x2F;chonkie-inc&#x2F;memchunk</a><p>Happy to answer any questions!","created_at":"2026-01-05T17:19:33Z","created_at_i":1767633573,"objectID":"46501666","parent_id":46501665,"story_id":46501665,"story_title":"So, you want to chunk really fast?","story_url":"https://minha.sh/posts/so,-you-want-to-chunk-really-fast","updated_at":"2026-03-05T23:16:21Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"brailsafe"},"comment_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"The switches are much lighter to the touch, and although I also prefer scissor switches, I've grown to like the mWave switches too. The lighter switch feel causes some typos, and I'm  not yet as fast on it as even my MacBook keyboard, but there's always an adjustment period. They're also a little louder than the sculpt, but nothing remotely close to other mechanical switch types, and I think I might even say it's just a different type of sound, since I can type more softly than before.<p>The palm rest is a more comfortable softer pad than the the o.g sculpt, but I find for me it does get a little sweaty. I take Adhd meds during the day and drink a shit ton of coffee, so tend have very sweaty hands. I can't yet speak to durability, but the sculpt palm rest starts looking tattered around the ~2 year mark, while the Matias palm rest is a replaceable piece of rubber with a fantastic velvety feel (I use it when I'm at the office).<p>Connectivity is way better than the sculpt, but it's a little finicky when switching between devices on Bluetooth, which I feel I might just be doing wrong and haven't tried to learn about yet.<p>I find that the keycaps have low quality printed characters on the mac version, and when the backlight is on, some keys are hard to read or don't shine through properly.<p>My biggest problem with this keyboard is that it has a small right shift key, a normal size left shift key, and arrow keys that I find less preferable to the sculpt. The small right shift key means it's harder to position my shoulders in an ideal way compared to the sculpt for my ridiculously large hands, and I have to contort my wrist a bit more than I'd like. I also just can't feel my way around the board as easily, since I used the shift keys and arrows as anchor points.<p>As I've gotten used to it a little more, this is becoming less of an issue.<p>For portability, the overall build feels more solid than the sculpt, which would sometimes get stuck keys if I'd throw it in my backpack and get a piece of dirt in there or something. The better connectivity is a huge relief, since I don't need to worry about a dongle for wireless, and/or can use a usbc cable if the batteries are dead. It seems a bit shorter but <em>chonkie</em>r, and maybe weighs less.<p>So that's my review. 8.5/10, since some of these lean toward preferences rather than quality. I'm not as confident touch typing with it yet, maybe 70% as confident, but I think I'll keep it and refine that skill.<p>Additionally, although the printed/etched characters on the keycaps are low quality, I'm glad there's mac variant. I did use the sculpt overwhelmingly on my mac, and had to remap keys, which I'll now do if necessary on my windows PC for the minority of time I'm using it there."},"story_title":{"matchLevel":"none","matchedWords":[],"value":"Ask HN: What tech purchase did you regret even though reviews were great?"}},"_tags":["comment","author_brailsafe","story_46387893"],"author":"brailsafe","comment_text":"The switches are much lighter to the touch, and although I also prefer scissor switches, I&#x27;ve grown to like the mWave switches too. The lighter switch feel causes some typos, and I&#x27;m  not yet as fast on it as even my MacBook keyboard, but there&#x27;s always an adjustment period. They&#x27;re also a little louder than the sculpt, but nothing remotely close to other mechanical switch types, and I think I might even say it&#x27;s just a different type of sound, since I can type more softly than before.<p>The palm rest is a more comfortable softer pad than the the o.g sculpt, but I find for me it does get a little sweaty. I take Adhd meds during the day and drink a shit ton of coffee, so tend have very sweaty hands. I can&#x27;t yet speak to durability, but the sculpt palm rest starts looking tattered around the ~2 year mark, while the Matias palm rest is a replaceable piece of rubber with a fantastic velvety feel (I use it when I&#x27;m at the office).<p>Connectivity is way better than the sculpt, but it&#x27;s a little finicky when switching between devices on Bluetooth, which I feel I might just be doing wrong and haven&#x27;t tried to learn about yet.<p>I find that the keycaps have low quality printed characters on the mac version, and when the backlight is on, some keys are hard to read or don&#x27;t shine through properly.<p>My biggest problem with this keyboard is that it has a small right shift key, a normal size left shift key, and arrow keys that I find less preferable to the sculpt. The small right shift key means it&#x27;s harder to position my shoulders in an ideal way compared to the sculpt for my ridiculously large hands, and I have to contort my wrist a bit more than I&#x27;d like. I also just can&#x27;t feel my way around the board as easily, since I used the shift keys and arrows as anchor points.<p>As I&#x27;ve gotten used to it a little more, this is becoming less of an issue.<p>For portability, the overall build feels more solid than the sculpt, which would sometimes get stuck keys if I&#x27;d throw it in my backpack and get a piece of dirt in there or something. The better connectivity is a huge relief, since I don&#x27;t need to worry about a dongle for wireless, and&#x2F;or can use a usbc cable if the batteries are dead. It seems a bit shorter but chonkier, and maybe weighs less.<p>So that&#x27;s my review. 8.5&#x2F;10, since some of these lean toward preferences rather than quality. I&#x27;m not as confident touch typing with it yet, maybe 70% as confident, but I think I&#x27;ll keep it and refine that skill.<p>Additionally, although the printed&#x2F;etched characters on the keycaps are low quality, I&#x27;m glad there&#x27;s mac variant. I did use the sculpt overwhelmingly on my mac, and had to remap keys, which I&#x27;ll now do if necessary on my windows PC for the minority of time I&#x27;m using it there.","created_at":"2025-12-26T09:28:01Z","created_at_i":1766741281,"objectID":"46390585","parent_id":46389803,"story_id":46387893,"story_title":"Ask HN: What tech purchase did you regret even though reviews were great?","updated_at":"2026-07-10T21:21:19Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"CjHuber"},"comment_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Took me a minute to realize this is not about <em>Chonkie</em>.\nI would be interested in how this compares to the other's semantic chunking approach"},"story_title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: Chonky \u2013 a neural text semantic chunking goes multilingual"},"story_url":{"matchLevel":"none","matchedWords":[],"value":"https://huggingface.co/mirth/chonky_mmbert_small_multilingual_1"}},"_tags":["comment","author_CjHuber","story_45703196"],"author":"CjHuber","children":[45736266],"comment_text":"Took me a minute to realize this is not about Chonkie.\nI would be interested in how this compares to the other&#x27;s semantic chunking approach","created_at":"2025-10-26T08:41:45Z","created_at_i":1761468105,"objectID":"45710091","parent_id":45703196,"story_id":45703196,"story_title":"Show HN: Chonky \u2013 a neural text semantic chunking goes multilingual","story_url":"https://huggingface.co/mirth/chonky_mmbert_small_multilingual_1","updated_at":"2026-03-05T22:55:16Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"ChromaticPanic"},"comment_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"When I was looking at your library last week, It didn't look like there was a direct way to use my own embedding model endpoints. For example, I run snowflake arctic embed in vllm and it would be good be able to use it with <em>Chonkie</em>'s semantic chunkers."},"story_title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Launch HN: <em>Chonkie</em> (YC X25) \u2013 Open-Source Library for Advanced Chunking"}},"_tags":["comment","author_ChromaticPanic","story_44225930"],"author":"ChromaticPanic","comment_text":"When I was looking at your library last week, It didn&#x27;t look like there was a direct way to use my own embedding model endpoints. For example, I run snowflake arctic embed in vllm and it would be good be able to use it with Chonkie&#x27;s semantic chunkers.","created_at":"2025-06-10T06:54:42Z","created_at_i":1749538482,"objectID":"44233507","parent_id":44225930,"story_id":44225930,"story_title":"Launch HN: Chonkie (YC X25) \u2013 Open-Source Library for Advanced Chunking","updated_at":"2025-06-21T13:22:54Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"snyy"},"comment_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"We don't yet, but our library comes with a visualization tool that you can use to compare chunkers directly. <a href=\"https://docs.chonkie.ai/python-sdk/utils/visualizer\">https://docs.<em>chonkie</em>.ai/python-sdk/utils/visualizer</a>"},"story_title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["chonkie"],"value":"Launch HN: <em>Chonkie</em> (YC X25) \u2013 Open-Source Library for Advanced Chunking"}},"_tags":["comment","author_snyy","story_44225930"],"author":"snyy","comment_text":"We don&#x27;t yet, but our library comes with a visualization tool that you can use to compare chunkers directly. <a href=\"https:&#x2F;&#x2F;docs.chonkie.ai&#x2F;python-sdk&#x2F;utils&#x2F;visualizer\">https:&#x2F;&#x2F;docs.chonkie.ai&#x2F;python-sdk&#x2F;utils&#x2F;visualizer</a>","created_at":"2025-06-10T00:33:39Z","created_at_i":1749515619,"objectID":"44231226","parent_id":44231089,"story_id":44225930,"story_title":"Launch HN: Chonkie (YC X25) \u2013 Open-Source Library for Advanced Chunking","updated_at":"2025-06-10T00:55:24Z"}],"hitsPerPage":20,"nbHits":112054,"nbPages":50,"page":0,"params":"query=chonkie&advancedSyntax=true&analyticsTags=backend","processingTimeMS":45,"processingTimingsMS":{"_request":{"queue":1,"roundTrip":15},"afterFetch":{"format":{"highlighting":2,"total":2},"merge":{"mergeLoop":{"prepareNextHit":3,"total":3},"total":3},"total":3},"fetch":{"query":16,"scanning":24,"total":41},"total":45},"query":"chonkie","serverTimeMS":49}
