A task
On a task's page the dock is anchored to that task. Every turn opens with a fresh read of the task's own file, beside its stage, its owner, the agents engaged on it, its branch and pull request, and whatever it is waiting on.
The controller is the one agent every signed-in person on a Viberr instance can talk to. It answers questions about your projects, carries out what you ask within exactly your own permissions, and plans work into epics.
Get startedRead the controller docs
It runs on your own Claude account. It has no tool to merge or to accept.
Open the dock and the controller is already bound to what you are looking at. Each turn begins with a read of that place, which the server takes as the turn starts.
On a task's page the dock is anchored to that task. Every turn opens with a fresh read of the task's own file, beside its stage, its owner, the agents engaged on it, its branch and pull request, and whatever it is waiting on.
On a project's other views the dock is bound to the board. It reads the stages and the boundaries between them, the members, the open tasks and the open epics with their progress. The project also has a Controller page of its own, fourth in the rail, and that page has no dock.
On the other pages that carry the dock it speaks for the whole instance: the projects you can see, your role in each and what is happening there. The instance has a Controller page of its own too, at /controller.
pull_request:write, so PR status can't auto-sync after merge. Completion still requires explicit human acceptance.The controller has no authority of its own. A change it makes on a board passes the same role checks as the page you would have made it on: a contributor's controller can file a task, and starting an agent on one takes a maintainer. When the server refuses, the controller tells you so. Every write is audited under your name with the controller named as the instrument, and a comment it posts for you says it was posted for you.
Merging a pull request, accepting a completion, answering a decision packet and moving a task into the final stage are not in its toolkit. Ask for that last move and it points you to the task page. It has no tool that deletes a project, a task or a user.
Each change is checked against your role on the project.
Describe an outcome and the controller can lay it out as an epic: a named body of work inside one project, with the tasks that belong to it. Each task says what it waits on, and Viberr starts it when that work is done. The epic itself orders nothing and holds nothing back. Its status is yours to set, and its progress is counted from its tasks.
The controller can leave a conversation its next step for the moment a task is accepted. Viberr then starts that turn itself, as the person who asked.
A turn uses the Claude account of the person who asked. The instance has no account of its own, so a colleague who has not connected Claude never stops you from asking.
A conversation belongs to whoever started it. A project's other members cannot read it, though an org admin can. Viberr never deletes one on its own.
Send a message while the controller is working and it joins the turn at its next step. Queue it and it is answered in a turn of its own.
On a running instance the controller's round button sits at the bottom right of a board, a task's page and most other pages. The sign-in page, your profile and your notifications have none, and neither do the two Controller pages. Open it and ask in your own words. The documentation's own example:
create a task on WEB to add rate limiting to the login formWEB is a project's key. The task the controller creates gets an operator of its own, like any other task. More about the agents