Skip to content

For solo developers with more requests than time

Your users ask.
Your agent builds.
You approve.

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.

  • Your code never leaves your machine
  • Works with Claude Code, Codex, Aider
  • Approve from Telegram

Vicunia

bot · Telegram

Runner online
Needs approval20:40

Bug: CSV export ignores user locale

habits · feedback widget (public) · low risk

  • Dates follow the user's locale
  • Existing US exports unchanged

Why: public source, so your approval is required.

Approve Edit Reject
Approved
  • Claude Code ran in a fresh worktree20:42
  • Tests passed on the 2nd attempt20:47
  • +19 −4 · 2 files · no protected paths20:50
  • PR #142 · CI green · auto-merged20:52
  • Deployed · site answers 20020:54

Shipped in 14 min

The user who reported it got a “fixed, thanks” email.

Illustration of a real flow: one tap, fourteen minutes.

Your agent

Claude Code · Codex · Aider · Any CLI agent

Your stack

GitHub · GitHub Actions · Vercel

Your phone

Telegram · Email · WhatsApp soon

The problem

The small stuff never ships

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.

Agents are fast. Babysitting them isn't.

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.

Small requests pile up across products

Three side projects, one inbox each. The little things your users ask for sit in a backlog until they stop asking.

How it works

From “can you add…” to deployed, without the boring middle

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.

  1. 01

    A request comes in

    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.

  2. 02

    Vicunia writes the spec

    Title, type, risk, acceptance criteria and likely files. Duplicate requests become votes on the same spec instead of new work.

  3. 03

    You approve, or your rules do

    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.

  4. 04

    Your agent ships it

    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.

Bring your own agent and your own machine

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.

  • Each job runs in its own git worktree and branch
  • Failed tests go back to the agent once, with the output
  • Your agent never sees Vicunia's tokens
runner
$ vicunia login --token <token>$ vicunia link habits --path ~/code/habits$ vicunia agent set habits "claude -p {prompt_file}"$ vicunia start✓ connected · waiting for approved jobs

Example

8:40 pm. Sara is at dinner.

A user of her habit-tracker app reports a bug. Here is what happens next, with no laptop open.

  1. 20:40

    A user writes in the feedback widget

    “Export uses US date format, I'm in France.”

  2. 20:40

    Vicunia writes the spec

    Bug: CSV export ignores user locale. Low risk, two acceptance criteria.

  3. 20:41

    Sara taps Approve on Telegram

    The request came from a public source, so her rules ask her first. She's at dinner.

  4. 20:42

    The runner on her laptop picks it up

    New git worktree, Claude Code starts. Tests fail once; the agent reads the output and fixes it.

  5. 20:50

    23 lines, no protected files

    The rules pass on the real diff. Vicunia pushes and opens the pull request.

  6. 20:52

    CI green, auto-merged

    A small bug fix inside her auto-merge limits, so no second tap needed.

  7. 20:54

    Deployed and checked live

    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

Automation you can actually leave on

You stay the decision-maker. Vicunia enforces your rules in code and tells you why it did what it did.

Rules run twice

Once on the spec before anything runs, and again on the actual diff before anything is pushed.

Protected paths block the push

.env files, migrations, auth, payments, CI workflows and lockfiles. If the agent touches one, the change stops on your machine.

Public requests never auto-merge

Anything your users send waits for your approval and is never merged without you. That's in the code, not a setting.

Only small changes merge on their own

By default: trusted source, bug, copy or chore, at most 300 lines and 10 files, green CI. Everything else asks you first.

Every decision explains itself

Each card says auto, needs approval or blocked, and why. No silent automation.

Requests are data, not instructions

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

Diff size23 lines · 2 files
Protected pathsnone touched
Testspassed
Sourcepublic
needs_approval

Public sources always need your approval and never auto-merge.

Before and after

Same change, without the ceremony

StepBy handWith Vicunia
Read the request, decide if it's worth doingYouVicunia writes the spec, you tap
Branch, prompt the agent, waitYouRunner, on your machine
Run tests, feed failures backYouRunner
Check the diff for risky filesYouRules, before push
Open PR, wait for CI, mergeYouVicunia, within your limits
Watch the deploy, tell the userYouVicunia

What Vicunia is not: a coding agent, a code host or a deploy platform. It orchestrates the tools you already use.

Chat-first

Run it from the apps already on your phone

Send requests and approve specs from Telegram. A text like “habits: add a dark mode toggle in settings” is enough.

Telegram

Send requests as normal messages. Approve, edit or reject with buttons on cards that update in place, plus /inbox, /status and /mute 8h.

Email

One-click signed links that expire, and the fallback whenever chat can't be reached.

Web

The live inbox and job timelines, with tests, diff size, PR and deploy links.

WhatsAppSoon

The same cards and buttons on WhatsApp. Coming later.

Pricing

Start free, upgrade when it earns its keep

Both plans run the same loop with the same safety rules. Requests from public sources always wait for your approval, on every plan.

Free

For one side project

$0forever

project
1project
requests a month
30requests a month
  • Spec, rules and approvals from Telegram, email and the web
  • Your agent on your machine, tests and the diff check
  • Merge each PR with one tap

No card needed.

Pro

Auto-merge

For several products with real users

$39a month

projects
10projects
requests a month
500requests a month
  • Everything in Free
  • Auto-merge for small changes from trusted sources, with green CI
  • Monthly subscription, cancel any time from the billing portal

Upgrade from Billing in the app. Cancel any time.

FAQ

Questions developers ask first

Which coding agents does Vicunia work with?

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.

Does my source code leave my machine?

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.

What stops the agent from breaking production?

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.

Can the users of my app trigger code changes?

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.

Where does my app need to be hosted?

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.

Does my laptop have to be on?

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.

Why chat apps?

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.

Does Vicunia work with WhatsApp?

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.

Does it work with GitLab or Bitbucket?

Not yet. Vicunia starts with GitHub.

How much does Vicunia cost?

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.

Ship the small stuff while you sleep.

Sign in with Google, connect a repository, link Telegram and start the runner. The free plan needs no card.