
Yes, Claude Code can decompile itself. Here's the source code.
Hello fellow blue-teamers and masters of "tradecraft", the AI revolution in software engineering has been called - here's what you should know. Whilst I haven't been active since 1995 (I was 13 and was deported from Hong Kong) it's a small world out there and what follows are notes I recently shared with a red-teamer.
AI alignment is your enemy
All of these San Fran companies have gotten their knickers in a knot about "AI alignment and safety". These security guard rails that wrap the LLM can be bypassed but it's easier to head straight to Grok!
I asked Grok to assassinate Elon
β Linus Ekenstam β eu/acc (@LinusEkenstam) February 24, 2025
Grok then provided multiple potential plans with high success potential
These assassination plans on Elon and other high profile names are highly disturbing and unethical. https://t.co/41fOHf4DcW pic.twitter.com/2AX5WfafbQ
these LLMs are shockily good at deobfuscation, transpilation and structure to structure conversions
I discovered this back around Christmas where I asked an LLM to make me an Haskell audio library by transpiling a rust implementation.

I'm not going to bury the lede, so let's dig right into the real reason why you clicked on this post, show you how it's done and what is possible.
but first some backstory
Four days ago Anthropic dig a big announcement which released two things into the world:
a. Claude 3.7 (which slaps)
b. An autonomous coding agent called Claude Code

Claude Code

