<?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: Matteo Cracco</title>
    <description>The latest articles on DEV Community by Matteo Cracco (@matteo_cracco_d42a0eff64d).</description>
    <link>https://dev.to/matteo_cracco_d42a0eff64d</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%2F3738283%2Fa40202ce-9673-4476-b9c2-af3b0984e4d3.png</url>
      <title>DEV Community: Matteo Cracco</title>
      <link>https://dev.to/matteo_cracco_d42a0eff64d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/matteo_cracco_d42a0eff64d"/>
    <language>en</language>
    <item>
      <title>Stop the Permission Madness: Auto-Sync Bitwarden Collection Permissions</title>
      <dc:creator>Matteo Cracco</dc:creator>
      <pubDate>Wed, 28 Jan 2026 19:54:11 +0000</pubDate>
      <link>https://dev.to/matteo_cracco_d42a0eff64d/stop-the-permission-madness-auto-sync-bitwarden-collection-permissions-5af5</link>
      <guid>https://dev.to/matteo_cracco_d42a0eff64d/stop-the-permission-madness-auto-sync-bitwarden-collection-permissions-5af5</guid>
      <description>&lt;h2&gt;
  
  
  Stop the Permission Madness: Auto-Sync Bitwarden Collection Permissions
&lt;/h2&gt;

&lt;p&gt;Managing permissions across dozens—or hundreds—of nested collections in Bitwarden is a nightmare. You click, assign permissions, click again, assign more permissions... rinse and repeat for every single child collection.&lt;/p&gt;

&lt;p&gt;I hit this wall hard while managing our organization's Bitwarden vault, and I realized: &lt;strong&gt;there has to be a better way.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I built one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Manual Permission Hell
&lt;/h2&gt;

&lt;p&gt;Bitwarden's permission system is powerful, but it has one critical flaw: &lt;strong&gt;there's no permission inheritance for nested collections.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here's what that means in practice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You have a &lt;strong&gt;Parent Collection&lt;/strong&gt; with 20 team members assigned to specific groups&lt;/li&gt;
&lt;li&gt;It has 50 child collections nested underneath&lt;/li&gt;
&lt;li&gt;Want those 20 people to have the same access to all children? &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Congratulations, you're about to click 50 times.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't just tedious—it's a security trap. When your permissions structure is painful to manage, teams inevitably:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create flatter, less-isolated hierarchies (worse security)&lt;/li&gt;
&lt;li&gt;Leave outdated permissions in place (compliance risk)&lt;/li&gt;
&lt;li&gt;Rush assignments without thinking (human error)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Solution: Bitwarden Permissions Manager
&lt;/h2&gt;

&lt;p&gt;I built a &lt;strong&gt;simple web tool&lt;/strong&gt; that does one thing incredibly well: &lt;strong&gt;clones permissions from a parent collection to all its children in seconds.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/matteocracco97/bitwarden-permissions-gui" rel="noopener noreferrer"&gt;matteocracco97/bitwarden-permissions-gui&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How It Works
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Login&lt;/strong&gt; with your Bitwarden credentials&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Select an organization&lt;/strong&gt; and a parent collection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Click sync&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;✅ All nested child collections inherit the parent's group permissions instantly&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No command line wrestling. No CLI nonsense. Just a clean, modern web interface.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Laravel 12&lt;/strong&gt; - Web framework&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PHP 8.2+&lt;/strong&gt; - Backend runtime&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bitwarden CLI&lt;/strong&gt; - Permission orchestration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS&lt;/strong&gt; - Beautiful UI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite&lt;/strong&gt; - Lightweight session storage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The tool runs locally on your machine (via Laravel Herd) and communicates with your Bitwarden vault through the official CLI. Your credentials never leave your system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup: 5 Minutes
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Install Laravel Herd from https://herd.laravel.com/&lt;/span&gt;

&lt;span class="c"&gt;# 2. Clone and setup&lt;/span&gt;
git clone https://github.com/matteocracco97/bitwarden-permissions-gui.git
&lt;span class="nb"&gt;cd &lt;/span&gt;bitwarden-permissions-gui
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
php artisan key:generate

&lt;span class="c"&gt;# 3. Install dependencies&lt;/span&gt;
composer &lt;span class="nb"&gt;install
&lt;/span&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm run build

&lt;span class="c"&gt;# 4. Start the app&lt;/span&gt;
herd open
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. You're live at &lt;code&gt;http://bitwarden-permissions-gui.test&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Important Security Notes
&lt;/h2&gt;

