109 karma · joined March 24, 2023
https://ferrislucas.net/
ferris@mydayoff.net
Similar idea re using the same UI across all models, but the agent can modify the harness config as well as start/schedule sessions, etc. The Kanban board feature can be used to orchestrate agent driven workflows, and the agent itself can modify the Kanban lanes. Basically the agent can do all the same things you use the UI for.
Example prompt: “schedule a session using Opus 5 with max thinking for every feature in the PRD on the canvas. For every session make the prompt instruct the agent to review end to end test coverage for the feature and create a report on the canvas for test gaps that you find. Schedule the sessions overnight tonight spread evenly throughout the night, and have each session set to retry upon token exhaustion.”
I think it’s more meta than other meta-harnesses, but I’m biased because it’s my pet project.
(Full disclosure: it’s my project)
https://github.com/ferrislucas/Circus-Chief
Full disclosure: it’s my project
https://github.com/ferrislucas/Circus-Chief
Circus Chief is a tool for managing coding agent sessions from a browser. It's specifically optimized for small screens. It supports Claude Code, OpenAI Codex, and Google Gemini CLI agents.
Features
Agents can operate Circus Chief itself. Agents can spawn sessions, schedule sessions, interact with the Kanban board — anything you can do in the UI, an agent can also do.
Schedule work ahead of time.
Automatically reschedule when you hit usage limits.
Configurable, chainable prompt templates.
User-defined commands - agents can run them and see the results, and so can you in the UI. Handy for local CI or routine workflow steps.
Worktree-per-session isolation, or elect to work on a specific branch.
Shared canvas - this is a place for shared artifacts that don't belong in the code. Useful for iterating on planning documents.
Bring your own provider. Use subscription auth for Anthropic, OpenAI, or Google, or point sessions at third-party providers with Anthropic- or OpenAI-compatible endpoints.
If you want to try it:
npx circuschiefI’m curious what your thoughts are around Cursor, Windsurf, etc. Those are IDE’s that provide the model with limited access to the terminal. Where do you feel like those tools and their AI features - terminal access specifically, fall in an org like yours? Are they disallowed due to terminal access or are the limitations of those tools safe enough?
Would you mind elaborating if I misunderstood what you meant?
We’re 100% on the same page here. No one should ask Claude (or any model) to do something using their terminal and then just walk away. I hope that’s clear from the safety section of what I posted (and in the project README).
Claude REALLY wants to help, and it will go on a journey to the end of the earth to accomplish your task. If you delegate tasks to this tool then you’re going to have to babysit it.
I think what you're describing is something that's built to perform agent based tasks. iterm-mcp isn't intended to be that. It's intended to be a bridge from something like Claude Desktop to iTerm. The REPL use case is a key thing to understand here.
What you're describing is great if you want to delegate "install python on my system" for example, but it doesn't support the REPL use case where you want to work with the REPL through something like Claude Desktop.
The other key use case iterm-mcp addresses is asking questions about what's sitting in the terminal right now. For example, you ran `brew install ffmpeg` and something didn't work: you can ask Claude using iterm-mcp.
> This tool seems like it locks you into iTerm2.
This tool is intended for use with iTerm2. It's not that it "locks you into iTerm2" - iterm-mcp is something that you would choose to use if you already use iTerm2.
> I wonder if there's really a need for separate write to terminal and read output functions? I was hoping that write command itself would execute and return the output of the command, saving back and forth latency.
I traded back and forth latency for lower token use. I didn't want to return gobs of output from `brew install ffmpeg` when the model really only needs to see the last line of output in order to know what to do next.
> The way I solved it is by setting a special PS1 prompt. So as soon as I get that prompt I know the task is done. I wonder if a similar thing can be done in your mcp?
What you suggested with changing the prompt is a good idea, but it breaks down in certain scenarios - particularly if the user is using a REPL. Part of my goal for this is to not have to modify the shell prompt or introduce visual indicators for the AI because I don't want the user to have to work around the AI. I want the AI to help as requested as if it's sitting at your keyboard. I don't want to introduce any friction or really any unwanted change to the user's workflow at all.
It's important to me that this work with REPL's and other interactive CLI utilities. If that weren't a design concern then I'd definitely explore the approach that you suggested.
Together Gift It solves the problem just the way you’d think: with AI.
Just kidding. It solves the problem by keeping everything in one place. No more group texts! You can have private or shared gift lists, and there are some AI features like gift idea collaboration and product search. But the AI stuff is still a work in progress.
I’m grateful for any constructive feedback.
You can find out more here: https://github.com/ferrislucas/promptr
Together Gift It solves the problem the way you’d think: with AI. Just kidding. It solves the problem by keeping everything in one place. No more group texts. There are wish lists and everything you’d want around that type of thing. There is also AI.
Together Gift It solves the problem the way you’d think: with AI. Just kidding. It solves the problem by keeping everything in one place. No more group texts. There are wish lists and everything you’d want around that type of thing. There is also AI.
The system prompt that adds the Promptr CLI tool is here: https://github.com/ferrislucas/open-interpreter/pull/1/files...
In the case of generating unit tests using Promptr, I have an "include" file that I include from every prompt. The "include" file is specific to the project that I'm using Promptr in. It says something like "This is a rails 7 app that serves as an API for an SPA front end. Use rspec for tests. etc. etc."
Somewhere in that "include" file there is a summary of the main entities of the codebase, so that every request has a general understanding of the main concepts that the codebase is dealing with. In the case of the rspec tests that it generated, I included the relevant files in the prompt by including the path to the files in the prompt I give to Promptr.
For example, if a test is for the Book model then I mention book.rb in the prompt. Perhaps Book uses some services in app/services - if that's relevant for the task then I'll include a glob of files using a command line argument - something like `promptr -p prompt.liquid app/services/book*.rb` where prompt.liquid has my prompt mentioning book.rb
You have to know what to include in the prompts and don't be shy about stuffing it full of files. It works until it doesn't, but I've been surprised at well it works in a lot of cases.
I actually forked OI and baked in a prompt that was something like "Promptr is a CLI etc. etc., give Promptr conceptual instructions to make codebase and configuration changes". I think I put this in the system message that OI uses on every request to the OpenAI API.
Once I had OI using Promptr then I worked on a prompt for OI that was something like "create a test suite for the rails in ~/rails-app - use rspec, use this or that dependency, etc.".
Thanks for your interest! I'll try to add more details later.
Then I asked it to add a test suite to a rails side project. It created missing factories, corrected a broken test database configuration, and wrote tests for the classes and controllers that I asked it to.
I didn't have to get involved with mundane details. I did have to intervene here and there, but not much. The tests aren't the best in the world, but IMO they're adding value by at least covering the happy path. They're not as good as an experienced person would write.
I did spend a non-trivial amount of time fiddling with the prompts I used to teach OI about Promptr as well as the prompts I used to get it to successfully create the test suite.
The total cost was around $11 using GPT4 turbo.
I think in this case it was a fun experiment. I think in the future, this type of tooling will be ubiquitous.
https://github.com/ferrislucas/promptr
There’s a templating system (liquidjs) included which is useful if you have a library of prompts that you want to reference often.
You can think of it as a junior engineer that needs explicit instructions.
Here are a few example PR’s implemented by Promptr - see the commits for the prompt that was used to produce the code:
You just prompt it directly or with a file, and it applies the changes to your file system. There's also a templating system that allows you to reference other files from your prompt file if you want to have a shared prompt file that contains project conventions etc.
* full disclosure: I’m the author of Promptr
I start with a prompt that teaches Open Interpreter how to use Promptr, and then I discuss what I’m trying to accomplish. It’s certainly not perfect, but there’s definitely something good that happens when you can iterate using dialog with a robot that can modify your file system and execute commands locally.
[1] Promptr: https://github.com/ferrislucas/promptr
[2] Open Interpreter: https://github.com/KillianLucas/open-interpreter
It’s great for making changes to existing code because it automatically includes the relevant files for context.