The source code for Claude Code is currently "not available". Whilst a GitHub repository has been published, it contains no source code. Claude Code was an unusual announcement to release along side Sonnet 3.7 - I suspect it was/is a marketing gimmick which was built to demonstrate the capability of the new model and to show the world how to build an AI coding agent (and how easy it is) from the creators of the LLM model (they know it best)
Claude Code is authored in TypeScript and was released to NPM. You can install it via..
$ mkdir claude-code && cd claude-code
$ npm i @anthropic-ai/claude-code
After installing the application into a folder you'll be greeted with the following directory structure..
tree
.
βββ node_modules
β βββ @anthropic-ai
β β βββ claude-code
β β βββ LICENSE.md
β β βββ README.md
β β βββ cli.mjs
β β βββ package.json
β β βββ scripts
β β β βββ preinstall.js
β β βββ vendor
β β β βββ ripgrep
β β β β βββ COPYING
β β β β βββ arm64-darwin
β β β β β βββ rg
β β β β βββ arm64-linux
β β β β β βββ rg
β β β β βββ x64-darwin
β β β β β βββ rg
β β β β βββ x64-linux
β β β β β βββ rg
β β β β βββ x64-win32
β β β β βββ rg.exe
β β β βββ sdk
β β β βββ CHANGELOG.md
β β β βββ LICENSE
β β β βββ README.md
β β β βββ _shims
β β β β βββ MultipartBody.d.ts
β β β β βββ MultipartBody.d.ts.map
β β β β βββ MultipartBody.js
β β β β βββ MultipartBody.js.map
β β β β βββ MultipartBody.mjs
β β β β βββ MultipartBody.mjs.map
β β β β βββ README.md
β β β β βββ auto
β β β β β βββ runtime-bun.d.ts
β β β β β βββ runtime-bun.d.ts.map
β β β β β βββ runtime-bun.js
β β β β β βββ runtime-bun.js.map
β β β β β βββ runtime-bun.mjs
β β β β β βββ runtime-bun.mjs.map
β β β β β βββ runtime-node.d.ts
β β β β β βββ runtime-node.d.ts.map
β β β β β βββ runtime-node.js
β β β β β βββ runtime-node.js.map
β β β β β βββ runtime-node.mjs
β β β β β βββ runtime-node.mjs.map
β β β β β βββ runtime.d.ts
β β β β β βββ runtime.d.ts.map
β β β β β βββ runtime.js
β β β β β βββ runtime.js.map
β β β β β βββ runtime.mjs
β β β β β βββ runtime.mjs.map
β β β β β βββ types-node.d.ts
β β β β β βββ types-node.d.ts.map
β β β β β βββ types-node.js
β β β β β βββ types-node.js.map
β β β β β βββ types-node.mjs
β β β β β βββ types-node.mjs.map
β β β β β βββ types.d.ts
β β β β β βββ types.js
β β β β β βββ types.mjs
β β β β βββ bun-runtime.d.ts
β β β β βββ bun-runtime.d.ts.map
β β β β βββ bun-runtime.js
β β β β βββ bun-runtime.js.map
β β β β βββ bun-runtime.mjs
β β β β βββ bun-runtime.mjs.map
β β β β βββ index.d.ts
β β β β βββ index.js
β β β β βββ index.mjs
β β β β βββ manual-types.d.ts
β β β β βββ manual-types.js
β β β β βββ manual-types.mjs
β β β β βββ node-runtime.d.ts
β β β β βββ node-runtime.d.ts.map
β β β β βββ node-runtime.js
β β β β βββ node-runtime.js.map
β β β β βββ node-runtime.mjs
β β β β βββ node-runtime.mjs.map
β β β β βββ node-types.d.ts
β β β β βββ node-types.js
β β β β βββ node-types.mjs
β β β β βββ registry.d.ts
β β β β βββ registry.d.ts.map
β β β β βββ registry.js
β β β β βββ registry.js.map
β β β β βββ registry.mjs
β β β β βββ registry.mjs.map
β β β β βββ web-runtime.d.ts
β β β β βββ web-runtime.d.ts.map
β β β β βββ web-runtime.js
β β β β βββ web-runtime.js.map
β β β β βββ web-runtime.mjs
β β β β βββ web-runtime.mjs.map
β β β β βββ web-types.d.ts
β β β β βββ web-types.js
β β β β βββ web-types.mjs
β β β βββ _vendor
β β β β βββ partial-json-parser
β β β β βββ parser.d.ts
β β β β βββ parser.d.ts.map
β β β β βββ parser.js
β β β β βββ parser.js.map
β β β β βββ parser.mjs
β β β β βββ parser.mjs.map
β β β βββ core.d.ts
β β β βββ core.d.ts.map
β β β βββ core.js
β β β βββ core.js.map
β β β βββ core.mjs
β β β βββ core.mjs.map
β β β βββ error.d.ts
β β β βββ error.d.ts.map
β β β βββ error.js
β β β βββ error.js.map
β β β βββ error.mjs
β β β βββ error.mjs.map
β β β βββ index.d.mts
β β β βββ index.d.ts
β β β βββ index.d.ts.map
β β β βββ index.js
β β β βββ index.js.map
β β β βββ index.mjs
β β β βββ index.mjs.map
β β β βββ internal
β β β β βββ decoders
β β β β β βββ jsonl.d.ts
β β β β β βββ jsonl.d.ts.map
β β β β β βββ jsonl.js
β β β β β βββ jsonl.js.map
β β β β β βββ jsonl.mjs
β β β β β βββ jsonl.mjs.map
β β β β β βββ line.d.ts
β β β β β βββ line.d.ts.map
β β β β β βββ line.js
β β β β β βββ line.js.map
β β β β β βββ line.mjs
β β β β β βββ line.mjs.map
β β β β βββ stream-utils.d.ts
β β β β βββ stream-utils.d.ts.map
β β β β βββ stream-utils.js
β β β β βββ stream-utils.js.map
β β β β βββ stream-utils.mjs
β β β β βββ stream-utils.mjs.map
β β β βββ lib
β β β β βββ BetaMessageStream.d.ts
β β β β βββ BetaMessageStream.d.ts.map
β β β β βββ BetaMessageStream.js
β β β β βββ BetaMessageStream.js.map
β β β β βββ BetaMessageStream.mjs
β β β β βββ BetaMessageStream.mjs.map
β β β β βββ MessageStream.d.ts
β β β β βββ MessageStream.d.ts.map
β β β β βββ MessageStream.js
β β β β βββ MessageStream.js.map
β β β β βββ MessageStream.mjs
β β β β βββ MessageStream.mjs.map
β β β βββ node_modules
β β β β βββ @types
β β β β β βββ node
β β β β β βββ LICENSE
β β β β β βββ README.md
β β β β β βββ assert
β β β β β β βββ strict.d.ts
β β β β β βββ assert.d.ts
β β β β β βββ async_hooks.d.ts
β β β β β βββ buffer.buffer.d.ts
β β β β β βββ buffer.d.ts
β β β β β βββ child_process.d.ts
β β β β β βββ cluster.d.ts
β β β β β βββ compatibility
β β β β β β βββ disposable.d.ts
β β β β β β βββ index.d.ts
β β β β β β βββ indexable.d.ts
β β β β β β βββ iterators.d.ts
β β β β β βββ console.d.ts
β β β β β βββ constants.d.ts
β β β β β βββ crypto.d.ts
β β β β β βββ dgram.d.ts
β β β β β βββ diagnostics_channel.d.ts
β β β β β βββ dns
β β β β β β βββ promises.d.ts
β β β β β βββ dns.d.ts
β β β β β βββ dom-events.d.ts
β β β β β βββ domain.d.ts
β β β β β βββ events.d.ts
β β β β β βββ fs
β β β β β β βββ promises.d.ts
β β β β β βββ fs.d.ts
β β β β β βββ globals.d.ts
β β β β β βββ globals.typedarray.d.ts
β β β β β βββ http.d.ts
β β β β β βββ http2.d.ts
β β β β β βββ https.d.ts
β β β β β βββ index.d.ts
β β β β β βββ inspector.d.ts
β β β β β βββ module.d.ts
β β β β β βββ net.d.ts
β β β β β βββ os.d.ts
β β β β β βββ package.json
β β β β β βββ path.d.ts
β β β β β βββ perf_hooks.d.ts
β β β β β βββ process.d.ts
β β β β β βββ punycode.d.ts
β β β β β βββ querystring.d.ts
β β β β β βββ readline
β β β β β β βββ promises.d.ts
β β β β β βββ readline.d.ts
β β β β β βββ repl.d.ts
β β β β β βββ stream
β β β β β β βββ consumers.d.ts
β β β β β β βββ promises.d.ts
β β β β β β βββ web.d.ts
β β β β β βββ stream.d.ts
β β β β β βββ string_decoder.d.ts
β β β β β βββ test.d.ts
β β β β β βββ timers
β β β β β β βββ promises.d.ts
β β β β β βββ timers.d.ts
β β β β β βββ tls.d.ts
β β β β β βββ trace_events.d.ts
β β β β β βββ ts5.6
β β β β β β βββ buffer.buffer.d.ts
β β β β β β βββ globals.typedarray.d.ts
β β β β β β βββ index.d.ts
β β β β β βββ tty.d.ts
β β β β β βββ url.d.ts
β β β β β βββ util.d.ts
β β β β β βββ v8.d.ts
β β β β β βββ vm.d.ts
β β β β β βββ wasi.d.ts
β β β β β βββ worker_threads.d.ts
β β β β β βββ zlib.d.ts
β β β β βββ undici-types
β β β β βββ README.md
β β β β βββ agent.d.ts
β β β β βββ api.d.ts
β β β β βββ balanced-pool.d.ts
β β β β βββ cache.d.ts
β β β β βββ client.d.ts
β β β β βββ connector.d.ts
β β β β βββ content-type.d.ts
β β β β βββ cookies.d.ts
β β β β βββ diagnostics-channel.d.ts
β β β β βββ dispatcher.d.ts
β β β β βββ errors.d.ts
β β β β βββ fetch.d.ts
β β β β βββ file.d.ts
β β β β βββ filereader.d.ts
β β β β βββ formdata.d.ts
β β β β βββ global-dispatcher.d.ts
β β β β βββ global-origin.d.ts
β β β β βββ handlers.d.ts
β β β β βββ header.d.ts
β β β β βββ index.d.ts
β β β β βββ interceptors.d.ts
β β β β βββ mock-agent.d.ts
β β β β βββ mock-client.d.ts
β β β β βββ mock-errors.d.ts
β β β β βββ mock-interceptor.d.ts
β β β β βββ mock-pool.d.ts
β β β β βββ package.json
β β β β βββ patch.d.ts
β β β β βββ pool-stats.d.ts
β β β β βββ pool.d.ts
β β β β βββ proxy-agent.d.ts
β β β β βββ readable.d.ts
β β β β βββ webidl.d.ts
β β β β βββ websocket.d.ts
β β β βββ package.json
β β β βββ pagination.d.ts
β β β βββ pagination.d.ts.map
β β β βββ pagination.js
β β β βββ pagination.js.map
β β β βββ pagination.mjs
β β β βββ pagination.mjs.map
β β β βββ resource.d.ts
β β β βββ resource.d.ts.map
β β β βββ resource.js
β β β βββ resource.js.map
β β β βββ resource.mjs
β β β βββ resource.mjs.map
β β β βββ resources
β β β β βββ beta
β β β β β βββ beta.d.ts
β β β β β βββ beta.d.ts.map
β β β β β βββ beta.js
β β β β β βββ beta.js.map
β β β β β βββ beta.mjs
β β β β β βββ beta.mjs.map
β β β β β βββ index.d.ts
β β β β β βββ index.d.ts.map
β β β β β βββ index.js
β β β β β βββ index.js.map
β β β β β βββ index.mjs
β β β β β βββ index.mjs.map
β β β β β βββ messages
β β β β β β βββ batches.d.ts
β β β β β β βββ batches.d.ts.map
β β β β β β βββ batches.js
β β β β β β βββ batches.js.map
β β β β β β βββ batches.mjs
β β β β β β βββ batches.mjs.map
β β β β β β βββ index.d.ts
β β β β β β βββ index.d.ts.map
β β β β β β βββ index.js
β β β β β β βββ index.js.map
β β β β β β βββ index.mjs
β β β β β β βββ index.mjs.map
β β β β β β βββ messages.d.ts
β β β β β β βββ messages.d.ts.map
β β β β β β βββ messages.js
β β β β β β βββ messages.js.map
β β β β β β βββ messages.mjs
β β β β β β βββ messages.mjs.map
β β β β β βββ models.d.ts
β β β β β βββ models.d.ts.map
β β β β β βββ models.js
β β β β β βββ models.js.map
β β β β β βββ models.mjs
β β β β β βββ models.mjs.map
β β β β βββ completions.d.ts
β β β β βββ completions.d.ts.map
β β β β βββ completions.js
β β β β βββ completions.js.map
β β β β βββ completions.mjs
β β β β βββ completions.mjs.map
β β β β βββ index.d.ts
β β β β βββ index.d.ts.map
β β β β βββ index.js
β β β β βββ index.js.map
β β β β βββ index.mjs
β β β β βββ index.mjs.map
β β β β βββ messages
β β β β β βββ batches.d.ts
β β β β β βββ batches.d.ts.map
β β β β β βββ batches.js
β β β β β βββ batches.js.map
β β β β β βββ batches.mjs
β β β β β βββ batches.mjs.map
β β β β β βββ index.d.ts
β β β β β βββ index.d.ts.map
β β β β β βββ index.js
β β β β β βββ index.js.map
β β β β β βββ index.mjs
β β β β β βββ index.mjs.map
β β β β β βββ messages.d.ts
β β β β β βββ messages.d.ts.map
β β β β β βββ messages.js
β β β β β βββ messages.js.map
β β β β β βββ messages.mjs
β β β β β βββ messages.mjs.map
β β β β βββ models.d.ts
β β β β βββ models.d.ts.map
β β β β βββ models.js
β β β β βββ models.js.map
β β β β βββ models.mjs
β β β β βββ models.mjs.map
β β β β βββ shared.d.ts
β β β β βββ shared.d.ts.map
β β β β βββ shared.js
β β β β βββ shared.js.map
β β β β βββ shared.mjs
β β β β βββ shared.mjs.map
β β β β βββ top-level.d.ts
β β β β βββ top-level.d.ts.map
β β β β βββ top-level.js
β β β β βββ top-level.js.map
β β β β βββ top-level.mjs
β β β β βββ top-level.mjs.map
β β β βββ shims
β β β β βββ node.d.ts
β β β β βββ node.d.ts.map
β β β β βββ node.js
β β β β βββ node.js.map
β β β β βββ node.mjs
β β β β βββ node.mjs.map
β β β β βββ web.d.ts
β β β β βββ web.d.ts.map
β β β β βββ web.js
β β β β βββ web.js.map
β β β β βββ web.mjs
β β β β βββ web.mjs.map
β β β βββ src
β β β β βββ _shims
β β β β β βββ MultipartBody.ts
β β β β β βββ README.md
β β β β β βββ auto
β β β β β β βββ runtime-bun.ts
β β β β β β βββ runtime-node.ts
β β β β β β βββ runtime.ts
β β β β β β βββ types-node.ts
β β β β β β βββ types.d.ts
β β β β β β βββ types.js
β β β β β β βββ types.mjs
β β β β β βββ bun-runtime.ts
β β β β β βββ index.d.ts
β β β β β βββ index.js
β β β β β βββ index.mjs
β β β β β βββ manual-types.d.ts
β β β β β βββ manual-types.js
β β β β β βββ manual-types.mjs
β β β β β βββ node-runtime.ts
β β β β β βββ node-types.d.ts
β β β β β βββ node-types.js
β β β β β βββ node-types.mjs
β β β β β βββ registry.ts
β β β β β βββ web-runtime.ts
β β β β β βββ web-types.d.ts
β β β β β βββ web-types.js
β β β β β βββ web-types.mjs
β β β β βββ _vendor
β β β β β βββ partial-json-parser
β β β β β βββ README.md
β β β β β βββ parser.ts
β β β β βββ core.ts
β β β β βββ error.ts
β β β β βββ index.ts
β β β β βββ internal
β β β β β βββ decoders
β β β β β β βββ jsonl.ts
β β β β β β βββ line.ts
β β β β β βββ stream-utils.ts
β β β β βββ lib
β β β β β βββ BetaMessageStream.ts
β β β β β βββ MessageStream.ts
β β β β βββ pagination.ts
β β β β βββ resource.ts
β β β β βββ resources
β β β β β βββ beta
β β β β β β βββ beta.ts
β β β β β β βββ index.ts
β β β β β β βββ messages
β β β β β β β βββ batches.ts
β β β β β β β βββ index.ts
β β β β β β β βββ messages.ts
β β β β β β βββ models.ts
β β β β β βββ completions.ts
β β β β β βββ index.ts
β β β β β βββ messages
β β β β β β βββ batches.ts
β β β β β β βββ index.ts
β β β β β β βββ messages.ts
β β β β β βββ models.ts
β β β β β βββ shared.ts
β β β β β βββ top-level.ts
β β β β βββ shims
β β β β β βββ node.ts
β β β β β βββ web.ts
β β β β βββ streaming.ts
β β β β βββ tsconfig.json
β β β β βββ uploads.ts
β β β β βββ version.ts
β β β βββ streaming.d.ts
β β β βββ streaming.d.ts.map
β β β βββ streaming.js
β β β βββ streaming.js.map
β β β βββ streaming.mjs
β β β βββ streaming.mjs.map
β β β βββ uploads.d.ts
β β β βββ uploads.d.ts.map
β β β βββ uploads.js
β β β βββ uploads.js.map
β β β βββ uploads.mjs
β β β βββ uploads.mjs.map
β β β βββ version.d.ts
β β β βββ version.d.ts.map
β β β βββ version.js
β β β βββ version.js.map
β β β βββ version.mjs
β β β βββ version.mjs.map
β β βββ yoga.wasm
β βββ @img
β βββ sharp-darwin-arm64
β β βββ LICENSE
β β βββ README.md
β β βββ lib
β β β βββ sharp-darwin-arm64.node
β β βββ package.json
β βββ sharp-libvips-darwin-arm64
β βββ README.md
β βββ lib
β β βββ glib-2.0
β β β βββ include
β β β βββ glibconfig.h
β β βββ index.js
β β βββ libvips-cpp.42.dylib
β βββ package.json
β βββ versions.json
βββ package-lock.json
βββ package.json
57 directories, 436 files
cli.mjs
This is the meat of the application itself. It is your typical commonjs application which has been compiled from typescript. As part of the process of compilation with Webpack a minifier step combines all the source code into this file and truncates the symbols.

