Skip to content

Latest commit

 

History

126 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🖐 thing

A minimal, self-evolving agent harness built from first principles

Go License: GPLv3 CI

thing screenshot


🧭 Why this exists

thing started with a simple question: how does an agent harness actually work? I hand-wrote the first loop, then uploaded its source code to the running agent in base64-encoded chunks. I asked it to implement the bash tool and copied its answer back into the source. That was the moment the harness began to evolve: it could now inspect and edit its own code.

From there, I began adding the features I enjoy in other harnesses, borrowing most heavily from Pi, which I use every day.

No vibe-coding. The goal is to understand how agent loops work. A model can help guide its own evolution, but nothing lands blindly.

🧰 Getting started

thing connects to an OpenAI-compatible Chat Completions endpoint. Create ~/.config/thing/config.toml with your model and endpoint:

model = "your-model"
endpoint = "https://your-provider.example/v1/chat/completions"
connection_timeout = 600 # optional; seconds per model request
reasoning_effort = "medium" # optional

Then run:

./script/run

On first run, thing asks for an API token and stores it in the system keychain.

⚠️ Current trust model

Tool calls are not confirmed one by one, and sandboxing is not implemented yet. The bash tool runs with the permissions of the process, so use thing only in a project environment where you trust the model and can tolerate its changes.

About

A minimal, self-evolving agent harness built from first principles

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages