Preview

Coder is shipping soon. This page is a design preview of how the product will look — features below aren't live yet. Krew agents are already live today.

Download →
Modules / 03 · Coder
Q3 2026 · public beta

Code faster.
Pay less.

An AI coding environment powered by open-source models. Free to start, forever. Premium models for the moments you need them. The first Indian-built dev tool that respects your wallet.

Languages30+ · JS, TS, Py, Go, Rust, …
ModelsDeepSeek · Llama · Mistral · Claude · GPT
SurfacesDesktop (Windows) · Web (Q3 2026)
PricingFree models · always
Download No card. Free to start.
// Live preview · chat → code model: deepseek-v3 · free
chat · session 01 2.4k tokens
Build me a REST API in FastAPI with JWT auth. Two routes — POST /signup and GET /me.
DeepSeek V3free · 0.0¢
Here you go. I'll scaffold it with `python-jose` for JWT and `passlib` for password hashing. Code on the right →
Add rate limiting on /signup.
DeepSeek V3free · 0.0¢
Drafting
main.py PYTHON
1from fastapi import FastAPI, Depends, HTTPException
2from jose import jwt, JWTError
3from passlib.context import CryptContext
4
5app = FastAPI()
6pwd = CryptContext(schemes=["bcrypt"])
7
8from slowapi import Limiter
9limiter = Limiter(key_func=get_remote_address)
10
11# POST /signup — register a new user
12@limiter.limit("5/minute")
13@app.post("/signup")
14def signup(req: Request, payload: SignupIn):
15    hashed = pwd.hash(payload.password)
16    return {"id": create_user(payload.email, hashed)}
01Model selector

You pick the model.
You control the cost.

Most AI tools pick a model for you and bill what they like. Coder gives you a dropdown. Use free open-source for the boring 80% of tasks. Reach for a premium model only when you need it. The cost difference is real.

  • "Free models only" toggle for cost-conscious users
  • DeepSeek V3, Llama 3.3, Mistral, Qwen Coder — all free
  • Claude Sonnet, GPT-5 available at-cost (no markup)
  • Per-task budget caps — never accidentally spend ₹500 on one chat
// pick model · task: refactor Free only
DeepSeek V3 FREE ∞ tokens · selected
Llama 3.3 · 70B FREE ∞ tokens
Mistral Small · 24B FREE ∞ tokens
Qwen Coder · 32B FREE ∞ tokens
Claude Sonnet 4.5 ₹0.24 / 1k tok
GPT-5 mini ₹0.08 / 1k tok
02Code review

A senior engineer
at every PR.
For free.

Paste code, drop a file, or connect your GitHub. Coder reviews it like a senior engineer would — spots bugs, flags security issues, suggests cleaner alternatives. Inline comments, plain English, no condescension.

  • GitHub integration — auto-review on every PR
  • 3 levels: blocking bugs, security, style suggestions
  • Knows your codebase — uses repo context
  • You stay in charge — reviews don't auto-merge anything
PR · 142 feat: user profile API +82 -14 · 3 files
3bugs
2security
5suggestions
42  user = db.query(User).filter(User.id == user_id).first()
42  user = await db.get(User, user_id)
Suggestion: use `db.get()` for primary-key lookups — it hits the identity map first and avoids the round trip.
43  if user is None:
44    raise HTTPException(404)
45  return {"email": user.email, "hash": user.password_hash}
Security: never expose the password hash, even internally. Strip it from the response.
45  return UserOut.from_orm(user)
Better: use a Pydantic response model so the schema is enforced.
03Debug assistant

Read the error.
Skip the panic.

Paste a stack trace. Get the root cause in plain English, the exact line to fix, the corrected code, and a one-line explanation of why it broke. No more 45-minute Stack Overflow rabbit holes.

  • Plain-English root cause, not "TypeError: cannot read property"
  • Pulls the relevant code line and shows the fix
  • Works on errors from any runtime — Node, Python, Go, Rust, browser
  • Saves your last 50 debugs · search later
TypeError: Cannot read properties of undefined (reading 'name')
  at UserCard (UserCard.tsx:14:21)
  at div
  at App (App.tsx:8:5)
// Root cause
The user prop is undefined on the first render because fetchUser() is async and hasn't resolved yet. Your component is trying to read user.name before the data has arrived.
// Fix · UserCard.tsx:14
return <h2>{user.name}</h2>;
return <h2>{user?.name ?? 'Loading…'}</h2>;
// Why this failed
React renders synchronously. The optional chain handles the async gap until your fetch resolves.
04Docs & tests

The two things
nobody wants to
write.

Point Coder at a function, a class or a whole file. It writes the inline comments, the README, the unit tests, the integration tests. The boring parts of your codebase, done while you're getting coffee.

  • Inline JSDoc / docstrings in the right format for your language
  • Tests cover happy path + 3 edge cases by default
  • Generates fixtures and mocks from real call patterns
  • Updates docs when you change the signature
// docs
function parseAmount(str) {
  return Number(str.replace(/,/g, ''));
}
/** Parses a formatted currency string
 * into a Number, stripping thousand
 * separators.
 * @param str — "1,24,500" | "1500"
 * @returns Number (NaN if unparseable)
 */
function parseAmount(str) { … }
// tests
function parseAmount(str) {
  return Number(str.replace(/,/g, ''));
}
test('parses ₹ amount', () => {
  expect(parseAmount('1,24,500'))
    .toBe(124500);
});
test('handles no commas', () => {
  expect(parseAmount('500')).toBe(500);
});
test('NaN on garbage', () => {
  expect(parseAmount('abc')).toBeNaN();
});
05VS Code extension

Stay in your
editor.

The browser version is full-featured. If you live inside VS Code, the extension brings Coder there — chat panel, inline completion, code actions. Optional, not required.

  • Inline completion with model of your choice
  • Right-click → review, explain, refactor, test
  • Chat panel with full repo context
  • Free · forever
adris.tech Coder · Built-in
Live Now

Full IDE inside adris.tech desktop

Get App
github.com/astraluxe/adris.tech-desktop/releases/latest

Start coding
for ₹0.

Free models are free forever. No credit card. No trial timer. Open the browser, log in, ship.