Test a Cheap Coding Agent on a ₹1,000 Budget

Most people pick a cheap coding agent the way they pick a biryani place: a friend said it was good. Then the first week goes into reading diffs that look fine, run badly, and cost more attention than the subscription saved.
This guide replaces the vibe check with a protocol. You will spend at most ₹1,000, run one small real task per agent, and judge each agent on four things: diff quality, tests you rerun yourself, actual spend, and the minutes you spend cleaning up afterward. At the end there is a blank worksheet to fill in with your own numbers.
To be clear about what this is: a proposed evaluation protocol, not a set of observed results and not a ranking. I am not telling you which agent wins. I am giving you a way to find out on your own code before you pay for anything past the trial.
Prerequisites: VS Code or a VS Code-based IDE (Cursor, Antigravity, VSCodium), git installed, a repository you already know, and an hour or two per agent.
Step 1: Set a hard ₹1,000 ceiling and split subscription from API spend
Write the number down before you install anything: ₹1,000 total, across every agent you test. Not per agent. A ceiling that applies per agent is a plan to spend ₹4,000 and call it frugal.
Now split that ₹1,000 into two buckets, because they behave differently.
Bucket A: subscription spend. This is the flat fee that renews on a date. It is predictable, and the trap is the renewal, not the first charge. Introductory pricing is temporary. OxCode, for example, lists Starter at ₹99 for the first two months and ₹899/month after that, and Pro at ₹999 then ₹3,999/month (per OxCode pricing). Whatever agent you test, record both the first-period price and the renewal price. Your ceiling covers the first period. Your decision at the end covers the renewal.
Bucket B: API spend. This is metered usage: you bring your own key, or the tool bills per token or per request. It is unpredictable and can blow through a ceiling in one badly scoped task. If an agent offers a bring-your-own-key mode, set a hard spending limit on the key itself, not just in your head.
Keep the two buckets in separate rows of your worksheet. A flat plan and a metered plan are not comparable until you know how much of your real task each one consumed. For a longer breakdown of how these two cost types differ for Indian developers, see cheap AI coding agents: subscription vs API costs in India.
If an agent has a free tier, use it first. OxCode's Free plan is ₹0 at 15 runs a day, so it costs you nothing against the ceiling.
Step 2: Pick one small real task in a repository you already know
The task decides whether the test means anything. Pick wrong and you are measuring the agent's ability to write a to-do app, which tells you nothing about your Tuesday.
Use a real task from a repository you already know well. You need to know the code well enough to spot a wrong diff in thirty seconds. A good task has these properties:
Small. It should touch two to five files. If you cannot describe it in four sentences, it is too big.
Verifiable. There is a test, a type check, or a command that proves it works. "Make the dashboard feel snappier" is not a task. "Add pagination to the /orders endpoint, 20 per page, with a test" is.
Real. It comes from your backlog or a client ticket, not from a tutorial.
Not already solved in your head. If you have a clean implementation in mind, you will grade the agent against your taste instead of against correctness.
Write the task as a single prompt and save it in a file called task.md. Every agent gets the exact same prompt, character for character. Do not tweak the wording for the second agent because the first one misunderstood. A misunderstanding caused by your prompt is a legitimate result, because it shows how forgiving the agent is.
One rule on scope: one task, one run, per agent. Resist the urge to run five tasks. You have ₹1,000 and a finite afternoon, and a single well-chosen task exposes most of what you need to know about diff quality and cleanup cost.
Step 3: Lock a baseline: run the tests and record the starting state
Before any agent touches the repo, you need to know what "green" looked like. Otherwise you will blame the agent for a test that was already failing.
From a clean checkout of your main branch, do this:
Run the full test suite. Record the exact command, the number of tests, passes, failures and skips, and the wall-clock time.
Run your linter and type checker if you have them. Record the error and warning counts.
Run
git statusand confirm the working tree is clean.Write down the commit hash. Everything you compare later is a diff against this hash.
If the baseline has failing tests, you have two options. Fix or quarantine them before starting, or record the exact list of pre-existing failures and exclude them from your pass/fail judgement. Pick one and stay consistent across agents. A flaky test is the worst case: run the suite three times and note which tests flip. An agent that gets blamed for your flaky test wastes your whole evaluation.
Also note the environment: Node, Python or Java version, OS, and whether dependencies are installed from a lockfile. A cheap agent that quietly upgrades a dependency to make its code work is changing your baseline, and you want to catch that in the diff later.
This step feels like paperwork. It is also the cheapest hour in the whole protocol, because it is the only thing that lets you separate "the agent broke this" from "this was already broken." Record it in the top section of the worksheet below.
Step 4: Give every agent its own branch and the same time budget
Branches are your isolation layer. One agent per branch, every branch cut from the baseline commit you recorded in Step 3.
git switch main
git switch -c eval/agent-aRepeat with eval/agent-b, eval/agent-c. Never let two agents work on the same branch or in the same working tree at once. An agent that sees another agent's half-finished edits is no longer being tested on your repo.
Now set a time budget, and make it identical. Something like 45 minutes from the moment you paste the prompt to the moment you stop touching the result. The clock includes waiting for the agent, answering its questions, and approving commands. It does not include the baseline work from Step 3.
A time budget matters because cheap agents differ most in how much hand-holding they need. One finishes in six minutes. Another takes forty, because it stalls and asks you three clarifying questions. Both might produce a similar diff. Only a time cap shows you the difference in your own effort.
A few ground rules to keep the comparison fair:
Same prompt, pasted once. Answer clarifying questions with the minimum needed, and log each question you had to answer.
Same machine, same network, same editor.
If the agent asks to run a terminal command, read it before approving. Log any command you rejected and why.
Stop at the time limit even if the agent is mid-edit. Unfinished is a valid result.
If you are testing OxCode, pick the Agent task mode for a feature task or Debug mode for a bug ticket, and record which mode you used so the setup is reproducible.
Step 5: Run the task once and inspect the diff before trusting the result
Run the task once. Not three times with the best result kept. One run, one attempt, the same standard public benchmarks use. OxCode's published figures are reported on that basis: 410 of 500 on SWE-bench Verified and 73 of 89 on Terminal-Bench 2.1, one attempt each, with run records at oxcode.ai/benchmarks. Your protocol borrows the discipline, not the tasks.
When the agent says it is done, do not read its summary yet. Read the diff first:
git diff main...eval/agent-a --stat
git diff main...eval/agent-aThe summary is the agent's opinion of its work. The diff is the work. Score the diff on this checklist and write the answers in your worksheet:
Scope. Did it touch only the files the task needed? Unrelated reformatting, renamed variables and drive-by refactors are cleanup debt.
Correctness on read. Does the logic do what you asked? Check off-by-one errors, unit mismatches (seconds vs milliseconds is a classic), and unhandled null cases.
Dependencies. Any new packages or version bumps in the lockfile? Did you ask for them?
Tests. Did it add or update tests? Do they assert behaviour, or do they just assert that the function returns what the function returns?
Deleted code. Anything removed that you did not expect? Deleted tests are the biggest red flag.
Secrets and config. Hardcoded keys, changed env files, loosened permissions.
Give each item a pass, minor issue or fail. If you want a repeatable habit for this review, debugging AI-generated code in VS Code before you ship it walks through the same read-the-diff-first approach.
Step 6: Rerun the tests yourself and log manual cleanup time
An agent that reports "all tests pass" has told you what it saw in its environment. You need to know what happens in yours. Rerun everything yourself, from the branch, using the exact commands you recorded in Step 3.
git switch eval/agent-a
# run the same test, lint and type-check commands from your baselineRecord four numbers: tests passed, tests failed, new failures compared with baseline, and lint or type errors compared with baseline. A new failure that was green in Step 3 is a regression the agent introduced, whatever its summary claimed.
This is the step where a coding agent that runs its own code earns its keep. OxCode states that it runs what it writes in a sandbox and fixes its own bugs before calling a task done. You can test that claim directly: does the branch you rerun match what the agent reported? If you want to see how to verify that kind of claim, AI coding agent that runs tests: check the evidence covers what to look for.
Now the number most comparisons skip: manual cleanup time. Start a stopwatch. Fix whatever is broken or unacceptable until the branch is something you would open a pull request with. Include:
fixing failing tests or code
reverting unrelated changes
renaming, reformatting or rewriting things you would not merge
re-running the suite after your fixes
Stop the stopwatch when you would be comfortable merging. Write the minutes down. A cheap agent that produces a mediocre diff in five minutes and needs ten minutes of cleanup is a different proposition from one that needs forty. Your time is the cost the subscription price hides.
Step 7: Record actual spend and fill in the worksheet
Now reconcile the money. Go back to the two buckets from Step 1 and write down what each agent actually cost you for this one task.
Subscription spend. The amount you paid, the date it renews, and the renewal price. Be honest about what you would pay if you kept it. A ₹99 first month is a promotional price. Your real cost is the line after it.
API spend. If you used a bring-your-own-key mode, read the usage figure from the provider's dashboard, not from the agent's own estimate. Convert to rupees using the rate on the day you ran it.
Runs used. For request-based plans, note how many runs the task consumed against the daily allowance. For request-based plans, note how many runs the task consumed against the daily allowance; a task that took four runs used four of your day's allowance.
Then compute one number that makes the comparison honest: effective cost of this task = subscription share + API spend + (cleanup minutes x your hourly rate). If you bill clients at ₹800 an hour, twenty minutes of cleanup is roughly ₹267, which can exceed the plan price itself.
Here is the blank worksheet. Copy it into a doc or a spreadsheet, one column per agent.
BASELINE (from Step 3)
Commit hash:
Tests: ___ pass / ___ fail / ___ skip Time: ___
Lint errors: ___ Type errors: ___
PER AGENT (A / B / C)
Branch:
Mode or model setting used:
Time budget (min): Time actually used (min):
Clarifying questions I had to answer:
Commands I rejected:
DIFF QUALITY (pass / minor / fail)
Scope:
Correctness on read:
Dependencies:
Tests added or changed:
Deleted code:
Secrets and config:
MY RERUN
Tests: ___ pass / ___ fail
New failures vs baseline:
Lint / type errors vs baseline:
Matched the agent's own report? (y/n)
CLEANUP
Manual cleanup time (min):
SPEND (rupees)
Subscription paid: Renewal price:
API spend: Runs used:
Total spent so far across all agents (must stay under 1,000):
Effective cost of task:What to do next: read your results and decide whether to renew
Put the filled columns side by side and look for the gap, not the average. Three patterns come up most.
One agent needed far less cleanup. That is your answer, even if its sticker price is higher. Cleanup minutes compound across every task you run next month.
Two agents tied on diff quality. Break the tie on renewal price and on how many of your daily runs the task consumed. The cheaper renewal wins only if it also fits your actual weekly volume.
Every agent failed your rerun. Your task may have been too large, or your baseline too flaky. Shrink the task and repeat with the same worksheet. A failed protocol is cheaper than a failed purchase.
Then decide on renewal before the intro period ends. Set a calendar reminder for two days before the renewal date. If your worksheet cannot justify the renewal price, cancel. Paid plans on most tools can be cancelled anytime, so a trial costs you attention rather than commitment.
If you want to try OxCode as one of your agents, start on the Free plan: 15 runs a day, inside VS Code, Cursor, Antigravity or another VS Code-based IDE. Run your Step 2 task on its own branch, fill the worksheet, and let the cleanup minutes decide. If you outgrow the free allowance mid-test, when to upgrade from a free AI coding agent gives you a second worksheet for that call.
Conclusion
Run the protocol this week, not next month. Pick the task, lock the baseline, cut the branches, and let the worksheet make the call instead of a Reddit thread or a launch tweet.
Here is my prediction: the agent with the lowest sticker price will not have the lowest effective cost for most of you. Cleanup minutes will dominate the total, and the diff you inspect in Step 5 will tell you why before the rerun does.
Install OxCode from the VS Code Marketplace, start on the free plan, and make it one of your columns. Give it the same prompt, the same branch discipline and the same stopwatch as every other agent. Then write your own number in the cleanup row. If it beats the others there, renew it. If it does not, you spent ₹0 finding out.