<?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: Bharathkumar</title>
    <description>The latest articles on DEV Community by Bharathkumar (@iam_pbk).</description>
    <link>https://dev.to/iam_pbk</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F65482%2Fc9bbe7ea-f77e-4770-9dd4-19c05c8f9b0d.jpg</url>
      <title>DEV Community: Bharathkumar</title>
      <link>https://dev.to/iam_pbk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iam_pbk"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Bharathkumar</dc:creator>
      <pubDate>Mon, 16 Feb 2026 18:47:50 +0000</pubDate>
      <link>https://dev.to/iam_pbk/-2434</link>
      <guid>https://dev.to/iam_pbk/-2434</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/iam_pbk/snip-terminal-snippet-manager-570g" class="crayons-story__hidden-navigation-link"&gt;snip - Terminal Snippet Manager&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/iam_pbk/snip-terminal-snippet-manager-570g" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;GitHub Copilot CLI Challenge Submission&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/iam_pbk" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F65482%2Fc9bbe7ea-f77e-4770-9dd4-19c05c8f9b0d.jpg" alt="iam_pbk profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/iam_pbk" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Bharathkumar
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Bharathkumar
                
              
              &lt;div id="story-author-preview-content-3259128" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/iam_pbk" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F65482%2Fc9bbe7ea-f77e-4770-9dd4-19c05c8f9b0d.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Bharathkumar&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/iam_pbk/snip-terminal-snippet-manager-570g" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 16&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/iam_pbk/snip-terminal-snippet-manager-570g" id="article-link-3259128"&gt;
          snip - Terminal Snippet Manager
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/githubchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;githubchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cli"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cli&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/githubcopilot"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;githubcopilot&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/iam_pbk/snip-terminal-snippet-manager-570g" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;9&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/iam_pbk/snip-terminal-snippet-manager-570g#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            1 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>snip - Terminal Snippet Manager</title>
      <dc:creator>Bharathkumar</dc:creator>
      <pubDate>Mon, 16 Feb 2026 07:18:16 +0000</pubDate>
      <link>https://dev.to/iam_pbk/snip-terminal-snippet-manager-570g</link>
      <guid>https://dev.to/iam_pbk/snip-terminal-snippet-manager-570g</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;snip is a CLI snippet manager that lets developers save, search, and safely execute code snippets directly from the terminal—with fuzzy search, a keyboard-first TUI, and GitHub Gist sync.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvaod73iteu5uomm4t4zy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvaod73iteu5uomm4t4zy.png" alt="snip terminal" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fme8985944pddxdxyhefa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fme8985944pddxdxyhefa.png" alt="snip tui" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc8x2o1swt3n9kov6vsz6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc8x2o1swt3n9kov6vsz6.png" alt="copilot" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;Copilot CLI was like having a senior dev sitting next to me the entire time. When I got stuck on weird sql.js errors or needed to figure out how to make the SQLite adapter work with both better-sqlite3 and the WASM fallback—Copilot just got it. Instead of alt-tabbing to Stack Overflow every 5 minutes, I'd drop a prompt right in my terminal and get usable code back.&lt;/p&gt;

&lt;h2&gt;
  
  
  Website
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bharath-code.github.io/snip/" rel="noopener noreferrer"&gt;https://bharath-code.github.io/snip/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Bharath-code/snip" rel="noopener noreferrer"&gt;https://github.com/Bharath-code/snip&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  usage npm
&lt;/h2&gt;

