Comment by toddmorey

1 day ago

Does anyone use an agnostic TUI or harness for development tasks that can fairly seamlessly switch between providers?

I'm wanting local context in the spirit of "here are 3 AI providers available, for coding tasks use this one... and for writing prose use this one... and for generating images use this one..." etc.

https://opencode.ai/

OpenCode was the first agent harness I used, and I have always like it. You can configure a wide variety of providers, but it's open source and has a number of core contributors.

The other opinionated option is Pi (the Pi agent harness). This is a great lightweight option and also supports a number of providers. You can also use local model servers.

have used both pi and opencode for the last 6 months, haven't opened a proprietary harness (cc, codex, cursor) in that same amount of time. right now i'm on pi and i can switch seamlessly between any model across any provider i want, even mid session. can even point them at locally running models.

i think people don't realize how much better life is over on this side, cc and codex rely entirely on vendor lock in imo.

If you haven't yet you should give a chance to https://pi.dev

I've been using it exclusively (and extending it, see https://a.l3x.in/ai) for months with mainly GLM-4.7 then 5.1 and now 5.2 and I could hardly be any happier.

I'm still working on a "Github/Forgejo first" based workflow but also quite happy with it already, basically most of my sessions run as a ci/cd job (triggered by "/pi" comments) and generate PRs or push commits to PRs, see https://github.com/shaftoe/pi-coding-agent-action

I’ve written a skill for codex and Claude code that designates an orchestrator on the primary worktree and is agnostic about what type of AI workers are on the N supporting worktrees.

The orchestrator knows which AI client is running in any given worktree, so it would be fairly easy to designate which AI should receive what kind of tasks.

You run either Claude or Codex in tabs for each work tree. I do have some AI TUI specific instructions, for instance codex is primitive at monitoring compared to CC. So, there are additional notes for Codex workers on how to properly monitor for new "mail."

You work with the orchestrator on the primary worktree and allow it to delegates tasks to the workers and answer their smaller questions.

It surfaces results and assisting them with context clearing when needed.

The orchestrator and workers communicate using a simple shared file system under tmp/* and together they can handle a big and varied workload.

I use iterm2, so I’ve also added iterm2 specific python that allows the orchestrator to “kick” a worker or perform tasks otherwise veto'd by the TUIs (ie /clear) by modifying the input and submitting it.

I use the one that I've been developing since 2023. It's intended to be used in exactly this spirit! Written in Go, has image support (which has yet to be fleshed out).

It supports MCP (unlike Pi), sandboxing (with user-mode networking), and runs efficiently at huge contexts.

https://codeberg.org/mlow/lmcli

(The screenshot in the folder is a little bit out of date, but is still representative of the overall look)

I use Kilo Code for that it's based in OpenCode and it's OpenSource.

I prefer having a GUI for diffs and session history,but if you prefer TUI you can just use OoenCode