A one-line fix still costs an evening
Branch, prompt the agent, wait, run the tests, open the PR, merge, watch the deploy, reply to the user. The change takes minutes. The ceremony takes the night.
For solo developers with more requests than time
Vicunia turns feedback, error alerts and messages from your phone into tested, merged and deployed changes. It runs the coding agent you already use on your own machine. You approve with one tap in Telegram.
Free for 1 project and 30 requests a month. No card needed.
Vicunia
bot · Telegram
Bug: CSV export ignores user locale
habits · feedback widget (public) · low risk
Why: public source, so your approval is required.
Shipped in 14 min
The user who reported it got a “fixed, thanks” email.
Your agent
Claude Code · Codex · Aider · Any CLI agent
Your stack
GitHub · GitHub Actions · Vercel
Your phone
Telegram · Email · WhatsApp soon
The problem
Branch, prompt the agent, wait, run the tests, open the PR, merge, watch the deploy, reply to the user. The change takes minutes. The ceremony takes the night.
Your coding agent can fix the date format in five minutes. It still needs someone to hand it the task, check the diff and press merge.
Three side projects, one inbox each. The little things your users ask for sit in a backlog until they stop asking.
How it works
Vicunia sits between where requests show up and the coding agent you already use. It handles the spec, the rules, the PR, the merge and the follow-up. You keep the decisions.
From your app's feedback widget or error alerts through a webhook, from the web inbox, or as a plain text to the Vicunia bot on Telegram.
Title, type, risk, acceptance criteria and likely files. Duplicate requests become votes on the same spec instead of new work.
Approve, edit or reject with one tap in chat. Low-risk requests from trusted sources can go straight through. Public ones always wait for you.
The runner on your machine creates a git worktree, runs your agent and your tests, checks the real diff, pushes and opens a PR. Vicunia merges when CI is green, checks the deploy is live and tells you and the person who asked.
The Vicunia runner is a small CLI that runs where your code already lives. It uses your agent, your git credentials and your test command. Vicunia only receives status, diff stats and short log excerpts.
$ vicunia login --token <token>$ vicunia link habits --path ~/code/habits$ vicunia agent set habits "claude -p {prompt_file}"$ vicunia start✓ connected · waiting for approved jobsExample
A user of her habit-tracker app reports a bug. Here is what happens next, with no laptop open.
20:40
“Export uses US date format, I'm in France.”
20:40
Bug: CSV export ignores user locale. Low risk, two acceptance criteria.
20:41
The request came from a public source, so her rules ask her first. She's at dinner.
20:42
New git worktree, Claude Code starts. Tests fail once; the agent reads the output and fixes it.
20:50
The rules pass on the real diff. Vicunia pushes and opens the pull request.
20:52
A small bug fix inside her auto-merge limits, so no second tap needed.
20:54
Vercel reports the deployment, Vicunia checks the site answers, and the user gets an email: “Fixed, thanks for reporting it!”
Fourteen minutes, one tap.
Safety
You stay the decision-maker. Vicunia enforces your rules in code and tells you why it did what it did.
Once on the spec before anything runs, and again on the actual diff before anything is pushed.
.env files, migrations, auth, payments, CI workflows and lockfiles. If the agent touches one, the change stops on your machine.
Anything your users send waits for your approval and is never merged without you. That's in the code, not a setting.
By default: trusted source, bug, copy or chore, at most 300 lines and 10 files, green CI. Everything else asks you first.
Each card says auto, needs approval or blocked, and why. No silent automation.
User text goes to the agent as a delimited file, never into a shell command, so a crafted request can't run anything.
Rules check on the diff
Shown on every card
Public sources always need your approval and never auto-merge.
Before and after
| Step | By hand | With Vicunia |
|---|---|---|
| Read the request, decide if it's worth doing | You | Vicunia writes the spec, you tap |
| Branch, prompt the agent, wait | You | Runner, on your machine |
| Run tests, feed failures back | You | Runner |
| Check the diff for risky files | You | Rules, before push |
| Open PR, wait for CI, merge | You | Vicunia, within your limits |
| Watch the deploy, tell the user | You | Vicunia |
What Vicunia is not: a coding agent, a code host or a deploy platform. It orchestrates the tools you already use.
Chat-first
Send requests and approve specs from Telegram. A text like “habits: add a dark mode toggle in settings” is enough.
Send requests as normal messages. Approve, edit or reject with buttons on cards that update in place, plus /inbox, /status and /mute 8h.
One-click signed links that expire, and the fallback whenever chat can't be reached.
The live inbox and job timelines, with tests, diff size, PR and deploy links.
The same cards and buttons on WhatsApp. Coming later.
Pricing
Both plans run the same loop with the same safety rules. Requests from public sources always wait for your approval, on every plan.
For one side project
$0forever
No card needed.
For several products with real users
$39a month
Upgrade from Billing in the app. Cancel any time.
FAQ
Claude Code is the default. Any agent that runs from the command line, such as Codex or Aider, works through a command template like claude -p {prompt_file}. Vicunia hands the agent the spec as a file and runs your tests afterwards.
No. The Vicunia runner works in a git worktree on your machine with your own agent and git credentials. The only way code leaves is your own git push to GitHub. Vicunia's servers receive the job status, diff stats and short log excerpts, never your source code.
Your tests, your CI and Vicunia's rules. Rules are checked on the spec and again on the real diff before any push. Changes to protected paths such as .env files, migrations, auth, payments, CI workflows and lockfiles are blocked. Only small, low-risk changes from trusted sources merge automatically, and only with green CI.
They can send requests, not changes. Requests from public sources like a feedback widget always need your approval and never merge automatically. Their text is treated as data and is never executed.
Your code lives on GitHub; Vicunia connects through a GitHub App to open pull requests, read CI results and merge. Deploys are detected through GitHub deployment statuses, which Vercel reports, and Vicunia then checks that your URL responds before it calls a change shipped.
The runner executes jobs whenever it is online. If it's offline, approved jobs wait in the queue. You can also run it on an always-on machine or a small server.
Most small requests can be decided in five seconds, and your phone is where you are. You can send requests and approve specs from Telegram today. Email covers the rest and is the fallback when chat can't be reached.
Not yet. WhatsApp support, with the same cards and buttons as Telegram, is planned for later. Until then, use Telegram, email or the web inbox.
Not yet. Vicunia starts with GitHub.
There's a free plan with 1 project and 30 requests a month, no card needed. Pro raises that to 10 projects and 500 requests a month, and lets small changes from trusted sources merge on their own. Pro is $39 a month, and you can cancel any time.
Sign in with Google, connect a repository, link Telegram and start the runner. The free plan needs no card.