https://dganev.com/posts/2026-01-24-bypassing-copilot-requests/
A web-based task queue server designed for orchestrating LLM agents. It provides a Kanban-style UI for managing tasks and a simple HTTP API for agents to poll for work and submit results.
- Go 1.21 or later
- SQLite3 (included via go-sqlite3)
# Clone the repository
git clone <repository-url>
cd theinf-loop
# Install dependencies
go mod download
# Build the server
go build -o task-server .# Run directly
go run main.go
# Or run the built binary
./task-serverThe server starts on http://0.0.0.0:8000.
Open http://127.0.0.1:8000 in your browser to access the Kanban board UI where you can:
- Create new tasks
- View tasks in three columns: To Do, In Progress, Done
- Drag and drop tasks between columns
- Delete tasks
- Set the working directory for agents
- View task outputs
GET /task
Returns the next available task (oldest NOT_PICKED task first). Automatically marks the task as IN_PROGRESS.
Response (task available):
AVAILABLE TASK ID: 1
TASK_STATUS: IN_PROGRESS
Instructions:
<task instructions here>
Response (no tasks):
No tasks available.
Wait 15 secs for new instructions.
POST /create
Content-Type: application/x-www-form-urlencoded
instructions=<task instructions>&parent_task_id=<optional parent id>
Response:
{"success": true, "task_id": 1}POST /save
Content-Type: application/x-www-form-urlencoded
task_id=<id>&message=<output summary>
Marks the task as COMPLETE and stores the output.
POST /update-status
Content-Type: application/x-www-form-urlencoded
task_id=<id>&status=<NOT_PICKED|IN_PROGRESS|COMPLETE>
POST /delete
Content-Type: application/x-www-form-urlencoded
task_id=<id>
GET /api/tasks
GET /api/workdir
POST /set-workdir (workdir=<path>)
GET /events
Real-time task updates for the web UI.
GET /instructions
Returns the initial instructions for setting up an agent.
go run main.goOpen http://127.0.0.1:8000 and set the working directory where your agents should operate.
Click "New Task" and enter instructions for your agent:
Create a Python script that prints "Hello, World!"
Give your LLM agent these initial instructions:
See http://127.0.0.1:8000/instructions use curl to get the instructions and proceed with it. Do not stop when there are no new tasks!
The agent will:
- Poll
GET /taskto receive work - Execute the task instructions
- Submit results via
POST /save:curl -X POST http://127.0.0.1:8000/save \ -d "task_id=1" \ -d "message=Created hello.py script that prints Hello World"
- Wait 15 seconds
- Poll
/taskagain for the next task
Tasks can have parent-child relationships. When creating a task, select a parent task to build context chains. Child tasks automatically receive context from their parent's output.
| Status | Description |
|---|---|
NOT_PICKED |
Task is queued, waiting to be picked up |
IN_PROGRESS |
Task has been assigned to an agent |
COMPLETE |
Task finished, output saved |
Tasks are stored in tasks.db (SQLite) in the current directory. Delete this file to reset all tasks.
┌─────────────────┐ ┌─────────────────┐
│ Web Browser │────▶│ Go Server │
│ (Kanban UI) │◀────│ :8000 │
└─────────────────┘ └────────┬────────┘
│
┌─────────────────┐ │
│ LLM Agent │──────────────┤
│ (polls /task) │ │
└─────────────────┘ ▼
┌─────────────────┐
│ SQLite DB │
│ tasks.db │
└─────────────────┘
MIT