<?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: PapaDanielVi</title>
    <description>The latest articles on DEV Community by PapaDanielVi (@papadanielvi).</description>
    <link>https://dev.to/papadanielvi</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%2F3965942%2F55efa14f-371c-49ca-be0c-0217556bac3b.png</url>
      <title>DEV Community: PapaDanielVi</title>
      <link>https://dev.to/papadanielvi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/papadanielvi"/>
    <language>en</language>
    <item>
      <title>Secure Your Secrets the Ancient Way: Ostrakon - A Zero-Knowledge, Git-Backed CLI Secret Manager</title>
      <dc:creator>PapaDanielVi</dc:creator>
      <pubDate>Wed, 03 Jun 2026 07:18:54 +0000</pubDate>
      <link>https://dev.to/papadanielvi/secure-your-secrets-the-ancient-way-ostrakon-a-zero-knowledge-git-backed-cli-secret-manager-433n</link>
      <guid>https://dev.to/papadanielvi/secure-your-secrets-the-ancient-way-ostrakon-a-zero-knowledge-git-backed-cli-secret-manager-433n</guid>
      <description>&lt;p&gt;In an era of data breaches and over-reliance on third-party password managers, many developers are looking for &lt;strong&gt;true control&lt;/strong&gt; over their secrets. What if you could store all your API keys, database credentials, and sensitive configs in a simple private Git repository, fully encrypted on your own machine, with zero plain text ever touching the cloud?&lt;/p&gt;

&lt;p&gt;Meet &lt;strong&gt;Ostrakon&lt;/strong&gt;, a lightweight, powerful, open-source CLI tool that transforms any private GitHub or GitLab repo into your personal encrypted secrets vault.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why "Ostrakon"?
&lt;/h3&gt;

&lt;p&gt;The name comes from ancient Athens, where &lt;em&gt;ostraka&lt;/em&gt; (pottery shards) were used for everyday notes, receipts, and secret ballots. Simple, durable, and private. Modern Ostrakon brings that same spirit to secret management.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Core Philosophy
&lt;/h3&gt;

&lt;p&gt;Unlike most tools, Ostrakon follows a strict &lt;strong&gt;client-side only&lt;/strong&gt; encryption model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Nothing is ever stored in plain text&lt;/strong&gt; — not on disk, not in Git.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;All encryption and decryption happens locally&lt;/strong&gt; on your machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero-knowledge&lt;/strong&gt;: Even if your Git repository is completely leaked or compromised, attackers get only encrypted blobs. Without your master password, the data is useless.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portable&lt;/strong&gt;: Remember your master password and you can access your entire vault from any computer in the world.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How Ostrakon Compares to Other Tools
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Storage&lt;/th&gt;
&lt;th&gt;Encryption Location&lt;/th&gt;
&lt;th&gt;Zero-Knowledge&lt;/th&gt;
&lt;th&gt;Git Native&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;Best For&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ostrakon&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Private Git repo&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Client-side only&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Developers, power users&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1Password&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cloud (or local sync)&lt;/td&gt;
&lt;td&gt;Cloud + local&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Paid&lt;/td&gt;
&lt;td&gt;Teams &amp;amp; families&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bitwarden&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cloud (self-host option)&lt;/td&gt;
&lt;td&gt;Server-side&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Freemium&lt;/td&gt;
&lt;td&gt;General password management&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;pass / gopass&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Git repo&lt;/td&gt;
&lt;td&gt;Client-side&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Simple GPG-based use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;HashiCorp Vault&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Dedicated server&lt;/td&gt;
&lt;td&gt;Server-side&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Free/Paid&lt;/td&gt;
&lt;td&gt;Large teams &amp;amp; enterprises&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Ostrakon stands out&lt;/strong&gt; because it combines the portability of Git with rock-solid client-side encryption (&lt;strong&gt;Argon2id + AES-256-GCM&lt;/strong&gt;), without the complexity of managing GPG keys like &lt;code&gt;pass&lt;/code&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Full client-side encryption using industry-standard algorithms&lt;/li&gt;
&lt;li&gt;Support for GitHub and GitLab&lt;/li&gt;
&lt;li&gt;Profiles/namespaces for organizing secrets (dev, staging, prod)&lt;/li&gt;
&lt;li&gt;Secure &lt;code&gt;run&lt;/code&gt; command to inject secrets into scripts&lt;/li&gt;
&lt;li&gt;Smart keyring integration (convenience on writes, strict prompting on reads)&lt;/li&gt;
&lt;li&gt;Cross-platform (macOS, Linux, Windows)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS - Homebrew&lt;/span&gt;
brew tap PapaDanielVi/homebrew-tap
brew &lt;span class="nb"&gt;install &lt;/span&gt;ostrakon

