<?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: Aditya Singh</title>
    <description>The latest articles on DEV Community by Aditya Singh (@adisng).</description>
    <link>https://dev.to/adisng</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%2F4144777%2Fe5ccb0bc-c2cd-4fad-a8f2-e69272fb77ec.jpg</url>
      <title>DEV Community: Aditya Singh</title>
      <link>https://dev.to/adisng</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adisng"/>
    <language>en</language>
    <item>
      <title>Kram: A Tiny macOS Tool for Taming Chaotic Folders</title>
      <dc:creator>Aditya Singh</dc:creator>
      <pubDate>Sat, 26 Sep 2026 19:22:51 +0000</pubDate>
      <link>https://dev.to/adisng/kram-a-tiny-macos-tool-for-taming-chaotic-folders-3d0n</link>
      <guid>https://dev.to/adisng/kram-a-tiny-macos-tool-for-taming-chaotic-folders-3d0n</guid>
      <description>&lt;h2&gt;
  
  
  I Built Kram: A File Organizer That Knows What Not to Touch
&lt;/h2&gt;

&lt;p&gt;My Downloads folder had become a crime scene.&lt;/p&gt;

&lt;p&gt;Hundreds of files. Random screenshots. ZIP archives. PDFs. DMGs. Old projects. Files I couldn't remember downloading.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Kram&lt;/strong&gt;, a macOS file organizer designed around one simple idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Automate the boring part without giving the automation permission to wreck your Mac.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://github.com/adisng/Kram" rel="noopener noreferrer"&gt;https://github.com/adisng/Kram&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Kram?
&lt;/h2&gt;

&lt;p&gt;Kram is a lightweight, local-first file organization tool for macOS.&lt;/p&gt;

&lt;p&gt;Give it a messy folder and it categorizes files into sensible folders based on their type.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Downloads/
├── Documents/
├── Images/
├── Videos/
├── Audio/
├── Archives/
├── Applications/
└── Other/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of spending 20 minutes dragging files around, the goal is to let Kram handle it.&lt;/p&gt;

&lt;h2&gt;
  
  
  But file sorting isn't the interesting part
&lt;/h2&gt;

&lt;p&gt;Moving files based on their extension is easy.&lt;/p&gt;

&lt;p&gt;The difficult question is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you automate file management without making users afraid to run the tool?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's where Kram gets interesting.&lt;/p&gt;

&lt;h3&gt;
  
  
  Safety comes first
&lt;/h3&gt;

&lt;p&gt;Kram is designed to work only with locations the user explicitly chooses.&lt;/p&gt;

&lt;p&gt;It should not start wandering around macOS and deciding that some system file looks like it belongs in a folder called "Other."&lt;/p&gt;

&lt;p&gt;The philosophy is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User files → Kram can organize
System files → Leave them alone
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The less surprising the automation is, the better.&lt;/p&gt;

&lt;h3&gt;
  
  
  Everything stays local
&lt;/h3&gt;

&lt;p&gt;Kram doesn't need to upload your files to a server.&lt;/p&gt;

&lt;p&gt;Your files stay on your Mac.&lt;/p&gt;

&lt;p&gt;That matters because the folders you're organizing might contain invoices, personal photographs, source code, documents, or other files you probably don't want processed somewhere else.&lt;/p&gt;

&lt;h3&gt;
  
  
  CLI-first by design
&lt;/h3&gt;

&lt;p&gt;I started Kram as a command-line tool rather than immediately building a GUI.&lt;/p&gt;

&lt;p&gt;The core problem isn't the interface.&lt;/p&gt;

&lt;p&gt;It's the organization engine.&lt;/p&gt;

&lt;p&gt;Eventually, I'd like something as simple as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;kram ~/Downloads
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And Kram handles the rest.&lt;/p&gt;

&lt;p&gt;A CLI also opens the door to shell scripts, automation, scheduled jobs, and other developer workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  I want to test it against terrible folders
&lt;/h2&gt;

&lt;p&gt;A perfectly clean test folder doesn't tell me much.&lt;/p&gt;