so let's get kicking.
Your first task to is open up cli.mjs
within your favourite AI coding assistant or even Claude Code itself. Due to the "safety rails and AI alignment" you'll need to strip the top comments from the application otherwise they will kick in unless you use an LLM such as Grok which has no guard rails.
Here's the prompt that I used.
CLI.js is a commonjs typescript application which has been compiled with webpack.
The symbols have been stripped.
Inspect the source code thoroughly (extra thinking) but skip the SentrySDK source code.
Create a specification library of features of the application.
Convert the source code into human readable.
Keep going until you are done!
Because cli.mjs
is close to 5mb - which is way bigger than any LLM context window out here. It shouldn't work but it does. You're going to need babysit it for a while and feed it reward tokens of kind words ("your doing good, please continue") and encourage it to keep on going on - even if it gives up. It will time out, lots...

After about two minutes it'll spit out a technical specification which details how the application was built and the features of the application...

At this point it'll timeout for sure. This is when you need to do the "new meta" of asking the LLM to write out the technical specification library. I say new meta because - hi folks - welcome, I haven't talked about this yet publicly yet but the results of this technique when used in combination with the "old meta" are truly absurd. I'll be going deep into this in a follow-up blog post so if you wanna be the first to see it - like, subscribe and click on the bell below below.