&lt;span class="c"&gt;# Go users&lt;/span&gt;
go &lt;span class="nb"&gt;install &lt;/span&gt;github.com/PapaDanielVi/ostrakon@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Quick Start &amp;amp; Examples
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Initialize your vault
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ostrakon init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll be prompted for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your private repo URL&lt;/li&gt;
&lt;li&gt;GitHub/GitLab token (fine-grained recommended)&lt;/li&gt;
&lt;li&gt;Strong master password&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. Adding Secrets
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Interactive&lt;/span&gt;
ostrakon add DATABASE_URL

&lt;span class="c"&gt;# Pipe from command (great for scripts)&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"sk-1234567890abcdef"&lt;/span&gt; | ostrakon add openai-api-key

&lt;span class="c"&gt;# Add with profile&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"prod-value"&lt;/span&gt; | ostrakon add API_KEY &lt;span class="nt"&gt;-p&lt;/span&gt; production

&lt;span class="c"&gt;# Add a personal file&lt;/span&gt;
ostrakon add ~/.bashrc
ostrakon add .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Listing &amp;amp; Retrieving
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# List all secrets&lt;/span&gt;
ostrakon &lt;span class="nb"&gt;ls&lt;/span&gt;

&lt;span class="c"&gt;# List in specific profile&lt;/span&gt;
ostrakon &lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; production

&lt;span class="c"&gt;# Get a secret (always prompts for master password)&lt;/span&gt;
ostrakon get DATABASE_URL

&lt;span class="c"&gt;# Write a secret (always prompts for master password)&lt;/span&gt;
ostrakon write DATABASE_URL &lt;span class="nt"&gt;-o&lt;/span&gt; db_url.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  4. Editing &amp;amp; Secure Deletion
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Edit in your default editor ($EDITOR)&lt;/span&gt;
ostrakon edit API_KEY

&lt;span class="c"&gt;# Securely delete (overwrites before removal)&lt;/span&gt;
ostrakon &lt;span class="nb"&gt;shred &lt;/span&gt;old-secret
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  5. Running Scripts with Secrets
&lt;/h4&gt;

&lt;p&gt;This is one of the most powerful features:&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="c"&gt;# Run a deployment script with injected secrets&lt;/span&gt;
ostrakon run ./deploy.sh &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-e&lt;/span&gt; AWS_ACCESS_KEY_ID &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-e&lt;/span&gt; AWS_SECRET_ACCESS_KEY &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-e&lt;/span&gt; DATABASE_PASSWORD
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The script gets the secrets as environment variables — decrypted only in memory for the duration of the run.&lt;/p&gt;

&lt;h4&gt;
  
  
  6. Working Across Machines
&lt;/h4&gt;

&lt;p&gt;Just install Ostrakon on a new laptop, run &lt;code&gt;ostrakon init&lt;/code&gt; with the same repo, and use your master password. All your secrets are instantly available — no export/import hassle.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security Deep Dive
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Encryption&lt;/strong&gt;: Argon2id (memory-hard, resistant to brute force) + AES-256-GCM&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read Security&lt;/strong&gt;: Master password is &lt;strong&gt;always required&lt;/strong&gt; for &lt;code&gt;get&lt;/code&gt;, &lt;code&gt;run&lt;/code&gt;, &lt;code&gt;edit&lt;/code&gt;, and &lt;code&gt;ls&lt;/code&gt; operations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write Convenience&lt;/strong&gt;: Optional OS keyring storage for the master password (can be disabled)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repo Leak Protection&lt;/strong&gt;: Even full access to the Git repo gives zero readable information&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No telemetry&lt;/strong&gt;, no cloud dependency beyond your own Git storage&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Who Should Use Ostrakon?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Solo developers and small teams who want full control&lt;/li&gt;
&lt;li&gt;Security-conscious users tired of trusting cloud providers&lt;/li&gt;
&lt;li&gt;Anyone who already uses private Git repos and wants a cleaner alternative to &lt;code&gt;.env&lt;/code&gt; files&lt;/li&gt;
&lt;li&gt;Engineers who value portability and dislike vendor lock-in&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Get Started Today
&lt;/h3&gt;

&lt;p&gt;Ostrakon is actively developed, open source (MIT license), and built with love for better developer security tools.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Repository&lt;/strong&gt;: &lt;a href="https://github.com/PapaDanielVi/ostrakon" rel="noopener noreferrer"&gt;github.com/PapaDanielVi/ostrakon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you find it useful, please &lt;strong&gt;star the repo&lt;/strong&gt; — it really helps small open-source projects gain visibility!&lt;/p&gt;

&lt;p&gt;Have feedback or feature requests? Contributions are warmly welcome.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Built for developers, by a developer.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>devops</category>
      <category>opensource</category>
      <category>go</category>
    </item>
  </channel>
</rss>
