Get started

From an idea to an app you can use.

You type a few commands. Karigor does the rest, and never asks a technical question. A stage usually takes a few hours; you can leave it running.

1. Before you start (once)

You need Node.js 22 or newer, git, and Claude Code installed and signed in. Claude Code builds the app under your own login, so there is no API key and, on a subscription, nothing extra to pay.

git clone https://github.com/kishormorol/karigor
cd karigor
npm install -g pnpm        # if you do not have it
pnpm install && pnpm build
alias karigor="node $PWD/packages/cli/dist/bin.js"

No Claude Code? Use a free local model with --adapter ollama or an API key with --adapter claude. To watch the whole process with no model and no cost, add --adapter demo to any command.

Not technical? You can skip all of this. Ask someone who is to host Karigor's chat page, on a server or a spare computer. They send you your own link, or the page lets you join with just your name. Then you describe, build, use and grow your app by chatting, on your phone or laptop, with nothing to install. Your projects are yours: other people on the same page can't see them. The AI is the host's free open-source model, or your own Anthropic key if you have one.

Hosting it for others

On a server with Docker, from the cloned repository:

KARIGOR_TOKEN=$(openssl rand -hex 24) docker compose up -d
docker compose exec ollama ollama pull qwen2.5:7b

Open http://<host>:4321/?token=<KARIGOR_TOKEN> yourself. That link sees every project, so keep it to yourself. Give everyone else their own link from People on the page; theirs opens only the projects they start. To let anyone who reaches the page join with a name, set KARIGOR_SIGNUP=open. Builds run code the AI wrote on your server, so open sign-ups only where you trust who can reach it.

The free model needs no key. To use Claude instead, set KARIGOR_ADAPTER=claude. Add ANTHROPIC_API_KEY to pay for everyone, or leave it unset so each person enters their own. A key entered on the page stays in their browser tab and in the memory of their run, never on disk.

2. Describe your app

The idea is the only thing Karigor needs, and it shapes everything that follows. Write it as you would explain it to a person who will build it for you.

  • Who uses itand what each kind of person may see or do
  • What it keeps track oforders, students, products, payments
  • The jobs it must doin the words you use at work
  • Local detailscurrency, language, payment methods, phone or computer

A shop counter for my small grocery in Dhaka. Only I sign in, on my phone. I add products sold by piece, kg, gram, litre, packet or dozen, with a price and how many I have. At the counter I enter what a customer bought; it adds up the total in taka, I choose cash or bKash, and the stock goes down. A home page shows today’s total, split into cash and bKash, and the products running low. I can cancel a sale I entered by mistake, and the stock goes back.

Who signs in, what it keeps, the jobs in your own words, and the local details: taka and bKash.

Karigor plans the whole product, then splits it into stages. Stage 1 is the smallest version someone can use end to end. Each later stage adds one area you would recognise, like “Billing” or “The owner’s dashboard”. A small idea is just one stage.

Or start from a ready-made idea. 40 are already written this way for common needs in Bangladesh, from a shop counter to a samity. List them with karigor starters, then add only what is different for you:

karigor new --starter samity "We collect every month, not every week." --run

3. Start the build

karigor new "your idea here" --run --port 3300

It prints the project’s id, like p-mvin1bja-92f2. Keep it: every other command needs it. Then, with no input from you:

  1. It writes a specification and splits it into stages, with every assumption recorded.
  2. It designs the system: who uses it, what each may do, and its parts.
  3. It splits stage 1 into small pieces, at most 15.
  4. A developer builds each piece with tests and browser journeys; a reviewer and a skeptic check it.
  5. Every journey runs again on a brand-new database, then a checked preview, a verified rollback, and release.
If it stops, nothing is lost
What you seeWhat to do
Your Claude usage limit ran outkarigor resume <id>
The computer slept or the terminal closedkarigor resume <id>
It is waiting for a settingkarigor setup <id>
It stopped with work set asidekarigor reopen <id>

4. Give it what only you can provide

Some apps need things only you can choose or own: the owner’s email, a passcode, a database account. Karigor makes its own secrets itself, and asks you for the rest in plain words. It hides what you type and stores values only where the app runs.

karigor setup <id>

5. Open and use it

karigor serve <id> --port 3300
karigor admin-link <id> you@example.com "Your name"

Open http://localhost:3300 and the link admin-link prints to choose your password. Add your team from People; each gets a one-time link to send by WhatsApp, SMS or email. Leave serve running: it keeps the app up, checks its libraries each day and fixes problems on its own.

Try everything. Use it as you would on a busy day, on your phone too. Make mistakes on purpose, undo things, and write down whatever is wrong, confusing or missing.

6. Grow and change it

Build the next stage on top of the live app, or ask for a change in your own words, one thing per message. Your data stays through every release.

karigor grow <id>            # the next stage, then it stops so you can try it
karigor grow <id> --all      # every remaining stage
karigor feedback <id> "Add a page that shows each month's total, with cash and bKash separately."
karigor correct <id> a3 "Prices should allow paisa, like 62.50."

7. Put it online

For a public address, use Vercel’s free tier, with a free Turso database so the data survives on the internet.

karigor new "..." --deploy vercel --run
karigor setup <id>               # asks for the database address and token
karigor watch <id> --every 15    # checks the live site and fixes problems
What it builds todayWeb apps for phone and computer: sign-in with roles, invitations by link, an activity log, forms, searchable lists, money and stock, dashboards with charts, CSV export, photos and documents, scheduled jobs, email and SMS.
Not yetFiles over 4 MB, WhatsApp, taking payments inside the app, and one installation serving several organisations. Karigor works around them or leaves them out, and says so.

Command summary

CommandWhat it does
karigor new "<idea>" --runStart a new app and build it
karigor starters [id]List ready-made ideas, or read one in full
karigor new --starter <id> "<changes>" --runStart from a ready-made idea, with your changes
karigor status <id>Where it stands
karigor resume <id>Continue after a pause, limit or crash
karigor setup <id>Give settings only you can provide
karigor serve <id> --port <n>Run it on this computer and keep it healthy
karigor feedback <id> "<text>"Ask for a change or report a problem
karigor fix <id>Start a fix round now
karigor grow <id> [--all]Build the next stage, or every remaining one
karigor admin-link <id> <email>A one-time link to set your admin password
karigor correct <id> <decisionId> "<text>"Change a decision made for you
karigor reopen <id>Bring parked work back after a stop
karigor dismiss <id> <workItemId>Close a request you no longer want
karigor explain <id>The story of what happened
karigor cost <id>What it has used

The full walkthrough is in Building an app with Karigor.