<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kanamija</title>
    <description>The latest articles on DEV Community by Kanamija (@kanamija).</description>
    <link>https://dev.to/kanamija</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4140231%2F1d7c5803-7232-4f06-853c-56e2de745a24.jpg</url>
      <title>DEV Community: Kanamija</title>
      <link>https://dev.to/kanamija</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kanamija"/>
    <language>en</language>
    <item>
      <title>Launching LemonBeam: Onboarding Guides for GitHub Repos That You Can Verify</title>
      <dc:creator>Kanamija</dc:creator>
      <pubDate>Fri, 25 Sep 2026 02:45:01 +0000</pubDate>
      <link>https://dev.to/kanamija/launching-lemonbeam-onboarding-guides-for-github-repos-that-you-can-verify-21j5</link>
      <guid>https://dev.to/kanamija/launching-lemonbeam-onboarding-guides-for-github-repos-that-you-can-verify-21j5</guid>
      <description>&lt;p&gt;Today we're launching &lt;strong&gt;LemonBeam&lt;/strong&gt;, an open-source tool that scans a public GitHub repository and generates an onboarding guide where every claim cites the exact file and lines it came from.&lt;/p&gt;

&lt;p&gt;🍋&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href="https://lemonbeam.app" rel="noopener noreferrer"&gt;lemonbeam.app&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Getting started in an unfamiliar codebase means piecing together what it does, how to run it, and how the tests work from READMEs, package scripts, config files, and source code.&lt;/p&gt;

&lt;p&gt;The obvious shortcut is asking ChatGPT. The answers are often useful, but when we checked the citations, they were fabricated, pointed hundreds or even thousands of lines away, or were missing entirely. A right answer you can't check is still a guess.&lt;/p&gt;

&lt;h2&gt;
  
  
  How LemonBeam is different
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Rules, not AI, decide which evidence the model sees.&lt;/strong&gt; LemonBeam downloads the repo at an exact commit, then filters, parses, and chunks the code with Tree-sitter and scores each chunk within a per-section token budget. One AI call writes the guide from that evidence only.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every citation is checked.&lt;/strong&gt; A separate validator removes any citation that doesn't match the evidence the model actually received.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gaps are visible.&lt;/strong&gt; Anything that couldn't be read or included is listed in an Uncertainties section instead of being hidden.&lt;/p&gt;

&lt;p&gt;Every guide has the same six sections: Project Overview, Setup/Installation, Running Locally, Project Structure, Testing, and Uncertainties and Missing Information. Each guide is pinned to the commit it analyzed, so everyone on a team can generate the same guide and check it line by line.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three ways to use it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🌐 Website:&lt;/strong&gt; Paste a public GitHub URL and your OpenRouter API key at &lt;a href="https://lemonbeam.app" rel="noopener noreferrer"&gt;lemonbeam.app&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💻 CLI:&lt;/strong&gt; Run &lt;code&gt;lemonbeam&lt;/code&gt; in a local folder or against a public GitHub URL, and save the guide as Markdown.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔌 MCP server:&lt;/strong&gt; Add LemonBeam to Claude Code, Codex, or another AI tool, and ask your assistant for an onboarding guide.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Setup instructions for the CLI and MCP server are on the website.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your code isn't stored
&lt;/h2&gt;

&lt;p&gt;LemonBeam has no database. Downloaded repos live in a temporary folder that's deleted when the scan ends, even if it fails. Your API key exists only in memory for that one request. The only code that leaves your machine is the evidence sent to the model through OpenRouter.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hardest bug
&lt;/h2&gt;

&lt;p&gt;Our pre-MVP pipeline was quietly sending every chunk to the model, which made guides expensive and limited us to a fraction of our target repo size. Fixing it cut the cost per guide from about 70¢ to 2¢ and took our supported repo size from 2 MB to 50 MB. I wrote about the full story here: &lt;a href="https://medium.com/@kanamijessieanderson/from-2-mb-to-50-mb-the-bug-that-almost-killed-our-mvp-e42331b981a9" rel="noopener noreferrer"&gt;From 2 MB to 50 MB: The Bug That Almost Killed Our MVP&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Separate, parallel AI calls with tuned prompts for each section&lt;/li&gt;
&lt;li&gt;Citation checking that verifies the cited lines actually support the claim&lt;/li&gt;
&lt;li&gt;Support for larger repos, monorepos, private repos, and languages beyond JavaScript and TypeScript&lt;/li&gt;
&lt;li&gt;A comparison of embeddings-based retrieval against our rule-based approach&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Contribute
&lt;/h2&gt;

&lt;p&gt;LemonBeam is open source under the MIT License. The best way to get started? Use LemonBeam on LemonBeam! Paste &lt;a href="https://github.com/oslabs-beta/lemonbeam" rel="noopener noreferrer"&gt;github.com/oslabs-beta/lemonbeam&lt;/a&gt; into &lt;a href="https://lemonbeam.app" rel="noopener noreferrer"&gt;lemonbeam.app&lt;/a&gt; to get a cited guide to our own codebase, then check out the contributing guide in the repo.&lt;/p&gt;

&lt;p&gt;Built by Kanami Anderson, John DeLong, and Tanisha Thompson-Jones.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>opensource</category>
      <category>ai</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
