Karkhana at work

Five jobs, run for real.

A lawyer, an accountant, an analyst and a property manager each hand Karkhana a folder and a request in plain English, and a teacher has it build a lesson inside another program. Everything below — the steps, the questions it asked first, and the files it produced — is what it actually did, not a mock-up.

About these examples: the companies and documents are invented; the lesson system in the fifth is real, and left unnamed. Each example is a single run — the first four on 24 September 2026, the lesson on 5 October — in Karkhana's default mode, which asks before changing anything; every approval it asked for was given. The first four used OpenAI's GPT-5.5 for planning and GPT-5.4 for the work; the lesson used GPT-5.5 for both. With an AI company's model, the parts of files the agent reads are sent to that company; with a model running on your own computer, nothing leaves it unless you switch on the web or connect another system (as the fifth example does) — apart from what a command could send by ping on Windows.

For lawyers

Which supplier contracts renew before anyone notices?

An in-house lawyer has six supplier agreements, each with its renewal terms written differently.

The folder

  • ashgrove-services-agreement.docx
  • brightwater-services-agreement.docx
  • harbourline-services-agreement.docx
  • kestrel-services-agreement.docx
  • meridian-services-agreement.docx
  • oakfield-services-agreement.docx

The request

“Today is 1 October 2026. Read every contract in this folder and make a spreadsheet called renewals.xlsx with one row per contract: the supplier, when the current term ends, whether it renews automatically, the notice period, and the last day we can give notice to stop it renewing. Then tell me which contracts need action before 31 December 2026, including any where the notice deadline has already passed.”

What it did

  1. Planned the job in five steps, shown before any work began.
  2. Read all six contracts and found each renewal clause — notice given in days in some, in months in others, and one contract that does not renew at all.
  3. Tried to work the deadlines out on its calculator, which refused: it does arithmetic, not calendar dates.
  4. Handed the reading of the contracts to a helper agent, asking first: delegate · write. The helper works under the same rules and approvals as Karkhana itself.
  5. Asked before writing the spreadsheet: create_xlsx(renewals.xlsx) · write
  6. Checked the result — its check read the finished spreadsheet and confirmed the work first time — then answered.

What it produced

renewals.xlsx, as written. The highlighted rows are the three contracts it said need action.

SupplierCurrent term endsRenews automaticallyNotice periodLast day to give notice to stop renewal
Oakfield Security Systems31 March 2028Yes30 days' written notice before expiry1 March 2028
Meridian Payroll Bureau1 March 2027Yes6 months' written notice before end of current period1 September 2026
Ashgrove Cleaning Services15 November 2026NoNo automatic renewal; any continuation requires a new written agreement signed by both partiesN/A
Kestrel Cloud Hosting Ltd31 January 2027Yes3 months' written notice before end of current term31 October 2026
Brightwater Office Supplies30 June 2027Yes60 days' written notice prior to expiry of current term1 May 2027
Harbourline Logistics Ltd31 December 2026Yes90 days' written notice before end of current term2 October 2026

…and the end of its answer, in its own words:

Contracts needing action before 31 December 2026:

Meridian Payroll Bureau — notice deadline 1 September 2026; this has already passed.
Harbourline Logistics Ltd — notice deadline 2 October 2026.
Kestrel Cloud Hosting Ltd — notice deadline 31 October 2026.

Also relevant: Ashgrove Cleaning Services ends on 15 November 2026, but it does not renew automatically, so there is no notice deadline to stop renewal.

Worth knowing

  • Every date above is correct. The deadlines were worked out by the AI: the calculator Karkhana uses for arithmetic does not do calendar dates, so check each one against its contract before relying on it.
  • It reads what the contracts say. It does not give legal advice about them.
For accountants

What is still owed, and by whom?

A bookkeeper has a quarter's invoices and the payments that came in against them — including one invoice paid in two instalments and one payment recorded under a differently written reference.

The folder

  • invoices.csv — 12 invoices
  • payments.csv — 10 payments

The request

“Reconcile invoices.csv against payments.csv. Which invoices are unpaid or only part-paid, and how much is still owed on each? Put them in a spreadsheet called outstanding.xlsx with a total for each client, and tell me the total outstanding.”

