Show HN: Tusk Drift – Turn production traffic into API tests

Hacker News (score: 18)
Found: January 15, 2026
ID: 3020

Description

Testing
Show HN: Tusk Drift – Turn production traffic into API tests Hi HN! In the past few months my team and I have been working on Tusk Drift, a system that records real API traffic from your service, then replays those requests as deterministic tests. Outbound I/O (databases, HTTP calls, etc.) gets automatically mocked using the recorded data.

Problem we're trying to solve: Writing API tests is tedious, and hand-written mocks drift from reality. We wanted tests that stay realistic because they come from real traffic.

versus mocking libraries: Tools like VCR/Nock intercept HTTP within your tests. Tusk Drift records full request/response traces externally (HTTP, DB, Redis, etc.) and replays them against your running service, no test code or fixtures to write/maintain.

How it works:

1. Add a lightweight SDK (we currently support Python and Node.js)

2. Record traffic in any environment.

3. Run `tusk run`, the CLI sandboxes your service and serves mocks via Unix socket

We run this in CI on every PR. Also been using it as a test harness for AI coding agents, they can make changes, run `tusk run`, and get immediate feedback without needing live dependencies.

Source: https://github.com/Use-Tusk/tusk-drift-cli

Demo: https://github.com/Use-Tusk/drift-node-demo

Happy to answer questions!

More from Hacker

Show HN: Yolobox – Run AI coding agents with full sudo without nuking home dir

Show HN: Yolobox – Run AI coding agents with full sudo without nuking home dir

Sandbox: Run untrusted AI code safely, fast

Sandbox: Run untrusted AI code safely, fast

Show HN: Bithoven – A high-level, imperative language for Bitcoin Smart Contract

Show HN: Bithoven – A high-level, imperative language for Bitcoin Smart Contract Hey HN! I’m a researcher working on Bitcoin smart contracts, and today I’m releasing Bithoven—a high-level imperative language that compiles to native Bitcoin Script (Legacy, SegWit, and Taproot).<p>The Goal:<p>Raw Bitcoin Script is notoriously difficult to reason about. Writing raw Bitcoin Script today feels like writing Assembly in the 1970s. You have to mentally juggle the stack (`OP_SWAP`, `OP_ROT`), manually manage distinct execution branches, and pray you didn&#x27;t leave a stack item unconsumed (which crashes the script). My goal was to bridge the gap between complex contract logic and raw opcodes, allowing developers to write readable, compile-time-safe code.<p>Key Features:<p>- Imperative Syntax: Write logic using familiar if&#x2F;else and return statements instead of mental stack juggling.<p>- Type Safety: First-class support for bool, signature, string, and number types to prevent runtime errors.<p>- Targeted Compilation: Support for Legacy, SegWit, and Taproot compilation targets.<p>- Native Primitives: Built-in keywords for timelocks (older, after) and cryptography (sha256, checksig).<p>You can try it in the browser here (runs via WASM): <a href="https:&#x2F;&#x2F;bithoven-lang.github.io&#x2F;bithoven&#x2F;ide&#x2F;" rel="nofollow">https:&#x2F;&#x2F;bithoven-lang.github.io&#x2F;bithoven&#x2F;ide&#x2F;</a><p>Here is an example of a Hashed Time-Locked Contract (HTLC):<p><pre><code> (condition: bool, sig_alice: signature) (condition: bool, preimage: string, sig_bob: signature) { if condition { &#x2F;&#x2F; Relative locktime (Sequence) older 1000; return checksig (sig_alice, alice_pk); } else { &#x2F;&#x2F; Hashlock verification verify sha256 sha256 preimage == hash; return checksig (sig_bob, bob_pk); } } </code></pre> The project is free open source and the academic paper is currently under review. I’d love to hear any feedback. Thanks for checking it out!

Show HN: LinkedQL – Live Queries over Postgres, MySQL, MariaDB

Show HN: LinkedQL – Live Queries over Postgres, MySQL, MariaDB LinkedQL is a new SQL client that supports live queries over any Postgres, MySQL, and MariaDB database. You get result sets that self-update differentially as rows change in your database – via inserts, updates, deletes. Works with no extra tooling&#x2F;ORM layer or GraphQL servers. You opt into live mode simply with a flag: client.query(&#x27;SELECT ...&#x27;, { live: true }). More at: <a href="https:&#x2F;&#x2F;linked-ql.netlify.app&#x2F;capabilities&#x2F;live-queries" rel="nofollow">https:&#x2F;&#x2F;linked-ql.netlify.app&#x2F;capabilities&#x2F;live-queries</a><p>LinkedQL is written in JavaScript and runs in both client and server environments.<p>GitHub + docs: <a href="https:&#x2F;&#x2F;github.com&#x2F;linked-db&#x2F;linked-ql" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;linked-db&#x2F;linked-ql</a><p>Demo examples included.<p>I’d love feedback: • Anything confusing? • Anything seems useful or dangerous? • Anything else that&#x27;d make you consider LinkedQL for production?<p>Thanks for taking a look — happy to answer any questions.

No other tools from this source yet.