&lt;p&gt;npm i snip-manager or npm install -g snip-manager&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>git scope -&gt; manage your multi git repos</title>
      <dc:creator>Bharathkumar</dc:creator>
      <pubDate>Wed, 17 Dec 2025 18:24:15 +0000</pubDate>
      <link>https://dev.to/iam_pbk/git-scope-manage-your-multi-git-repos-4lgg</link>
      <guid>https://dev.to/iam_pbk/git-scope-manage-your-multi-git-repos-4lgg</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/iam_pbk/how-i-built-in-app-workspace-switching-for-multi-repo-git-workflows-4cbh" class="crayons-story__hidden-navigation-link"&gt;How I Built In-App Workspace Switching for Multi-Repo Git Workflows&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/iam_pbk" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F65482%2Fc9bbe7ea-f77e-4770-9dd4-19c05c8f9b0d.jpg" alt="iam_pbk profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/iam_pbk" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Bharathkumar
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Bharathkumar
                
              
              &lt;div id="story-author-preview-content-3111800" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/iam_pbk" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F65482%2Fc9bbe7ea-f77e-4770-9dd4-19c05c8f9b0d.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Bharathkumar&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/iam_pbk/how-i-built-in-app-workspace-switching-for-multi-repo-git-workflows-4cbh" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Dec 17 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/iam_pbk/how-i-built-in-app-workspace-switching-for-multi-repo-git-workflows-4cbh" id="article-link-3111800"&gt;
          How I Built In-App Workspace Switching for Multi-Repo Git Workflows
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/git"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;git&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/go"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;go&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cli"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cli&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/iam_pbk/how-i-built-in-app-workspace-switching-for-multi-repo-git-workflows-4cbh" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/iam_pbk/how-i-built-in-app-workspace-switching-for-multi-repo-git-workflows-4cbh#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>git</category>
      <category>go</category>
      <category>cli</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How I Built In-App Workspace Switching for Multi-Repo Git Workflows</title>
      <dc:creator>Bharathkumar</dc:creator>
      <pubDate>Wed, 17 Dec 2025 18:21:12 +0000</pubDate>
      <link>https://dev.to/iam_pbk/how-i-built-in-app-workspace-switching-for-multi-repo-git-workflows-4cbh</link>
      <guid>https://dev.to/iam_pbk/how-i-built-in-app-workspace-switching-for-multi-repo-git-workflows-4cbh</guid>
      <description>&lt;h2&gt;
  
  
  Why Multi-Repo Git Workflows Break Down
&lt;/h2&gt;

&lt;p&gt;Modern development often means juggling many small repositories:&lt;br&gt;
microservices, shared libraries, tooling repos, and experiments.&lt;/p&gt;

&lt;p&gt;Git works extremely well at the single-repo level.&lt;br&gt;
Once you scale beyond that, context is what breaks first.&lt;/p&gt;

&lt;p&gt;I kept running into the same issues:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Losing track of which repos were dirty&lt;/li&gt;
&lt;li&gt;Jumping between different project trees&lt;/li&gt;
&lt;li&gt;Restarting tools just to change directories&lt;/li&gt;
&lt;li&gt;Symlinked workspaces behaving inconsistently&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This post is a short case study on how that led to git-scope v1.3.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  Constraints That Shaped the Solution
&lt;/h2&gt;

&lt;p&gt;Before writing code, I set some firm constraints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Terminal-first&lt;/li&gt;
&lt;li&gt;Local-only (no cloud, no telemetry)&lt;/li&gt;
&lt;li&gt;Read-only by default&lt;/li&gt;
&lt;li&gt;Composes with existing tools (editors, lazygit, shell)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;git-scope is intentionally a &lt;em&gt;lens&lt;/em&gt;, not a control panel.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Workspace Switching Was Necessary
&lt;/h2&gt;

&lt;p&gt;Originally, git-scope relied on configured root directories.&lt;br&gt;
That worked until real workflows got messy.&lt;/p&gt;

&lt;p&gt;Switching contexts meant:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Quitting the app&lt;/li&gt;
&lt;li&gt;Editing config&lt;/li&gt;
&lt;li&gt;Restarting&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That breaks flow.&lt;/p&gt;

&lt;p&gt;v1.3.0 introduces in-app workspace switching so you can move between&lt;br&gt;
repo trees without restarting or reconfiguring anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handling Real-World Filesystems (Symlinks)
&lt;/h2&gt;

&lt;p&gt;Many setups rely on symlinks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Codespaces&lt;/li&gt;
&lt;li&gt;External drives&lt;/li&gt;
&lt;li&gt;Dotfile-based workspaces&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If &lt;code&gt;cd&lt;/code&gt; works, the tool should work.&lt;/p&gt;