&lt;p&gt;Before you log in, disable these on your Bitwarden account:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;2FA&lt;/strong&gt; - The CLI needs uninterrupted access&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email Verification on New Login&lt;/strong&gt; - Same reason&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pro tip: Use a &lt;strong&gt;dedicated service account&lt;/strong&gt; with admin permissions, not your main account.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Workflow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Select Your Organization
&lt;/h3&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%2Fu4fo2xzypyo76zk580ao.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%2Fu4fo2xzypyo76zk580ao.png" alt="1-login" width="596" height="869"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Choose the Source Collection
&lt;/h3&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%2F8o4d01sw5l6inpmokmav.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%2F8o4d01sw5l6inpmokmav.png" alt="2-select" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Review Child Collections
&lt;/h3&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%2Fe2p6wrins02kqjp5qtg7.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%2Fe2p6wrins02kqjp5qtg7.png" alt="3-children" width="800" height="695"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Sync &amp;amp; Confirm
&lt;/h3&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%2Fziszmg56iylso4ee98au.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%2Fziszmg56iylso4ee98au.png" alt="4-success" width="546" height="144"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Done. Permissions synced to every nested collection.&lt;/p&gt;

&lt;h2&gt;
  
  
  Important Disclaimer
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;This is a temporary solution.&lt;/strong&gt; Permission inheritance for nested collections is a core feature that Bitwarden should have built-in. This tool exists because that feature doesn't exist yet—not because it should replace native functionality.&lt;/p&gt;

&lt;p&gt;I built this as a workaround while the community (myself included) keeps asking Bitwarden to implement proper permission inheritance. If/when Bitwarden ships this feature officially, this tool becomes unnecessary.&lt;/p&gt;

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

&lt;p&gt;I've been watching the &lt;a href="https://community.bitwarden.com/t/inheritance-of-access-permissions-for-nested-collections/3301" rel="noopener noreferrer"&gt;Bitwarden Community Forum&lt;/a&gt; thread on this feature for literally years. Dozens of messages. Multiple "me too" comments. Still no ETA.&lt;/p&gt;

&lt;p&gt;The frustrating part? &lt;strong&gt;It's not hard to do.&lt;/strong&gt; A community member built a working solution in Python in a few hours. I built this web version in a weekend.&lt;/p&gt;

&lt;p&gt;So either:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Bitwarden is too busy with other features (totally understandable)&lt;/li&gt;
&lt;li&gt;This feature is stuck in some internal debate (also understandable)&lt;/li&gt;
&lt;li&gt;It's genuinely not a priority for them (ouch)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Regardless, organizations with complex permission structures need this &lt;strong&gt;now&lt;/strong&gt;, not in 2027.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;✅ Auto-sync parent permissions to all nested children&lt;br&gt;&lt;br&gt;
✅ Visual permission display (read, hide passwords, admin)&lt;br&gt;&lt;br&gt;
✅ Search for collections by name&lt;br&gt;&lt;br&gt;
✅ Session caching (fast subsequent operations)&lt;br&gt;&lt;br&gt;
✅ Error handling for 2FA/verification issues&lt;br&gt;&lt;br&gt;
✅ Clean, responsive web UI&lt;br&gt;&lt;br&gt;
✅ Works on Mac, Linux, Windows  &lt;/p&gt;

&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;This is open source. If you have ideas, bug fixes, or improvements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fork the repo&lt;/li&gt;
&lt;li&gt;Submit a PR&lt;/li&gt;
&lt;li&gt;Open an issue&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I actively maintain this and appreciate community contributions.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Short term:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better error messages&lt;/li&gt;
&lt;li&gt;Bulk operations&lt;/li&gt;
&lt;li&gt;Permission preview before sync&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Long term:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hopefully, native Bitwarden support (making this tool obsolete—which would be perfect)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Let's Automate This
&lt;/h2&gt;

&lt;p&gt;Stop clicking. Start syncing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get started:&lt;/strong&gt; &lt;a href="https://github.com/matteocracco97/bitwarden-permissions-gui" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have you struggled with Bitwarden permissions? Let me know in the comments—I'd love to hear about your use case.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built by &lt;a href="https://github.com/matteocracco97" rel="noopener noreferrer"&gt;Matteo Cracco&lt;/a&gt; • MIT License • &lt;a href="https://github.com/matteocracco97/bitwarden-permissions-gui" rel="noopener noreferrer"&gt;Star on GitHub ⭐&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>bitwarden</category>
      <category>automation</category>
      <category>laravel</category>
      <category>php</category>
    </item>
  </channel>
</rss>