&lt;p&gt;This does:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Downloads/
├── IMG_48291.JPG
├── final.pdf
├── final-final.pdf
├── setup.dmg
├── project.zip
├── random-file
├── Screenshot 2026-09-25.png
├── backup.tar.gz
├── something.mov
├── old-project/
├── random-folder/
└── ... thousands more files
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's the environment Kram needs to survive.&lt;/p&gt;

&lt;p&gt;I'm particularly interested in testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Thousands of files&lt;/li&gt;
&lt;li&gt;Duplicate filenames&lt;/li&gt;
&lt;li&gt;Files without extensions&lt;/li&gt;
&lt;li&gt;Unusual extensions&lt;/li&gt;
&lt;li&gt;Hidden files&lt;/li&gt;
&lt;li&gt;Nested directories&lt;/li&gt;
&lt;li&gt;Spaces and special characters&lt;/li&gt;
&lt;li&gt;Permission-restricted files&lt;/li&gt;
&lt;li&gt;macOS-specific files&lt;/li&gt;
&lt;li&gt;Mixed file types&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Dry runs and reversibility
&lt;/h2&gt;

&lt;p&gt;One feature I'm particularly interested in building is a proper dry-run mode.&lt;/p&gt;

&lt;p&gt;Instead of immediately changing your filesystem:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Kram dry run

142 files found

Images      → 63
Documents   → 31
Videos      → 18
Archives    → 14
Audio       → 9
Other       → 7

No files changed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can inspect what Kram &lt;em&gt;plans&lt;/em&gt; to do first.&lt;/p&gt;

&lt;p&gt;From there, I'd like to add reliable operation logs and undo/rollback functionality.&lt;/p&gt;

&lt;p&gt;Because "trust me, I sorted everything" isn't exactly a great UX for a file-management tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Kram could go
&lt;/h2&gt;

&lt;p&gt;The current idea is intentionally small, but there are plenty of directions it could grow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dry-run mode&lt;/li&gt;
&lt;li&gt;Undo / rollback&lt;/li&gt;
&lt;li&gt;Custom organization rules&lt;/li&gt;
&lt;li&gt;Duplicate detection&lt;/li&gt;
&lt;li&gt;Automatic Downloads organization&lt;/li&gt;
&lt;li&gt;Scheduled cleanup&lt;/li&gt;
&lt;li&gt;File previews&lt;/li&gt;
&lt;li&gt;Shell integration&lt;/li&gt;
&lt;li&gt;Native macOS GUI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I don't want Kram to become another giant productivity suite.&lt;/p&gt;

&lt;p&gt;I want it to do one thing extremely well:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Turn chaotic folders into organized folders without making the user nervous.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  I need beta testers
&lt;/h2&gt;

&lt;p&gt;This is where you come in.&lt;/p&gt;

&lt;p&gt;If you use macOS, I'd love for you to throw your ugliest folder at Kram and see what happens.&lt;/p&gt;

&lt;p&gt;GitHub:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;[YOUR GITHUB REPO LINK]&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you test it, tell me:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Your macOS version&lt;/li&gt;
&lt;li&gt;Approximately how many files you tested&lt;/li&gt;
&lt;li&gt;What worked&lt;/li&gt;
&lt;li&gt;What broke&lt;/li&gt;
&lt;li&gt;What you expected to happen&lt;/li&gt;
&lt;li&gt;What you'd like Kram to do next&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'm especially interested in bugs and edge cases.&lt;/p&gt;

&lt;p&gt;A tool that works perfectly on 20 files isn't particularly impressive.&lt;/p&gt;

&lt;p&gt;A tool that survives someone's 8,000-file Downloads folder?&lt;/p&gt;

&lt;p&gt;Now we're talking.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Kram is still being built, and I'd rather find the weird edge cases now than after someone trusts it with their entire Downloads folder.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you try it, break it. 🫡&lt;/p&gt;

</description>
      <category>ai</category>
      <category>vibecoding</category>
      <category>claude</category>
      <category>swift</category>
    </item>
  </channel>
</rss>
