Skip to content
kivo

What's new

Every change to KIVO, newest first. New tools, what the assistant learned, and the bugs worth admitting to.

144 tools today.

  1. Assistant

    The assistant now gets 168 out of 168

    Asking it for something and getting the wrong tool was never counted, so nobody could say whether a change to it helped. Now it is counted, and the counting found four real faults.

    • The test is 168 sentences somebody would actually type, each written down with the answer a person would expect before any of them were run. Some of them name no tool at all — “rendi questa foto più leggera” contains not one word from “Comprimi immagine” — and that is the point.
    • First run: it got 86% right, and one sentence wrong. “Make this photo lighter” ran a photo collage. Wrong is scored separately from unsure, because being unsure costs you a question and being wrong costs you your file.
    • The fault behind it: the word “photo” was treated as naming a tool. Three tools have it in their name, so every sentence about a photograph named all three. Whether a word picks a tool out is now settled by asking how many tools answer to it — one or two, and it means something; twenty, and it is just describing the file.
    • Making a QR code and reading one are opposite requests that share every noun. The assistant now knows that a sentence saying “make” has not asked for anything whose whole purpose is to read.
    • And some words were simply missing. Nothing in the catalogue knew “alleggerire”, “scontornare”, “battute” or “strip location”. Those are in now, which improves the search box as much as the assistant.
    • It gets all 168 right. Twenty-nine of them were written after it already scored 99% on the rest, and were not looked at until they ran — a score you have tuned against has stopped measuring anything but itself.
  2. Correctness

    The last untested part of KIVO now has tests

    The 27 operations behind roughly half the catalogue — every image resize, every PDF merge, every metadata strip — had never been checked except through the interface. Now they are checked directly, and the first run found a bug.

    • The excuse was real: these need a browser. Images need canvas, PDFs need a document to render into, XML needs a parser. So the code is now bundled exactly as it ships and run inside a real browser, which means the tests exercise the same code the tools do rather than a copy of it.
    • The answers are worked out by hand rather than captured from a previous run. A 400×300 image resized to a 200-pixel edge must be 200×150, not 200×200. A 90° rotation must move a marked corner from the top left to the top right — checking only the dimensions would pass a rotation that went the wrong way. Merging a two-page and a three-page PDF must read 1, 2, 1, 2, 3 and not some other order.
    • A file converted to WebP has to start with the bytes that make it a WebP, not merely end in .webp. A converter that renames produces a file nothing can open.
    • The bug: the XML formatter indented documents with long tag names and quietly refused to indent short ones. Its pattern needed two characters between the angle brackets, so a document full of <a> and <b> came back on separate lines and completely flat — which is the one thing that tool exists to do. Nobody noticed because every example anyone tries has long tag names.
  3. Correctness

    Every page got lighter

    A tool page was downloading a quarter of a megabyte of code it could never run. It is not doing that any more, and there is now a test that fails the build if it starts again.

    • The catalogue's forty-two hand-written tools were all imported into one file, and one of them renders. So opening the JSON formatter also downloaded the 3D viewer's copy of three.js, the invoice builder, the video controls and the spreadsheet reader — 1.4 MB of JavaScript to draw a text box.
    • The assistant had the same problem for a better reason: it is the largest thing on the site and it lived in the layout, so every page carried all of it in order to show a floating button. It is fetched when you open it now, which takes about a third of a second the first time.
    • A tool page went from 420 KB of JavaScript to 334, and the full tool list from 638 to 446. Nothing about any page changed except the wait for its code.
    • The reason this went unnoticed for so long is that nothing breaks. No test goes red and no screenshot looks different when a page gains two hundred kilobytes — it happens one import at a time. So there is now a budget: a browser opens each kind of page, counts the bytes it actually fetched, and the build fails if the number creeps up.
    • Four more of the readers we wrote ourselves are fuzzed: the ZIP header walker, the QR payload reader, the password strength model and the filename flattener. Thousands of corrupted inputs each, checking that nothing hangs and nothing impossible comes back.
  4. New tools

    Remove a background, without uploading the photo

    The most-searched image edit on the web, done on your own device. A neural network runs in your browser and cuts the subject out; the picture never leaves the tab.

    • Every other free background remover uploads your picture. For a holiday snap that is a fair trade. For a passport, a payslip on a desk, a child, or a product nobody has announced yet, it is a stranger's disk drive — and the site rarely tells you which one it is going to be. Here there is nothing to tell, because the picture does not go anywhere.
    • About 18 MB the first time — the model and the runtime that executes it — then your browser keeps them. The model runs in a worker, so the tab stays alive while it thinks instead of freezing for ten seconds and looking like a crash.
    • It is good at a clear subject on a background and poor at hair, fur, foliage and glass. It uses the small 4.6 MB model, because the good one is 176 MB and nobody should be asked to download that for one picture. Both limits are on the page rather than in a FAQ.
    • A photo with no obvious subject — a wall, a sky, a screenshot — gets told so, rather than handed back a blank PNG that looks like a bug in your browser.
    • Transparent, or a colour behind the subject. The preview sits on a checkerboard, because a transparent PNG shows as white in most viewers and that is the single most common reason people think it did not work.
  5. The site

    Send a file to KIVO

    KIVO now appears in your phone's share sheet and your computer's Open with menu. Share a photo from the gallery and it opens here, ready to work on.

    • Share sheet. On a phone, share a photo, a PDF or a recording straight to KIVO instead of finding the file again in a browser. On a desktop, right-click a file and Open with.
    • Nothing is uploaded, and that is the point: this is ordinary for an installed app and nearly unheard of for a website, and it costs us nothing to offer because the file was never going anywhere. The operating system hands the bytes to the page, and the page runs the same tools it always does.
    • It works with no connection. Sharing a photo on a train is exactly when you want this, so the receiving page is cached like the rest of the site — there is a test that shares a file with the network switched off.
    • The file is not kept. It is read once on the way into the page and the holding area is emptied immediately, so a share you never opened does not sit in storage waiting to be found.
    • KIVO only claims the file types it can actually do something with. Being offered a tool that then says “nothing handles this” is worse than not being offered at all.
  6. New tools

    Read a code, open a ZIP, check a password

    Four tools for things KIVO could not do, and two fixes to things it could — including one to our own passphrase generator that we are not pleased about.

    • A QR and barcode reader. KIVO could make three kinds of QR code and read none, which is the wrong way round. Read one from a photo or the camera and see what is actually inside — the real host, the whole link, the Wi-Fi password — before anything opens it. A QR code is a link you cannot read, and that quietly suspends every instinct people have about unfamiliar links.
    • Open a ZIP. List what is inside an archive and take only the files you want, without extracting anything to your disk. A small archive that claims to expand to petabytes is refused before a byte is decompressed, and an entry whose path climbs out of its own folder is marked rather than hidden.
    • Create a ZIP. Several files, one attachment.
    • A password strength checker that measures what an attacker would do rather than what a form validator checks. It calls Password123! terrible, because it is — that is the single most predictable thing anyone types when told to use a capital, a digit and a symbol. Nothing is sent anywhere; there is no server to send it to.
    • OCR now reads every page, not just the first — and can write the words back into the PDF, invisibly, on top of the ink they came from. The scan looks exactly as it did, and Ctrl-F finds what is in it.
    • Our passphrase generator was drawing from 186 words. That is 7.5 bits each, so its default output was about 37 bits — roughly fifteen seconds against a stolen database and a fast GPU. The list is now 1,721 words and the default is five, which is 60 bits. A generator whose whole purpose is producing something unguessable was producing something guessable, and nothing on the page said so.
  7. Assistant

    The assistant got room, and a memory

    It can now be made big enough for what goes through it, and it remembers what it just did — so the next thing you type can refer to it.

    • A second size. The corner panel was built for “say a sentence, get a file”; forms, tables and lists of tools never fitted it. The expand button gives it the width, and the width is actually used: tools in two columns, forms in two columns, generated images at nearly twice the size. Your choice is remembered.
    • Follow-ups. “E anche convertilo in webp” now means what it says: the second job runs on the file the first one produced, not on the original. “Rifallo” repeats the last job. “No, invece…” corrects it without starting over.
    • “Did you mean” is now a button. When it is not sure which tool you meant, the shortlist sets the job up in the panel instead of sending you to a page and closing the dialog with your file still attached to it.
    • This page. Every future change lands here, and a test fails the build if the catalogue grows without an entry being written.
  8. Assistant

    You can now talk to the assistant

    Asking it what it can do used to be the one thing it could not handle. It answers questions about itself now — what it does, whether it is an AI, where your files go.

    • “What can you do?” gets a real answer with tappable examples, instead of “I don't know that one”.
    • “What can you do with PDFs?” lists the PDF tools, rather than refusing and then listing them anyway.
    • It says plainly that there is no model behind it: it reads your words with rules, which is why it is instant, works offline, and tells you when it has not understood.
  9. Assistant

    The assistant can convert video and audio

    Five ffmpeg jobs moved into the panel: convert a video, compress it, pull the audio out, convert audio, and normalise loudness.

    • The same arguments the tool pages use, from the same file — so the panel and the page cannot drift into producing different results from the same input.
    • The encoder download and the encode are shown as two separate stages, because the first is 32 MB and only happens once, and a single spinner covering both looks like a hang.
    • Trimming and joining stayed on their own pages. Both are about seeing the waveform, and typing two numbers at a file you cannot see is not the same tool.
  10. Assistant

    The assistant can run 96 tools, not fourteen

    It knew about fourteen file operations by hand. Most of the catalogue already describes itself well enough to be run without being taught individually — so now it is.

    • Any tool that declares an action and its parameters can be set up and run in the panel, with a form for whatever it still needs to be told.
    • It asks. A Wi-Fi QR code with no network name is a blank image, so it asks for the network name rather than producing one.
    • It refuses well. Where a tool genuinely needs its own page — a crop box, a redaction brush, a twenty-field form — it says which of those three reasons applies instead of shrugging.
    • It only acts when the tool's own name is in your sentence. Below that it offers a shortlist, because running the wrong tool on your file is worse than one more tap.
  11. The site

    OCR is back, and it downloads from us

    Reading text out of a scanned PDF works again, and the recognition engine and its language data now come from kivo.tools rather than from a third-party CDN.

    • Nothing about your file changes hands: the engine is downloaded to your browser, and the page is never sent anywhere.
    • Five languages ship with it, using the higher-accuracy models rather than the fast ones.
    • It also means OCR works with the network off once the engine is cached, like the rest of the site.
  12. Correctness

    Tested against hostile files, and three real bugs fixed

    A week of work with nothing to show on screen: unit tests over the logic, fuzzing of the hand-written parsers, and a threat model exercised against files built to break things.

    • The password generator could produce a password with no digits in it, roughly one time in seventy, while promising digits. Every enabled character class is now guaranteed.
    • The encrypted container's header was not authenticated, so a filename could be rewritten without the password. It is signed now, and files from the old version still open.
    • A truncated image was silently accepted and “optimised” into something blank. Images are checked for their end marker before anything touches them.
    • Filenames from inside archives and metadata are stripped of control and direction-changing characters, which is how a file called “report‮gnp.exe” gets displayed as a PNG.
  13. New tools

    Five tools for people who work with text

    Invisible-character detection, string escaping, number-base conversion, HTML entities and a CSS minifier.

    • The invisible-character tool finds the zero-width spaces and direction marks that get pasted in from documents and break comparisons for reasons nobody can see.
  14. New tools

    Collage, enlarge and filters

    Three image tools that were missing: arranging several photos into one, enlarging without the usual mush, and a set of filters applied in the browser.

  15. New tools

    A Security category: encrypt, decrypt, verify

    Encrypt a file with a password, open one, and check a file against a published checksum. AES-256-GCM, done in your browser, with the key derived from your password and never sent anywhere.

    • There is no recovery. Nobody here can open your file, which is the point, and it is said plainly before you start rather than after you forget.
  16. New tools

    Five audio tools

    Convert, trim, normalise loudness, join several files, and record from your microphone — all on the same ffmpeg engine that runs in the tab.

    • Normalising targets perceived loudness (EBU R128) rather than peak level, which is why a “normalised” podcast elsewhere still needs the volume riding and this one does not.
  17. Assistant

    The KIVO Assistant

    One place to say what you want done, from anywhere on the site. Drop a file, describe the outcome, and it works out the steps and runs them without a page change.

    • No model, no server. It reads your sentence with rules — so it answers instantly, works with the network off, and says when it has not understood instead of inventing something confident about your file.
  18. New tools

    Video, in the browser

    Convert, compress, trim, and pull the audio out of a video — with ffmpeg compiled to WebAssembly and served from us, so the file never leaves the tab.

    • A browser is slower at this than a desktop app, and the tools say so rather than letting you find out.
  19. New tools

    Invoices, signatures and eight more business tools

    An invoice generator and an Italian electronic-invoice XML export sharing one model, an email-signature builder, a meeting planner across time zones, and date and interest calculators.

  20. New tools

    Nine document tools that run in the browser

    Signing a PDF, filling a form, redacting properly, a spreadsheet-to-CSV converter, SQL formatting, and Markdown in both directions.

    • Redaction removes the text, rather than drawing a black rectangle over it and leaving it selectable underneath.
  21. The site

    KIVO works with the network off

    The site installs as an app and keeps working without a connection. Since the tools already run in your browser, there was never a reason for the page around them to need a server.