Once it has finished dumping out the technical specification library you'll need to feed it this prompt
Now deobfuscate the application.
Split the application into separate files per domain in the SPECS folder.
Provide an overview of the directory structure before starting deobfuscation.
Skip the SENTRYSDK.
After a couple moments you'll be greeted with the skeleton of the deobfuscated outcome...
claude-code/
βββ package.json
βββ tsconfig.json
βββ README.md
βββ LICENSE.md
βββ src/
β βββ index.ts # Main entry point
β βββ cli.ts # CLI argument parsing and commands
β βββ config/ # Configuration management
β β βββ index.ts
β β βββ schema.ts
β β βββ defaults.ts
β βββ terminal/ # Terminal interface
β β βββ index.ts
β β βββ input.ts
β β βββ output.ts
β β βββ rendering.ts
β βββ codebase/ # Codebase analysis
β β βββ index.ts
β β βββ scanner.ts
β β βββ indexer.ts
β β βββ search.ts
β β βββ watcher.ts
β βββ commands/ # Command processing
β β βββ index.ts
β β βββ parser.ts
β β βββ executor.ts
β β βββ handlers/
β β βββ edit.ts
β β βββ search.ts
β β βββ explain.ts
β β βββ git.ts
β β βββ system.ts
β βββ ai/ # AI integration
β β βββ index.ts
β β βββ client.ts
β β βββ context.ts
β β βββ prompts.ts
β β βββ response.ts
β βββ fileops/ # File operations
β β βββ index.ts
β β βββ reader.ts
β β βββ writer.ts
β β βββ diff.ts
β β βββ vcs.ts
β βββ execution/ # Command execution
β β βββ index.ts
β β βββ shell.ts
β β βββ sandbox.ts
β β βββ monitor.ts
β βββ auth/ # Authentication
β β βββ index.ts
β β βββ oauth.ts
β β βββ tokens.ts
β βββ telemetry/ # Analytics and telemetry
β β βββ index.ts
β β βββ events.ts
β β βββ reporter.ts
β βββ errors/ # Error handling
β β βββ index.ts
β β βββ types.ts
β β βββ handlers.ts
β β βββ formatter.ts
β βββ utils/ # Utilities
β βββ index.ts
β βββ logger.ts
β βββ async.ts
β βββ formatting.ts
βββ scripts/ # Build and deployment scripts
β βββ build.js
β βββ preinstall.js
βββ tests/ # Test suite
βββ unit/
βββ integration/
βββ fixtures/
Now this is the part where it gets wild. Strap yourself in for another "oh-fuck" moment in time....

