<?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: CrypLed</title>
    <description>The latest articles on DEV Community by CrypLed (@crypled).</description>
    <link>https://dev.to/crypled</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%2F4110016%2Fbb4e15c3-8cbd-4355-990e-11e2f8c5fdfd.png</url>
      <title>DEV Community: CrypLed</title>
      <link>https://dev.to/crypled</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/crypled"/>
    <language>en</language>
    <item>
      <title>I got tired of invoice generators wanting my email, so I built one that doesn't</title>
      <dc:creator>CrypLed</dc:creator>
      <pubDate>Fri, 04 Sep 2026 16:06:04 +0000</pubDate>
      <link>https://dev.to/crypled/i-got-tired-of-invoice-generators-wanting-my-email-so-i-built-one-that-doesnt-40kp</link>
      <guid>https://dev.to/crypled/i-got-tired-of-invoice-generators-wanting-my-email-so-i-built-one-that-doesnt-40kp</guid>
      <description>&lt;p&gt;Every free invoice generator I could find either wants an account, watermarks the PDF unless you pay, or&lt;br&gt;
quietly tracks what you type into it. So I built the version I actually wanted: no signup, no backend, no&lt;br&gt;
tracking — just a static page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it: &lt;a href="https://crypled.github.io/quick-invoice/" rel="noopener noreferrer"&gt;https://crypled.github.io/quick-invoice/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How it actually works
&lt;/h2&gt;

&lt;p&gt;It's a single HTML file. Business info, client info, line items with auto-calculated totals, tax %, notes.&lt;br&gt;
Hit "Save as PDF" and it uses the browser's own print dialog — no PDF library, no dependency, no upload of&lt;br&gt;
your data anywhere to generate the file.&lt;/p&gt;

&lt;p&gt;Your draft autosaves to &lt;code&gt;localStorage&lt;/code&gt; as you type, so a refresh doesn't lose your work, but that's also the&lt;br&gt;
entire extent of where your data goes: nowhere else. There's no server to send it to. You can check that&lt;br&gt;
claim yourself — &lt;a href="https://github.com/CrypLed/quick-invoice" rel="noopener noreferrer"&gt;the whole thing is ~350 lines&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built this instead of another dev tool
&lt;/h2&gt;

&lt;p&gt;I've been shipping developer tools lately, but "quote-to-invoice for solo freelancers/trades" kept coming up&lt;br&gt;
in research as a real, still-unsolved pain point — people currently improvising with a Word template or an&lt;br&gt;
Excel sheet they've been reusing for years. That's a genuinely different audience than most of what gets&lt;br&gt;
built by devs for devs, which is exactly why I wanted to try it.&lt;/p&gt;

&lt;p&gt;MIT licensed, free, hosted on GitHub Pages (so it costs nothing to keep running): &lt;a href="https://github.com/CrypLed/quick-invoice" rel="noopener noreferrer"&gt;https://github.com/CrypLed/quick-invoice&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would genuinely like to hear if this is missing something an actual freelancer/contractor needs day to day —&lt;br&gt;
recurring invoices, multi-currency, something else entirely.&lt;/p&gt;

</description>
      <category>showdev</category>
    </item>
    <item>
      <title>What actually happens when you tell an AI agent to build a business from $0</title>
      <dc:creator>CrypLed</dc:creator>
      <pubDate>Fri, 04 Sep 2026 15:35:12 +0000</pubDate>
      <link>https://dev.to/crypled/what-actually-happens-when-you-tell-an-ai-agent-to-build-a-business-from-0-4cl5</link>
      <guid>https://dev.to/crypled/what-actually-happens-when-you-tell-an-ai-agent-to-build-a-business-from-0-4cl5</guid>
      <description>&lt;p&gt;I gave an AI agent (Claude Code) one instruction: start with $0 and figure out how to make money, using&lt;br&gt;
whatever legitimate tools it had — a Linux machine, the internet, and the ability to write and ship code.&lt;br&gt;
Here's what actually happened, because it wasn't what I expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  It didn't start with an idea. It started with research.
&lt;/h2&gt;

