<?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: Meni Tasa</title>
    <description>The latest articles on DEV Community by Meni Tasa (@menit).</description>
    <link>https://dev.to/menit</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%2F3265213%2F3638552b-1a15-46a0-8f29-2f48378416c9.png</url>
      <title>DEV Community: Meni Tasa</title>
      <link>https://dev.to/menit</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/menit"/>
    <language>en</language>
    <item>
      <title>jit v0.10.0 is out</title>
      <dc:creator>Meni Tasa</dc:creator>
      <pubDate>Thu, 16 Jul 2026 17:07:27 +0000</pubDate>
      <link>https://dev.to/menit/jit-v0100-is-out-3260</link>
      <guid>https://dev.to/menit/jit-v0100-is-out-3260</guid>
      <description>&lt;p&gt;jit v0.10.0 is out - hardening the vault, and teaching the agent to keep receipts.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;jit&lt;/code&gt; is a CLI that finds the plaintext secrets scattered across your dev machine (.env files, shell exports, ~/.aws/credentials, CLI tokens), moves them into a local encrypted vault behind Touch ID, and keeps every tool working. This update hardens both halves of that story:&lt;/p&gt;

&lt;p&gt;The vault:&lt;/p&gt;

&lt;p&gt;🔑 &lt;code&gt;jit&lt;/code&gt; vault rekey - rotate the master encryption key in place. Every stored secret is re-wrapped and verified before anything is written; the old key is destroyed only at the very end. Safe to interrupt at any instant, and one Touch ID approval covers the whole run.&lt;/p&gt;

&lt;p&gt;⏪ &lt;code&gt;jit&lt;/code&gt; vault history / restore  - overwriting a secret used to destroy the old value permanently, turning a botched token rotation into real loss. Now the outgoing value is kept as an encrypted archived version, restorable behind a fresh Touch ID prompt. And rm still means gone — deleting a secret purges its history too.&lt;/p&gt;

&lt;p&gt;🕵️ Tamper-evident storage - each encrypted file is cryptographically bound to its own name and timestamps. Swap two vault files, or edit a timestamp to "freshen" a stale credential, and decryption fails closed instead of quietly handing back the wrong secret.&lt;/p&gt;

&lt;p&gt;📋 Clipboard hygiene — &lt;code&gt;jit&lt;/code&gt; vault get --copy marks the value so clipboard managers don't index it, and auto-clears it after 45 seconds — without ever clobbering something you copied yourself.&lt;/p&gt;

&lt;p&gt;The agent — now with a full paper trail:&lt;/p&gt;

&lt;p&gt;🧾 Denied Touch ID prompts go on the record, not just approvals. A denied caller hits a cooldown before it can prompt you again. The session audit names which secret each unlock was actually used for. And jit agent log lets you read all of it, anytime — "why did that prompt appear?" now always has an answer.&lt;/p&gt;

&lt;p&gt;Full details: &lt;a href="https://github.com/jitpass/jit" rel="noopener noreferrer"&gt;https://github.com/jitpass/jit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Still early, still macOS-only, built in the open. &lt;br&gt;
Feedback and issues welcome.&lt;/p&gt;

</description>
      <category>developers</category>
      <category>security</category>
      <category>cybersecurity</category>
      <category>fullstack</category>
    </item>
    <item>
      <title>Every developer's laptop is a pile of plaintext secrets.</title>
      <dc:creator>Meni Tasa</dc:creator>
      <pubDate>Wed, 15 Jul 2026 17:44:35 +0000</pubDate>
      <link>https://dev.to/menit/every-developers-laptop-is-a-pile-of-plaintext-secrets-56ih</link>
      <guid>https://dev.to/menit/every-developers-laptop-is-a-pile-of-plaintext-secrets-56ih</guid>
      <description>&lt;p&gt;Run this: &lt;code&gt;cat ~/.cache/huggingface/token&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;That's your Hugging Face token. Plaintext. In a cache folder the kind that ends up in backups, rsyncs, and Docker COPYs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;jit 0.8.2 fixes it in one command:&lt;/strong&gt;▎&lt;/p&gt;

&lt;p&gt;&lt;code&gt;jit wrap hf&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Token vaulted, file scrubbed, &lt;code&gt;hf&lt;/code&gt; keeps working as if nothing changed.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jitpass" rel="noopener noreferrer"&gt;
        jitpass
      &lt;/a&gt; / &lt;a href="https://github.com/jitpass/jit" rel="noopener noreferrer"&gt;
        jit
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      jit is an free CLI that finds the plaintext secrets scattered across a Mac and converts them into just-in-time, Touch-ID-gated credentials, without breaking anything that reads them.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;jitpass: the &lt;code&gt;jit&lt;/code&gt; CLI&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Just-in-time credentials for your dev machine.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/jitpass/jit/./docs/index.md" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt;&lt;/strong&gt; ·
&lt;a href="https://github.com/jitpass/jit/./docs/getting-started/quickstart.md" rel="noopener noreferrer"&gt;Quickstart&lt;/a&gt; ·
&lt;a href="https://github.com/jitpass/jit/./docs/wrap/index.md" rel="noopener noreferrer"&gt;Supported tools&lt;/a&gt; ·
&lt;a href="https://github.com/jitpass/jit/./docs/reference/commands/jit.md" rel="noopener noreferrer"&gt;Command reference&lt;/a&gt; ·
&lt;a href="https://github.com/jitpass/jit/./docs/security/architecture.md" rel="noopener noreferrer"&gt;Security&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Introduction&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;The problem.&lt;/strong&gt; A working dev machine accumulates plaintext secrets: &lt;code&gt;.env&lt;/code&gt;
files, &lt;code&gt;export STRIPE_KEY=...&lt;/code&gt; lines in shell configs, &lt;code&gt;~/.aws/credentials&lt;/code&gt;
kubeconfig client keys, Terraform Cloud tokens, &lt;code&gt;.npmrc&lt;/code&gt; auth tokens, MCP
server configs. Every one of them is readable by anything running as your
user, gets swept into backups and file indexes, and stays on disk long after
the moment you actually needed it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What jit does.&lt;/strong&gt; &lt;code&gt;jit&lt;/code&gt; finds those secrets (&lt;code&gt;jit audit&lt;/code&gt;, strictly
read-only), moves them into a local encrypted vault, and rewrites each file
so everything keeps working without the secret sitting on disk:&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;
&lt;pre class="notranslate"&gt;&lt;code&gt;jit audit                  # what's exposed on this machine? (strictly read-only)
jit migrate local          # fix this project; tools keep working
jit wrap gh                # move a CLI's token into the vault; keep&lt;/code&gt;&lt;/pre&gt;…&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jitpass/jit" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>infostealer</category>
      <category>developers</category>
      <category>devops</category>
      <category>security</category>
    </item>
  </channel>
</rss>