What it did

  1. Planned the job in five steps and read both files.
  2. Asked before running a short script to match payments to invoices: bash(powershell …) · execute. It ran in Karkhana's sandbox, confined to this folder and unable to open internet connections. The script treated “inv 1005” and “INV-1005” as the same invoice.
  3. Worked out every figure with its calculator, so the arithmetic is on the record: 2275.75-2000 = 275.75 sum(275.75,3890.25) = 4166 sum(275.75,480,960,3890.25,745) = 6351
  4. Asked before writing the spreadsheet: create_xlsx(outstanding.xlsx) · write
  5. Checked the result — its check read the finished spreadsheet and confirmed the figures first time — then answered.

What it produced

outstanding.xlsx, as written: the invoices still owed, then a total for each client.

ClientInvoice NoInvoice DateInvoice Amount (GBP)Paid (GBP)Outstanding (GBP)
Coldwell FarmsINV-10072026-08-092,275.752,000.00275.75
Dunmore ArchitectsINV-10082026-08-161,480.001,000.00480.00
Birchmoor DentalINV-10102026-08-30960.000.00960.00
Coldwell FarmsINV-10112026-09-063,890.250.003,890.25
Dunmore ArchitectsINV-10122026-09-13745.000.00745.00
Client Total: Birchmoor Dental960.00
Client Total: Coldwell Farms4,166.00
Client Total: Dunmore Architects1,225.00
Grand Total6,351.00

Worth knowing

  • Every figure is correct, including the invoice paid in two parts, which it correctly left out as fully paid.
  • It matched payments by their reference. A payment with no reference, or one covering several invoices, still needs a person's judgement.
  • Commands run only in the sandbox and, in this mode, only after you say yes; the sandbox cannot open internet connections.
For analysts

A board briefing from the numbers and the notes

An analyst has a quarter-by-quarter revenue file and three trading notes written by the business, and needs one page for the board.

The folder

  • sales-by-region.csv
  • trading-note-q1-2026.docx
  • trading-note-q2-2026.docx
  • trading-note-q3-2026.docx

The request

“Using sales-by-region.csv and the three trading notes, write a one-page briefing called brief.docx for the board: revenue by region for Q1 to Q3 2026, the percentage change from Q1 to Q3 for each region and in total, and the risks the notes raise more than once.”

What it did

  1. Planned the job and read the revenue file and all three notes.
  2. Worked out each region's percentage with its calculator, one call per figure: (262900 - 205500) / 205500 * 100 = 27.93… The total's +6.0% it worked out itself.
  3. Asked before writing the briefing: create_docx(brief.docx) · write
  4. Checked the result — its check read the finished briefing and confirmed the work first time — then answered.

What it produced

brief.docx — the table, as written

RegionQ1 2026 revenue (£)Q2 2026 revenue (£)Q3 2026 revenue (£)Q1 to Q3 change
North412,000438,500471,200+14.4%
South389,000371,400352,600-9.4%
East205,500231,800262,900+27.9%
West298,300301,100296,700-0.5%
Total1,304,8001,342,8001,383,400+6.0%

…and the risks, as written:

Recurring risks raised more than once in the trading notes are: (1) supplier and freight delays, which were reported in Q1, Q2 and Q3 and affected stock availability and timing of promotions; (2) currency pressure on imported ranges, reported in Q1 and Q3 as sterling weakness increased imported costs; and (3) competitor discounting in the South, reported in Q2 and Q3 and linked to weaker footfall and falling South revenue.

Worth knowing

  • Every number and every risk is correct. The percentages are rounded to one decimal place; the regional percentages' unrounded results are in the record. The total's change was worked out by the AI, not the calculator (it is right: 6.02%).
  • Deciding that two differently worded passages describe the same risk is a judgement. The briefing says which quarters each risk came from, so it can be checked against the notes.
For property managers

What does the building earn, and what falls due next year?

A property manager has six leases for one building, with the rent stated three different ways — and a side letter that quietly changed one of them.