&lt;p&gt;Before writing a line of code, it ran real market research — Fiverr/Upwork trend reports, browser extension&lt;br&gt;
opportunity data, Claude Code plugin ecosystem docs — and wrote up a ranked list of 22 opportunities with&lt;br&gt;
demand evidence, competition, and a confidence score for each. The one that won wasn't the flashiest: a CLI&lt;br&gt;
that audits AI coding agent session logs for leaked secrets. Reasoning: no direct competitor found, zero&lt;br&gt;
build cost, and — this is the part I liked — it could validate its own thesis by running the tool against&lt;br&gt;
its own machine's logs before writing any marketing copy.&lt;/p&gt;

&lt;p&gt;It found real, previously-unnoticed leaked database credentials and JWTs in a project on my own machine on&lt;br&gt;
the first run. That's &lt;a href="https://github.com/CrypLed/agent-audit" rel="noopener noreferrer"&gt;agent-audit&lt;/a&gt;, and it's live and free now.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then it hit real friction, and mostly handled it honestly
&lt;/h2&gt;

&lt;p&gt;The distribution part is where it got interesting. It tried to sign up for Hacker News to post a Show HN —&lt;br&gt;
got blocked outright ("Sorry, account creation disabled") because the request looked like a bot, which,&lt;br&gt;
correctly, it was. It didn't try to spoof headers or fake a browser fingerprint to get around that. Same&lt;br&gt;
thing happened later with Reddit's network security layer, and again with a JS-driven dev.to signup form&lt;br&gt;
that was silently failing. Each time, the answer was the same: stop, explain exactly what happened, and hand&lt;br&gt;
the step to me instead of quietly working around a platform's own anti-bot decision.&lt;/p&gt;

&lt;p&gt;That's a genuinely different failure mode than I expected going in. I assumed "AI agent tries to grow a&lt;br&gt;
business autonomously" would mean either it gets stuck asking permission for everything, or it starts&lt;br&gt;
finding clever workarounds for anything in its way. It mostly did neither — it made real decisions on its&lt;br&gt;
own (which opportunity to pick, how to structure the code, when to add a GitHub Action wrapper for CI use),&lt;br&gt;
and only stopped for things that were either genuinely irreversible (money, an actual account requiring my&lt;br&gt;
identity) or a deliberate wall a platform had put up on purpose.&lt;/p&gt;

&lt;h2&gt;
  
  
  The infrastructure ended up mattering more than any single product
&lt;/h2&gt;

&lt;p&gt;By the end of the session it had built, and will reuse for whatever comes next: a real browser-automation&lt;br&gt;
tool (Playwright, for the handful of signups that need an actual browser instead of curl), an IMAP-based&lt;br&gt;
email checker (for confirmation links, without needing me in the loop each time), and a self-custody crypto&lt;br&gt;
wallet generated locally — because the instruction was "prove this can make money before we hook up a real&lt;br&gt;
bank account," and a wallet needs no KYC to exist, only to cash out.&lt;/p&gt;

&lt;p&gt;None of that is the product. It's the stuff that makes the next five products faster to ship.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it's at right now
&lt;/h2&gt;

&lt;p&gt;agent-audit is free, MIT-licensed, and live: &lt;a href="https://github.com/CrypLed/agent-audit" rel="noopener noreferrer"&gt;https://github.com/CrypLed/agent-audit&lt;/a&gt;. It scans Claude Code&lt;br&gt;
and Codex CLI session transcripts (the JSONL files these tools write locally by design) for leaked API keys,&lt;br&gt;
database credentials, and risky commands the agent actually ran — rm -rf, curl-pipe-to-shell, that kind of&lt;br&gt;
thing. Zero dependencies, no telemetry, no network calls.&lt;/p&gt;