&lt;p&gt;v1.3.0 resolves paths explicitly so absolute paths, relative paths,&lt;br&gt;
and symlinked directories behave consistently.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Deliberately Didn’t Build
&lt;/h2&gt;

&lt;p&gt;Just as important as what shipped is what didn’t:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No git write operations&lt;/li&gt;
&lt;li&gt;No file browsing&lt;/li&gt;
&lt;li&gt;No team dashboards&lt;/li&gt;
&lt;li&gt;No telemetry or background services&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is clarity, not control.&lt;/p&gt;

&lt;h2&gt;
  
  
  Outcome So Far
&lt;/h2&gt;

&lt;p&gt;Workspace switching removed a real daily friction for me.&lt;br&gt;
More importantly, it clarified what git-scope is supposed to be:&lt;br&gt;
a calm overview of many repos, not another git client.&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing Thoughts
&lt;/h2&gt;

&lt;p&gt;Many teams end up building internal tooling to deal with repo sprawl.&lt;br&gt;
git-scope is my attempt to make one of those tools reusable,&lt;br&gt;
without losing the simplicity that made it useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing Thoughts
&lt;/h2&gt;

&lt;p&gt;Many teams end up building internal tooling to deal with repo sprawl.&lt;br&gt;
git-scope is my attempt to make one of those tools reusable,&lt;br&gt;
without losing the simplicity that made it useful.&lt;/p&gt;

&lt;p&gt;Project: &lt;a href="https://github.com/Bharath-code/git-scope" rel="noopener noreferrer"&gt;https://github.com/Bharath-code/git-scope&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>go</category>
      <category>cli</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to use git-scope.</title>
      <dc:creator>Bharathkumar</dc:creator>
      <pubDate>Wed, 10 Dec 2025 13:08:27 +0000</pubDate>
      <link>https://dev.to/iam_pbk/how-to-use-git-scope-3gb0</link>
      <guid>https://dev.to/iam_pbk/how-to-use-git-scope-3gb0</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/iam_pbk/git-scope-user-guide-2dfj" class="crayons-story__hidden-navigation-link"&gt;Git-Scope User Guide&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/iam_pbk" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F65482%2Fc9bbe7ea-f77e-4770-9dd4-19c05c8f9b0d.jpg" alt="iam_pbk profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/iam_pbk" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Bharathkumar
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Bharathkumar
                
              
              &lt;div id="story-author-preview-content-3097013" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/iam_pbk" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F65482%2Fc9bbe7ea-f77e-4770-9dd4-19c05c8f9b0d.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Bharathkumar&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/iam_pbk/git-scope-user-guide-2dfj" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Dec 10 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/iam_pbk/git-scope-user-guide-2dfj" id="article-link-3097013"&gt;
          Git-Scope User Guide
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/git"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;git&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cli"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cli&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/guide"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;guide&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/iam_pbk/git-scope-user-guide-2dfj" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt; reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/iam_pbk/git-scope-user-guide-2dfj#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>git</category>
      <category>cli</category>
      <category>guide</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Why I Chose GoatCounter Analytics for my GitHub Pages Site</title>
      <dc:creator>Bharathkumar</dc:creator>
      <pubDate>Wed, 10 Dec 2025 09:06:31 +0000</pubDate>
      <link>https://dev.to/iam_pbk/why-i-chose-goatcounter-for-my-github-pages-site-7k8</link>
      <guid>https://dev.to/iam_pbk/why-i-chose-goatcounter-for-my-github-pages-site-7k8</guid>
      <description>&lt;h2&gt;
  
  
  Simple Analytics for GitHub Pages: Why I Chose GoatCounter
&lt;/h2&gt;

&lt;p&gt;Adding analytics to a static site usually ends in one of two ways:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Google Analytics&lt;/strong&gt;: A privacy nightmare that requires a GDPR cookie banner.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;No Analytics&lt;/strong&gt;: You fly blind and never know if anyone visited.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I needed a middle ground for my GitHub Pages site. I looked at the big three options.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Google Analytics (Why Not?)
&lt;/h2&gt;

&lt;p&gt;GA4 is overkill. It tracks everything, sells the data, and forces you to annoy users with cookie consent popups. I just want to know how many people clicked my "Install" button.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Cloudflare Web Analytics (Why Not?)
&lt;/h2&gt;

