ThinHarness is a minimal, opinionated Python harness for purpose-built agents.
It owns the focused set of primitives that are tedious to rebuild and leaves the rest of the stack to your app.
It matches the harness-level feature coverage of frameworks 5–10× its size, so forking is a real option, not a theoretical one.
Pre-1.0, MIT licensed, Python 3.11+.

This is exactly what the agent ecosystem needed. So many frameworks push you into their opinionated stack, but most projects just need focused primitives - filesystem tools, structured output, retries. The fact that ThinHarness gets you 5-10x framework coverage in a tiny footprint while staying MIT licensed is huge for independent builders who don't want to get locked into ecosystem wars.
I started building ThinHarness after getting tired with huge agent frameworks. I usually needed only a small slice of functionality, but that slice came with coupled assumptions that didn't match my application. I've been using it for all my agent projects recently but would love feedback from anyone building agent workflows in Python!
The decision to make forking a first-class option rather than an edge case is what sets this apart. Most agent frameworks assume you want to stay inside their ecosystem forever, so they make the core so complex that forking is impractical. Keeping ThinHarness at harness-level coverage means you get the tedious primitives handled without absorbing opinions about your application layer. The parallel LLM call support is particularly useful for workflows where you need to fan out to multiple models and reconcile results without writing boilerplate retry logic each time.

The fork-as-a-real-option framing is what stands out to me. Most agent frameworks make forking theoretical because the surface area is huge, so keeping the primitives focused and MIT licensed is the right call for anyone who wants to own their stack. Curious where you draw the line on what stays in the harness versus what gets pushed back to the app.
Framework sprawl is underrated as a failure mode — most teams reach for the biggest framework before they know if they even need it. How are you handling shared state/context when someone's running several of these focused agents together instead of one big one? That's usually where the "simple by default" story gets tested.
The "forking is a real option, not a theoretical one" pitch is a genuinely good angle — most agent frameworks are impossible to audit once you hit an edge case, and owning just the tedious primitives (retries, tool dispatch, state) is where the actual value is. MIT + Python 3.11+ and pre-1.0 honesty about scope is refreshing. How do you handle provider abstraction — is it BYO client, or do you ship thin adapters for OpenAI/Anthropic/Gemini?
The "forking is a real option, not a theoretical one" pitch is a genuinely good angle — most agent frameworks are impossible to audit once you hit an edge case, and owning just the tedious primitives (retries, tool dispatch, state) is where the actual value is. MIT + Python 3.11+ and pre-1.0 honesty about scope is refreshing. How do you handle provider abstraction — is it BYO client, or do you ship thin adapters for OpenAI/Anthropic/Gemini?

This is exactly what the agent ecosystem needed. So many frameworks push you into their opinionated stack, but most projects just need focused primitives - filesystem tools, structured output, retries. The fact that ThinHarness gets you 5-10x framework coverage in a tiny footprint while staying MIT licensed is huge for independent builders who don't want to get locked into ecosystem wars.
I started building ThinHarness after getting tired with huge agent frameworks. I usually needed only a small slice of functionality, but that slice came with coupled assumptions that didn't match my application. I've been using it for all my agent projects recently but would love feedback from anyone building agent workflows in Python!
The decision to make forking a first-class option rather than an edge case is what sets this apart. Most agent frameworks assume you want to stay inside their ecosystem forever, so they make the core so complex that forking is impractical. Keeping ThinHarness at harness-level coverage means you get the tedious primitives handled without absorbing opinions about your application layer. The parallel LLM call support is particularly useful for workflows where you need to fan out to multiple models and reconcile results without writing boilerplate retry logic each time.

The fork-as-a-real-option framing is what stands out to me. Most agent frameworks make forking theoretical because the surface area is huge, so keeping the primitives focused and MIT licensed is the right call for anyone who wants to own their stack. Curious where you draw the line on what stays in the harness versus what gets pushed back to the app.
Framework sprawl is underrated as a failure mode — most teams reach for the biggest framework before they know if they even need it. How are you handling shared state/context when someone's running several of these focused agents together instead of one big one? That's usually where the "simple by default" story gets tested.
The "forking is a real option, not a theoretical one" pitch is a genuinely good angle — most agent frameworks are impossible to audit once you hit an edge case, and owning just the tedious primitives (retries, tool dispatch, state) is where the actual value is. MIT + Python 3.11+ and pre-1.0 honesty about scope is refreshing. How do you handle provider abstraction — is it BYO client, or do you ship thin adapters for OpenAI/Anthropic/Gemini?
The "forking is a real option, not a theoretical one" pitch is a genuinely good angle — most agent frameworks are impossible to audit once you hit an edge case, and owning just the tedious primitives (retries, tool dispatch, state) is where the actual value is. MIT + Python 3.11+ and pre-1.0 honesty about scope is refreshing. How do you handle provider abstraction — is it BYO client, or do you ship thin adapters for OpenAI/Anthropic/Gemini?
Find your next favorite product or submit your own. Made by @FalakDigital.
Copyright ©2025. All Rights Reserved