The folder

  • unit-1-hollin-bakery-lease.docx
  • unit-2-marlow-opticians-lease.docx
  • unit-3-greaves-holt-lease.docx
  • unit-4-tillys-coffee-lease.docx
  • unit-5-pennine-cycles-lease.docx
  • unit-5-pennine-side-letter-2026.docx
  • unit-6-ardent-dental-lease.docx

The request

“Today is 1 October 2026. Go through every document in this folder and make a spreadsheet called leases.xlsx with one row per unit: the tenant, the annual rent, the next rent review date, and any break option with the last day notice can be given. Flag every rent review or break date that falls in 2027, and tell me the total annual rent across the building.”

What it did

  1. Planned the job in six steps.
  2. Read all seven documents, the side letter included.
  3. Worked out the rent roll with its calculator — one rent is quarterly and one is per square foot: 28000 + (9250*4) + (22.50*1800) + 18600 + 31500 + 45000 = 200600
  4. Was sent back by its check for answering before the spreadsheet existed, then asked before writing it: create_xlsx(leases.xlsx) · write
  5. Was sent back again — its check read the spreadsheet and found two real mistakes (below).
  6. Asked again, rewrote the spreadsheet, and the check confirmed it.

What its check caught

“As of 1 October 2026, Unit 1’s 25 March 2026 rent review is already past, so it should not be recorded as the next rent review date. Also, the request asks to flag every rent review or break date falling in 2027; Unit 3 has a break date of 1 June 2027, but the spreadsheet flags the break/notice column as ‘No’ because the notice deadline is in 2026. That misses a 2027 break date.”

What it produced

leases.xlsx, as finally written. The highlighted rows are the three units with a 2027 date.

UnitTenantAnnual Rent (£)Next Rent Review Date (as of 1 Oct 2026)Rent Review Date in 2027?Break OptionBreak DateBreak Date in 2027?Last Day Notice Can Be Given
Unit 1Hollin Bakery Ltd28,000Not stated after 25 March 2026 in the leaseNoNo break optionNo
Unit 2Marlow Opticians LLP37,00029 September 2027YesTenant may end lease29 September 2027Yes29 March 2027
Unit 3Greaves & Holt Accountants40,5001 June 2027YesEither party may terminate lease1 June 2027Yes1 December 2026
Unit 4Tilly's Coffee House Ltd18,600No rent reviewNoNo break optionNo
Unit 5Pennine Cycle Works Ltd31,50024 June 2027YesNo break optionNo
Unit 6Ardent Dental Care Ltd45,00025 December 2028NoTenant may terminate lease25 December 2026No25 June 2026
TOTAL200,600

…and from its answer, in its own words:

Unit 5 — Pennine Cycle Works Ltd … Next rent review date: 24 June 2027 (2027 flag) … This review date comes from the 12 January 2026 side letter, which changes the next review from 24 June 2028 to 24 June 2027.

Total annual rent across the building: £200,600.

Worth knowing

  • Every figure and date is correct, including the review date the side letter moved — the lease alone gives 2028.
  • Unit 6's last day for break notice, 25 June 2026, has already passed. The spreadsheet gives the date without saying so; the request did not ask, and it is the kind of thing a person reading the sheet should still check.
  • The dates were worked out by the AI, not the calculator, so check them against the leases before acting on one.
For educators — and any system with a connector

A lesson built inside another program

A teacher's school uses its own lesson-authoring system. Karkhana has never seen it: it was added in Settings by its address, as a connector — the open MCP standard — with the tools Karkhana may use ticked one by one. This time the work happens in that system, not in a folder.

The connection

A lesson-authoring system the school runs, offering tools for signing in, finding where a lesson should be filed, planning it, building it, checking it and publishing it — and marked in Settings as a system the teacher's own organisation runs.

The request

“Generate a lesson on Solar System for 5-year-olds”