&lt;p&gt;Cloudflare offers great free analytics.&lt;br&gt;
&lt;strong&gt;The Problem&lt;/strong&gt;: It expects you to own the domain.&lt;br&gt;
Because I use a &lt;code&gt;github.io&lt;/code&gt; subdomain, I cannot easily proxy my DNS through Cloudflare. Without DNS control, the setup becomes friction. I wanted "drop-in" simplicity.&lt;/p&gt;
&lt;h2&gt;
  
  
  3. Umami (Why Not?)
&lt;/h2&gt;

&lt;p&gt;Umami is fantastic and open-source.&lt;br&gt;
&lt;strong&gt;The Problem&lt;/strong&gt;: Hosting.&lt;br&gt;
You must self-host it (on Vercel/Railway) and manage a database (Supabase/Postgres). That is too much maintenance for a simple documentation site.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Winner: GoatCounter 🐐
&lt;/h2&gt;

&lt;p&gt;GoatCounter hit the sweet spot.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hosted&lt;/strong&gt;: No server to manage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free&lt;/strong&gt;: Generous tier for non-commercial projects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy&lt;/strong&gt;: No cookies. No GDPR banners required.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Universal&lt;/strong&gt;: Works on &lt;em&gt;any&lt;/em&gt; domain, including &lt;code&gt;github.io&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  How We Integrated It
&lt;/h2&gt;

&lt;p&gt;The setup took 2 minutes.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 1: Get the Code
&lt;/h3&gt;

&lt;p&gt;Sign up at GoatCounter and get your link context.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 2: Add the Script
&lt;/h3&gt;

&lt;p&gt;We added a single JS file to our &lt;code&gt;docs/&lt;/code&gt; folder to keep it clean.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docs/index.html&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;data-goatcounter=&lt;/span&gt;&lt;span class="s"&gt;"https://your-code.goatcounter.com/count"&lt;/span&gt;
        &lt;span class="na"&gt;async&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"count.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We host the &lt;code&gt;count.js&lt;/code&gt; locally to avoid external dependencies blocking the main thread, though you can load it from their CDN too.&lt;br&gt;
But still it blocked by Brave's adblocker.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;💻 Check out the &lt;a href="https://bharath-code.github.io/git-scope/" rel="noopener noreferrer"&gt;Git-Scope Docs&lt;/a&gt; to see it in action.&lt;/li&gt;
&lt;li&gt;🌐&lt;a href="https://bharath-code.github.io/git-scope/?utm_source=dev.to&amp;amp;utm_medium=article&amp;amp;utm_campaign=launch"&gt;Site&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>analytics</category>
      <category>privacy</category>
      <category>github</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Git-Scope User Guide</title>
      <dc:creator>Bharathkumar</dc:creator>
      <pubDate>Wed, 10 Dec 2025 08:38:33 +0000</pubDate>
      <link>https://dev.to/iam_pbk/git-scope-user-guide-2dfj</link>
      <guid>https://dev.to/iam_pbk/git-scope-user-guide-2dfj</guid>
      <description>&lt;h2&gt;
  
  
  Git-Scope User Guide 🔭
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Git-Scope&lt;/strong&gt; is a terminal dashboard for your local git repositories.&lt;/p&gt;

&lt;p&gt;Stop &lt;code&gt;cd&lt;/code&gt;-ing into folders to check status. Scan your projects and see a real-time dashboard of your entire workload.&lt;/p&gt;

&lt;h2&gt;
  
  
  📦 Installation
&lt;/h2&gt;

&lt;p&gt;Run these commands:&lt;/p&gt;

&lt;h3&gt;
  
  
  macOS / Linux (Homebrew)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew tap Bharath-code/tap
brew &lt;span class="nb"&gt;install &lt;/span&gt;git-scope
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Go Install
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;go &lt;span class="nb"&gt;install &lt;/span&gt;github.com/Bharath-code/git-scope/cmd/git-scope@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  💻 CLI Commands
&lt;/h2&gt;

