Documentation

How Kanto Notes works.

A concrete walkthrough of every core feature with real input and real output. Read it top to bottom in under ten minutes.

1. Quick start

  1. Sign up with email + password. Free forever, no card.
  2. On the New Note screen, type or hit Record and speak. Voice is auto-transcribed via Whisper.
  3. Click Save. The note is saved instantly.
  4. AI enrichment runs in the background (~4s). Refresh All Notes to see the auto-title, tags, and category appear.
  5. Use Search to find by meaning, or Ask Notes to chat over your notes.

2. Capturing a note

The home screen is intentionally minimal. One title field, one big textarea, one microphone button. Save is a single click. Latency from click to persisted row is under 200ms.

Voice input (14 seconds)

"Reminder for the Friday demo: swap the pricing slide with the new one Sarah sent, and mention the AWS migration savings. Also add the customer quote from Acme."

Saved note (raw)

{
  "id": "a4c8...",
  "title": "Untitled",
  "content": "Reminder for the Friday demo: swap the pricing slide
with the new one Sarah sent, and mention the AWS migration savings.
Also add the customer quote from Acme.",
  "created_at": "2026-07-15T10:14:22Z"
}

The note is queryable immediately — you don't wait for AI.

3. AI enrichment

Right after save, Kanto fires a server function that runs two things in parallel: (1) a chat completion that returns a strict JSON structure with title, category, tags, and entities; (2) a text-embedding-3-small call that produces a 1536-dim vector for later semantic search.

Prompt sent to the model

system: You organize personal notes.
Return STRICT JSON only.
{
  "title": string (<= 8 words),
  "category": "idea"|"todo"|"meeting"|"journal"|"reference"|"misc",
  "tags": string[] (1-5, lowercase),
  "entities": [{ "type": "person"|"org"|"project"|"date"|"topic",
                 "value": string }]
}

user: Reminder for the Friday demo: swap the pricing slide with
the new one Sarah sent, and mention the AWS migration savings...

Model response (stored on the note)

{
  "title": "Friday demo prep: pricing slide + AWS savings",
  "category": "todo",
  "tags": ["demo", "friday", "pricing", "aws", "acme"],
  "entities": [
    { "type": "person", "value": "Sarah" },
    { "type": "org", "value": "Acme" },
    { "type": "org", "value": "AWS" },
    { "type": "date", "value": "Friday" },
    { "type": "topic", "value": "pricing slide" }
  ]
}

You can override anything from the note's edit view. Overrides are preserved on subsequent enrichments.

5. Ask your notes (RAG)

Ask Notes is retrieval-augmented chat: your question is embedded, top-K similar notes are pulled, and they're passed as grounded context to gpt-5.4-nano with instructions to cite the specific notes it used.

Your question

"What was I planning for the Kerala trip?"

Kanto's answer

You planned to travel from Mysore Metro to Kerala and on to Kanyakumari, stopping in Kumarakom. You intended to leave the day after and return Sunday morning [Note 1].

Sources: [Note 1] Kerala to Kanyakumari Plan (similarity 0.79)

If the answer isn't in your notes, Kanto will say so instead of hallucinating.

6. All Notes view

The list view is optimized for large personal corpora:

  • Filter by keyword, category, or tag.
  • Sort by recently updated, created, or title.
  • Soft-delete puts the note in a restorable Trash for 30 days, then hard-delete.
  • Bulk actions on multi-select.

7. Bring your own OpenAI key

In Settings, you can paste your own sk-... key. From that moment on, every AI operation for your account — enrichment, embeddings, ask, transcription — is billed to your OpenAI account instead of ours.

Settings input

Provider: openai
Chat model: gpt-5.4-nano
OpenAI API key: sk-proj-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Effect

All future AI calls for your account are proxied server-side using your key. The key is stored encrypted at rest and never sent to the browser. Remove it any time from the same screen.

8. Limits & fair use

LimitFreePro
Notes stored100Unlimited
AI enrichments / month50Unlimited
Semantic searches / month50Unlimited
Ask-your-notes queries / month10Unlimited
Voice minutes / month30Unlimited
Max note length20k chars100k chars

Limits reset at the start of each calendar month (UTC).

9. Troubleshooting

My note still says "organizing…" after a few minutes.

Enrichment failed. Open the note — an error will show at the top. Most often: missing or invalid OpenAI key in Settings, or you're over the Free tier limit.

Search returns nothing for an obviously relevant note.

The note may not be enriched yet (no embedding). Wait 10 seconds or open the note to trigger a manual re-enrichment.

Voice recording won't start.

The browser needs microphone permission. Check the site permissions in your browser's address bar and re-grant access.

I want to delete everything and start over.

Settings → Danger zone → Delete all notes. This purges every note irrecoverably. To also delete your account, use Delete account below it.

Ready to try it?