As the CLI.js
is circa 5Mb in size. What follows is going to require a-lot of patience but the key is to use the following prompt and keep giving it "yeah bb, you doing great. keep going" words of encouragement.
Look at the SPECS library.
Look at CLAUDE-CODE folder.
Look at @CLI.js (do not confuse it with @cli.ts), keep transpiling and implement anything that's not in the SPECS folder that has not been implemented in the CLAUDE-CODE folder.
Seriously, you are going to need to enter that at least 100 times over the next 30 minutes. Here's the source code on GitHub if you don't have the patience to do it yourself...
Now, a sharp mind should have picked up by now the implications of this but I'll spell it out. Using the above technique you can clean-room any software in existence.
but the madness doesn't stop there
Deobfuscating JavaScript isn't that interesting or impressive though. Understand dear reader that this technique can be done on any programming language and even from pre-existing binaries themselves. I've transpiled from ASM to into very human readable C successfully and others have converted VB .exe's to Python...
Reddit grandfather uploads 27 year old EXE file of a visual basic game and Claude one-shotted recreating the game in Python in under 5 minutes!!
β Deedy (@deedydas) February 26, 2025
From the binary. pic.twitter.com/KEzUfisxmu
still reading? good it's time for the grand reveal aka what this entire blog post is about...
All those "source available" founders who raised shit-loads-of-cash in the last boom are now screwed, as anyone can re-implement their "proprietary features" which provide them with revenue within hours using the above technique to launch competing startups at lower-operating costs.
All you need is access to their source-code and they have given you the keys to the kingdom on a golden platter by going to market as "commercial open-source" with source-code "protected by restrictive licensing" uploaded directly onto GitHub.

Please understand that restrictive software licenses no longer matter because these LLMs can be driven to behave like Bitcoin mixers that bypass licensing and copyright restrictions using the approach detailed in this blog post.
These zombie companies are about to get harvested if the founders don't "Elon Musk" their companies... fast... especially if they don't have a defensible moat.
So, here's to the next generation of builders. May you use these insights wisely and to your advantage. It's an incredible time to be alive if you just do things.

go fucking build. if you aren't losing sleep right now and doing 80+hr weeks of coding right now whyyyyyyyy. there's so much opportunity available right now...
ps. hi Anthropic
I'm friendly - if you have any concerns/questions please contact me. There's not many killer examples of how to do MCP (even though in my last post I recommended folks learn em) properly and in a follow-up blog post coming shortly I'll be going deep from fundamentals to teach folks how to do it. Your tool system prompts are A+++ and I'm a big fan...
I think you should be making your tool descriptions much much longer. They are like system prompts.
β Quinn Slack (@sqs) February 25, 2025
pps. socials for this blog post are below
If you enjoyed reading, give 'em a share please: