Show HN: Delegator – Stop juggling coding-agent sessions (alcubi.ai)

1 points by mattm ↗ HN
I wanted to share Delegator with the HN community. delegator gives you a personal inbox to manage your tasks that is completely local to your machine.

Backstory: Like everyone else, I've been experimenting with different AI-assisted development workflows. I realized I was having difficulty with all the context switching between tasks. Asking agents to develop code ends up taking about 5-10 minutes usually for well-scoped tasks. At the beginning I would read the AI output as it went along and sometimes interrupt to guide it. But as LLMs have gotten better, there's less need to do that. So I would spin up another task during the latency and then another. (I wrote a little bit about this previously here https://mattmccormick.ca/we-re-all-managers-now-my-journey-i... )

Jumping back and forth between terminals with the Agent being at different stages was mentally taxing. I experimented with some different options and ended up realizing that to avoid the drain of context-switching, what I really needed was a queue.

Delegator works by putting all scoped tasks through the system. It stops when the ready queue has reached your configured limit. This is to prevent too much work from piling up waiting for review. It also presents the work from getting too far ahead in case any issues are found as part of development.

I also realized that for most tasks, agents can be treated as a background process. You pass in the work to the process. It processes it and then gives you an output to review. All changes are made in git worktrees for safety.

Who's it for? Delegator is for engineers who still want to understand the code and changes. It's not for vibe-coding or exploratory work. Don't get me wrong, I'll still spin up an agent session for brainstorming design options. But once I'm aligned on a direction, I'll then ask the agent to break down the work into "dg tickets". Since Delegator is a local program, agents can interact with it quickly and seamlessly.

Right now it's just CLI based but I'm looking to expand this into a GUI/Desktop App so I would be interested in any feedback you have. Let me know if you have any questions and I'll respond. The code is source available so you can check it out at https://github.com/alcubie/delegator if you want to check anything.

9 comments

[ 0.40 ms ] story [ 15.7 ms ] thread
@haukebri your comment is flagged as dead so replying here.

> Do you keep a fresh context per agent?

Yes I've run into the same problem of trying to stuff too much into one session. So Delegator uses a fresh session for each task. For larger workflows, I'll do the same where I'll have a design or feature doc and then the tickets may refer to that if necessary for additional context.

> The part that eats my time isn't the delegation, it's the review. I trust an agent now on mechanical work with a crisp "done" definition, and a lot less where the acceptance criteria are fuzzy, so those tickets tend to take me longer than doing them myself. > Between the queue and your review, where do you actually get bottlenecked? That's my constraint right now.

Yes, I'm bottlenecked on the review. I think everyone has this problem now. I'm trying to solve that by bringing the task into a ticket system so you can easily look up what it was trying to do. From some research I did, context switching isn't so bad if you are presented with the context clearly and succinctly when coming back to the task. I'll admit I don't think I have a perfect solution for this yet but I'm trying to work towards that. I do think this is the biggest issue with AI-assisted development - reviewing the code and output. What have you tried that's been working?

Thanks
Your other comment is flagged as dead so I'll reply here:

> I like the idea of using a “local inbox for agent sessions” because switching between different contexts can be more frustrating than the actual time it takes the agent to run.

> But I’m curious about how you see the inbox being useful beyond simply storing and replaying conversations.

> A few things would help me understand the practical value:

> What does a session actually contain? Is it just the conversation, or does it also include things like prompts, code changes, test results, Git commits, and other context? Can you reliably replay a session? Ideally, someone should be able to see what task was given, what the agent changed, what tests were run, and whether the task actually passed. What happens when work gets interrupted? If I pause one task and start another, can I come back later without losing the context or putting the project into a confusing state? How do you prove the work was completed? For example, can the system show the tests that were run, the changes made, and whether they passed? How is everything kept safe? If everything runs locally, that's great, but I'd still want to know how filesystem, network access, and logs are controlled.

> Even a small example showing something like how long it takes to go from starting a task to getting a working result, compared with the current workflow, would make the benefits much easier to understand.

---

Thanks for the questions! I like your suggestion about providing a small example. I'll put that together. Email me at matt@alcubi.ai and I will send it to you when it's ready. In the meantime, this page from the documentation may help to provide some of the details you're looking for https://alcubi.ai/delegator/docs/dev/concepts/ticket-lifecyc...

A session includes the scoped task request (ticket) and the code changes that are made on a separate git branch in a new worktree. You can enter the agent session at anytime with the "dg chat" command. That will allow you to look into the details of how the agent accomplished its work. So even though the runs execute in the background, the agent session is always available if you want to jump into it. I'll use this command when something was unclear to ask for follow-up changes. The agent will still have all the context in its session from the work it previously did so there's no extra context loading needed in these case.

If works gets interrupted, the ticket status moves to the Failed inbox. You'll see that clearly from the output of the "dg" command which shows the various inboxes. When this happens I'll use "dg chat" to attach to the agent session to understand what went wrong. Usually, this is something like the Claude/Codex API being down. When the API is back up, I run "dg restart" to restart the processing from where it left off. Since all work is done in separate branches and worktrees there's no ability for your project's main branch to be left in a confusing state.

The agents will run your test suite that's setup. delegator is just the orchestration layer. You can customize any steps you'd like the agents to follow via your AGENTS.md file. That will be taken into account when the agents run. So for example, you could add in your AGENTS.md file that for any delegator ticket they work on to include details in the commit of tests that were run. It's very flexible like that so you can customize it for your setup.

For safety, I've gotten to the point where I trust that agents are only accessing data that they need so there are currently no guardrails in place. This is something you could add to your AGENTS.md file to get information about but that's not deterministic. I could add in features to supp...