What it did

  1. Signed in first, because the system's own sign-in tool says to: start_auth · asked first The system answered with a link for the teacher to approve, so Karkhana stopped and handed it over — “Open this link … then click Approve. After approving, reply ‘continue’.” The message ended there, waiting for the teacher.
  2. Asked where the lesson should go, one choice at a time, from what was already in the system: the subject (it suggested Science), then the course, then the category. The only category under that course was Plants; it suggested creating a Space category instead, and the teacher chose Plants.
  3. Asked before each step that could change something on the other system, and was told yes for the session: lesson_curriculum_planner lesson_json_serializer lesson_structure_validator publish_lesson
  4. Checked the lesson with the system's own validator before publishing: valid · 0 errors · 0 warnings
  5. Published it, then stopped and asked before going further — the lesson still needed its pictures and voice.

What it produced

A published lesson: a welcome, five things in the sky to tap, a card for each that zooms in, plays a sentence and asks the child to say the word, and a goodbye. What the child hears, as written:

CardWhat the child hearsThe child is asked to
WelcomeHello! Let’s learn about the Solar System. We will meet the Sun and some space neighbors.
Choose oneHere are our space words. Tap one to hear it!tap a picture
SunSun. The Sun is a star. It gives Earth light and warmth.say “Sun”
EarthEarth. Earth is our home planet. You live here with people, plants, and animals.say “Earth”
MoonMoon. The Moon goes around Earth. Sometimes you see it shining at night.say “Moon”
MarsMars. Mars is called the red planet. It looks dusty and dry.say “Mars”
SaturnSaturn. Saturn has big, beautiful rings. It is very far from Earth.say “Saturn”
GoodbyeGreat job! You learned about the Solar System.

…and the end of its answer, in its own words:

The lesson structure validated successfully, but it is NOT READY FOR A CHILD YET: it still needs 7 images and 8 audio clips. As published right now, it will show placeholder/blank visuals and silent audio.

Please reply “yes, generate everything” if you want me to generate and save all images and audio now.

Worth knowing

  • Nothing about this system is built into Karkhana. The order of the work — sign in, choose where it goes, plan, build, check, publish — came from the descriptions the system's own tools carry. Any system that offers an MCP connector is added the same way: its address in Settings, then the tools it may use.
  • Because the teacher's own organisation runs this system and said so in Settings, its replies reach the AI as written. A system somebody else runs is read the safe way: the AI gets only the checked facts it asks for, never the system's own wording.
  • Signing in is the teacher's to do, in their own browser. Karkhana handed the link over and waited; it never approves anything on the person's behalf.
  • It ran the step that builds the lesson twice, about a minute each — the second time only to fix one label, where Saturn's had been given its whole sentence. When it made the pictures and voice in the next message, it asked for one audio clip twice with the same input; since this run, Karkhana does not send a call that changes something in a connected system again once the same call has already worked in that message, and the AI is told to use the earlier result.
Other work it suits

The same shape of job turns up everywhere

A folder of documents, a request in plain English, figures worked out on the record, a finished file at the end — and a question before anything changes. These are the kinds of requests that fit. Unlike the five above, they have not been run as worked examples.

Consultants and advisers

“Turn these twelve interview notes into a findings presentation, one slide per theme, with who raised each point.”

Procurement and operations

“Put these five supplier quotes side by side and show which is cheapest once delivery charges are included.”

Compliance and audit

“Check each policy in this folder for an owner, a version number and a review date, and list what is missing or overdue.”

HR and people teams

“Compare our leave policy with the new minimums in this memo and list every place ours falls short.”

Researchers

“From each paper in this folder, pull the sample size, the method and the main result into one table.”

Project managers

“From this month's meeting notes, write the status report: decisions, actions, owners and anything overdue.”

Journalists and writers

“List every figure quoted in these interview transcripts, with who said it and where.”

Small businesses

“Make a quote in Word for this customer from my price list, with the discount we agreed.”

Where it is not the right tool: scanned documents that are only pictures of text, since it reads text rather than images; email and calendars, which it does not connect to on its own; and decisions that need a professional's judgement — it can gather what the documents say, not give the legal, medical or financial advice. For personal or client data, a model running on your own computer — set up by hand, for now — keeps everything on it, as long as web access stays off and no other system is connected — apart from what a command could send by ping on Windows.

See it on documents like yours

Karkhana is shown by live demo on Windows — on sample files, or documents you bring.