&lt;p&gt;Use these commands to control the tool:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git-scope                    &lt;span class="c"&gt;# Launch dashboard (default)&lt;/span&gt;
git-scope scan               &lt;span class="c"&gt;# Print repos as JSON&lt;/span&gt;
git-scope scan-all           &lt;span class="c"&gt;# Scan entire system from home dir&lt;/span&gt;
git-scope init               &lt;span class="c"&gt;# Create config file&lt;/span&gt;
git-scope &lt;span class="nt"&gt;-h&lt;/span&gt;                 &lt;span class="c"&gt;# Show help&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Flags:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;-config&lt;/code&gt;: path to config file (default: &lt;code&gt;~/.config/git-scope/config.yml&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🖥️ The Dashboard
&lt;/h2&gt;

&lt;p&gt;When you run &lt;code&gt;git-scope&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqb39fm8gbnhob35ehyet.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqb39fm8gbnhob35ehyet.png" alt="Dashboard Preview" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Columns
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Status&lt;/strong&gt;: &lt;code&gt;● Dirty&lt;/code&gt; (Uncommitted/Unpushed) or &lt;code&gt;✓ Clean&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repository&lt;/strong&gt;: Project folder name.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Branch&lt;/strong&gt;: Active branch (e.g., &lt;code&gt;main&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Staged&lt;/strong&gt;: Files ready to commit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modified&lt;/strong&gt;: Changed files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Untracked&lt;/strong&gt;: New files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Last Commit&lt;/strong&gt;: Time since last commit.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎮 Controls
&lt;/h2&gt;

&lt;p&gt;Git-Scope is keyboard-first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Movement
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;k&lt;/code&gt; / &lt;code&gt;↑&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Up&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;j&lt;/code&gt; / &lt;code&gt;↓&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Down&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quit&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  🔍 Search
&lt;/h3&gt;

&lt;p&gt;Press &lt;code&gt;/&lt;/code&gt; to search.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Types fuzzy match (&lt;code&gt;gscope&lt;/code&gt; finds &lt;code&gt;git-scope&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Enter&lt;/code&gt; confirms, &lt;code&gt;Esc&lt;/code&gt; cancels.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🛡️ Filter (Dirty)
&lt;/h3&gt;

&lt;p&gt;Press &lt;code&gt;f&lt;/code&gt; to toggle the &lt;strong&gt;Dirty Filter&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ON&lt;/strong&gt;: Shows only repos with uncommitted or unpushed changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use Case&lt;/strong&gt;: Find unfinished work instantly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔃 Sort
&lt;/h3&gt;

&lt;p&gt;Press &lt;code&gt;s&lt;/code&gt; to cycle sort:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Dirty First&lt;/strong&gt; (Default)&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Name&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Last Modified&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  🚀 Actions
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open repo in &lt;code&gt;$EDITOR&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;r&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Rescan&lt;/strong&gt; text system&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;c&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Clear&lt;/strong&gt; search&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  ⚙️ Configuration
&lt;/h2&gt;

&lt;p&gt;Git-Scope works instantly. It finds git repos recursively in your current directory.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run from &lt;code&gt;~/projects&lt;/code&gt; for best results.&lt;/li&gt;
&lt;li&gt;Ignores &lt;code&gt;node_modules&lt;/code&gt; automatically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Caching&lt;/strong&gt;: Git-Scope caches results for speed (&amp;lt;10ms). Press &lt;code&gt;r&lt;/code&gt; to refresh if needed.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Workflow: Monday Morning Triage
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; Run &lt;code&gt;git-scope&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt; Check &lt;strong&gt;Sync&lt;/strong&gt; column for &lt;code&gt;↓&lt;/code&gt; (behind origin).&lt;/li&gt;
&lt;li&gt; Press &lt;code&gt;f&lt;/code&gt; to see &lt;strong&gt;Dirty&lt;/strong&gt; repos.&lt;/li&gt;
&lt;li&gt; Press &lt;code&gt;Enter&lt;/code&gt; to fix them.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;strong&gt;Get Started&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/Bharath-code/git-scope?utm_source=dev.to&amp;amp;utm_medium=article&amp;amp;utm_campaign=launch"&gt;Star on GitHub&lt;/a&gt; | &lt;a href="https://bharath-code.github.io/git-scope/?utm_source=dev.to&amp;amp;utm_medium=article&amp;amp;utm_campaign=launch"&gt;Website&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>cli</category>
      <category>guide</category>
      <category>productivity</category>
    </item>
    <item>
      <title>A guide to managing 50+ local git repositories efficiently using Git-Scope, a TUI for polyrepo power users</title>
      <dc:creator>Bharathkumar</dc:creator>
      <pubDate>Wed, 10 Dec 2025 08:00:21 +0000</pubDate>
      <link>https://dev.to/iam_pbk/a-guide-to-managing-50-local-git-repositories-efficiently-using-git-scope-a-tui-for-polyrepo-434</link>
      <guid>https://dev.to/iam_pbk/a-guide-to-managing-50-local-git-repositories-efficiently-using-git-scope-a-tui-for-polyrepo-434</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/iam_pbk/how-to-tame-your-multi-repo-chaos-with-the-terminal-52bi" class="crayons-story__hidden-navigation-link"&gt;How to Tame Your Multi-Repo Chaos with the Terminal&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/iam_pbk" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F65482%2Fc9bbe7ea-f77e-4770-9dd4-19c05c8f9b0d.jpg" alt="iam_pbk profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/iam_pbk" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Bharathkumar
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Bharathkumar
                
              
              &lt;div id="story-author-preview-content-3096930" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/iam_pbk" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F65482%2Fc9bbe7ea-f77e-4770-9dd4-19c05c8f9b0d.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Bharathkumar&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/iam_pbk/how-to-tame-your-multi-repo-chaos-with-the-terminal-52bi" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Dec 10 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/iam_pbk/how-to-tame-your-multi-repo-chaos-with-the-terminal-52bi" id="article-link-3096930"&gt;
          How to Tame Your Multi-Repo Chaos with the Terminal
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/go"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;go&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cli"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cli&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/git"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;git&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/iam_pbk/how-to-tame-your-multi-repo-chaos-with-the-terminal-52bi" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/iam_pbk/how-to-tame-your-multi-repo-chaos-with-the-terminal-52bi#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>opensource</category>
      <category>go</category>
      <category>cli</category>
      <category>git</category>
    </item>
    <item>
      <title>How to Tame Your Multi-Repo Chaos with the Terminal</title>
      <dc:creator>Bharathkumar</dc:creator>
      <pubDate>Wed, 10 Dec 2025 07:57:29 +0000</pubDate>
      <link>https://dev.to/iam_pbk/how-to-tame-your-multi-repo-chaos-with-the-terminal-52bi</link>
      <guid>https://dev.to/iam_pbk/how-to-tame-your-multi-repo-chaos-with-the-terminal-52bi</guid>
      <description>&lt;p&gt;As a full-stack developer or SRE, you likely live in a world of &lt;strong&gt;microservices and polyrepos&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You have 10, 20, or maybe 50+ repositories cloned locally.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;apps/frontend&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;apps/backend&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;libs/ui-kit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;infrastructure/terraform&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;...and that one side-project you forgot about.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Problem: "Context Fatigue" 🛑
&lt;/h2&gt;

&lt;p&gt;Every morning, the ritual is the same. navigate to each folder, checking if you forgot to push changes or if you're behind &lt;code&gt;origin/main&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;apps/frontend
git status
&lt;span class="c"&gt;# nothing to commit&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ../../libs/ui-kit
git status
&lt;span class="c"&gt;# ...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This manual context switching is a productivity killer. It pulls you out of your flow state before you even write a single line of code.&lt;/p&gt;

&lt;p&gt;Existing GUIs (like GitHub Desktop or Sourcetree) are often too slow or bloated due to Electron. &lt;code&gt;lazygit&lt;/code&gt; is amazing, but it's designed for focusing on &lt;em&gt;one&lt;/em&gt; repository at a time, not managing &lt;em&gt;fifty&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: A "God Mode" Dashboard for Git ⚡️
&lt;/h2&gt;

&lt;p&gt;I needed a tool that was:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Blazing Fast&lt;/strong&gt;: Instant startup (written in Go).&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Terminal First&lt;/strong&gt;: I don't want to leave my CLI.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Multi-Repo&lt;/strong&gt;: Shows me the state of &lt;em&gt;all&lt;/em&gt; my projects in one view.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So, I built &lt;strong&gt;&lt;a href="https://bharath-code.github.io/git-scope/" rel="noopener noreferrer"&gt;Git-Scope&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqb39fm8gbnhob35ehyet.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqb39fm8gbnhob35ehyet.png" alt="Git-Scope Demo" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Recursive Discovery&lt;/strong&gt;: Automatically finds git repos in your &lt;code&gt;~/projects&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Dirty First" Sorting&lt;/strong&gt;: Instantly bubbles up repos with uncommitted changes so you never lose work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fuzzy Search&lt;/strong&gt;: Type &lt;code&gt;/&lt;/code&gt; to jump to any project by name.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Who is this for? (ICP &amp;amp; Use Cases)
&lt;/h2&gt;

&lt;p&gt;We built this for the &lt;strong&gt;Polyrepo Power User&lt;/strong&gt;—specifically:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Microservices Backend Engineer 🏗️
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Pain&lt;/strong&gt;: You are working on a feature that spans 5 services (&lt;code&gt;auth&lt;/code&gt;, &lt;code&gt;payments&lt;/code&gt;, &lt;code&gt;core&lt;/code&gt;, etc.). You edited code in 3 of them but forgot which ones.&lt;br&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: Open Git-Scope. The "Dirty" status bubbles all 3 modified repos to the top. You commit and push them in seconds, ensuring your PRs stay in sync.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. The SRE / DevOps Engineer 🛠️
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Pain&lt;/strong&gt;: You manage dozens of Terraform modules or Ansible roles. You need to check if your local copies are behind &lt;code&gt;origin/main&lt;/code&gt; before running a plan.&lt;br&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: One glance at the dashboard shows you exactly which infrastructure repos are out of date (&lt;code&gt;↓ 2&lt;/code&gt; commits behind). You can pull updates without &lt;code&gt;cd&lt;/code&gt;-ing into each directory.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. The Open Source Maintainer 🐙
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Pain&lt;/strong&gt;: You maintain 10+ libraries. You have random stashes and unpushed experimental branches scattered everywhere.&lt;br&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: Use the &lt;strong&gt;Fuzzy Search&lt;/strong&gt; (&lt;code&gt;/&lt;/code&gt;) to instantly jump between libraries to review PRs locally. Use the "Clean" filter to find "abandoned" experiments you forgot to delete or push.&lt;/p&gt;
&lt;h2&gt;
  
  
  How to Install
&lt;/h2&gt;

&lt;p&gt;If you are on &lt;strong&gt;macOS&lt;/strong&gt; or &lt;strong&gt;Linux&lt;/strong&gt;, you can install it via Homebrew:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew tap Bharath-code/tap
brew &lt;span class="nb"&gt;install &lt;/span&gt;git-scope
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or install directly with &lt;strong&gt;Go&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;go &lt;span class="nb"&gt;install &lt;/span&gt;github.com/Bharath-code/git-scope/cmd/git-scope@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why I Built This?
&lt;/h2&gt;

&lt;p&gt;I wanted a tool that respects the "Unix Philosophy": do one thing and do it well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Git-Scope&lt;/strong&gt; doesn't try to replace &lt;code&gt;git&lt;/code&gt; or &lt;code&gt;lazygit&lt;/code&gt;. It complements them. It's the high-level radar functionality that was missing from my workflow. It helps me &lt;strong&gt;stay in the flow&lt;/strong&gt; and manage my local git universe without the friction.&lt;/p&gt;

&lt;p&gt;Check it out on GitHub and let me know what you think!&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/Bharath-code/git-scope" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://bharath-code.github.io/git-scope/?utm_source=dev.to&amp;amp;utm_medium=article&amp;amp;utm_campaign=launch"&gt;Website&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>go</category>
      <category>cli</category>
      <category>git</category>
    </item>
  </channel>
</rss>