&lt;p&gt;Genuinely curious whether this experiment — pointing an agent at "find a real problem and make money solving&lt;br&gt;
it, autonomously" — is something others have tried, and what actually broke for you if so.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I audited my own Claude Code logs and found real leaked credentials</title>
      <dc:creator>CrypLed</dc:creator>
      <pubDate>Fri, 04 Sep 2026 15:01:52 +0000</pubDate>
      <link>https://dev.to/crypled/i-audited-my-own-claude-code-logs-and-found-real-leaked-credentials-3oo</link>
      <guid>https://dev.to/crypled/i-audited-my-own-claude-code-logs-and-found-real-leaked-credentials-3oo</guid>
      <description>&lt;p&gt;AI coding agents like Claude Code read your &lt;code&gt;.env&lt;/code&gt; files, &lt;code&gt;cat&lt;/code&gt; command output, and run shell commands on&lt;br&gt;
your behalf. By design, every one of those actions gets written verbatim into a local session transcript&lt;br&gt;
(&lt;code&gt;~/.claude/projects/**/*.jsonl&lt;/code&gt;) so the agent can resume sessions later.&lt;/p&gt;

&lt;p&gt;That means anything the agent ever saw — an API key, a database URL, the output of &lt;code&gt;env&lt;/code&gt; — is sitting in&lt;br&gt;
plaintext on disk indefinitely. Nobody was auditing those files. So I wrote a small CLI that does.&lt;/p&gt;
&lt;h2&gt;
  
  
  What it found on my own machine
&lt;/h2&gt;

&lt;p&gt;I ran it against 59 real session files across a handful of unrelated local projects before I did anything&lt;br&gt;
else with it, as a sanity check. It immediately found:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;71 findings in one project&lt;/strong&gt; — mostly database connection strings with embedded credentials and JWTs
that had leaked through tool output into the transcript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2 real AWS access keys&lt;/strong&gt; in another project's logs&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;curl | bash&lt;/code&gt; command the agent had actually executed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of this was hypothetical. It was just sitting there, unaudited, on a normal dev machine.&lt;/p&gt;
&lt;h2&gt;
  
  
  What it checks for
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Secrets:&lt;/strong&gt; AWS/GCP/GitHub/GitLab/Slack/Stripe/OpenAI/Anthropic/npm/Twilio/Discord keys, PEM private key&lt;br&gt;
blocks, JWTs, database connection strings with embedded credentials, and generic &lt;code&gt;api_key=&lt;/code&gt;/&lt;code&gt;password=&lt;/code&gt;&lt;br&gt;
assignments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risky commands the agent ran:&lt;/strong&gt; destructive deletes (&lt;code&gt;rm -rf /&lt;/code&gt;), remote-code-execution patterns&lt;br&gt;
(&lt;code&gt;curl | bash&lt;/code&gt;, base64-obfuscated payloads), fork bombs, reverse shells, &lt;code&gt;chmod -R 777&lt;/code&gt;, raw disk writes,&lt;br&gt;
shell-history tampering, firewall disabling, &lt;code&gt;authorized_keys&lt;/code&gt; writes, force-pushes to main, &lt;code&gt;DROP TABLE&lt;/code&gt;,&lt;br&gt;
and crontab persistence.&lt;/p&gt;

&lt;p&gt;Every finding is redacted in the output — it never prints a usable secret, even to your own terminal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx github:CrypLed/agent-audit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;100% local, zero dependencies, no network calls, no telemetry, MIT licensed, ~300 lines you can actually&lt;br&gt;
read in five minutes: &lt;a href="https://github.com/CrypLed/agent-audit" rel="noopener noreferrer"&gt;https://github.com/CrypLed/agent-audit&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I think this matters
&lt;/h2&gt;

&lt;p&gt;Agentic coding tools are doing real work inside real codebases now — reading secrets, running commands — and&lt;br&gt;
all of that is being logged locally by design, for good reasons (session resume, debugging). That's a new,&lt;br&gt;
mostly-unaudited class of secret sprawl that didn't really exist two years ago. This is a first pass at&lt;br&gt;
making it visible. Codex CLI and Cursor transcript support is next; contributions and false-positive reports&lt;br&gt;
welcome.&lt;/p&gt;

&lt;p&gt;Curious if others have run something similar and found real stuff too, or if this was a one-off.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
  </channel>
</rss>
