Kari is best used as a place to dump temporary information.
Kari is a scratchpad app that combines note-taking with live code execution. It doesn’t aim to replace other note-taking apps — it shines when you want a quick place to offload thoughts, do back-of-the-envelope calculations, or run code snippets on the fly.
When you first open Kari, you’ll be prompted to set up your database. Once that’s done, you’ll land on your first scratchpad — a blank canvas ready for your thoughts.
A scratchpad is a single document made up of blocks. Each block can be a different type: markdown for text, JavaScript for code, math for calculations, or JSON for structured data.
To create a new scratchpad, use ⌘ + N. You can manage your scratchpads from the sidebar.
Free tier: You can create up to 4 scratchpads for free. Unlock unlimited scratchpads with a license.
Kari supports four code block types, each with its own capabilities:
| Block Type | Description |
|---|---|
| Markdown | Rich text with headings, lists, links, checkboxes |
| JavaScript | Live-evaluated JS code with inline results |
| Math | Natural math expressions with unit conversions |
| JSON | Syntax-highlighted JSON data |
Blocks are created using fenced code syntax ( ``` ) with the appropriate
language tag: js, math, or json. Everything outside of code fences is
treated as markdown.
| Action | Shortcut |
|---|---|
| Create new scratchpad | ⌘ + N |
| Toggle app focus | ⌥ + A |
| Insert separator | ⌘ + return |
| Insert code block | ⌘ + G |
| Go to top | ⌘ + K |
| Go to bottom | ⌘ + J |
| Quick export selection | ⌘ + S |
You can customize all keyboard shortcuts from Settings → Hotkeys.
When you hit ⌘ + return, Kari inserts a horizontal rule (---) to visually
separate sections of your scratchpad.
Write JavaScript inside a ```js code fence and Kari will evaluate it live.
Results appear inline next to each expression.
let items = [10, 20, 30]
items.reduce((a, b) => a + b, 0) // → 60
How it works:
let, const, var) and functions persist across
lines within the same blockWrite math expressions inside a ```math code fence. Results are computed
automatically.
| Operator | Symbols |
|---|---|
| Addition | +, plus |
| Subtraction | -, minus |
| Multiplication | *, times |
| Division | /, divide |
| Modulo | % |
10 + 5 = 15
$100 * 3 people = $300
$20 times 3 = $60
Use the of operator with percentages:
20% of 10 = 2
Assign values to variables with =. Variable names cannot contain whitespace.
age = 10
in_five_years = age + 5
The keyword that stores the value of the previous expression:
10 + 10 = 20
that = 20
$10 times 3 people = $30.00
that - 15% = $25.50
Use the to keyword to convert between units:
10cm to m
20m to cm
Numbers are base 10 by default. Use prefixes for other bases:
0b00010 = 2 (binary)
0x29 = 41 (hexadecimal)
0o51 = 41 (octal)
Group values with brackets and use array functions:
arr = [1, 2, 3, 4]
sum(arr) = 10
pi = 3.1415926535898
e = 2.718281828459
| Function | Description |
|---|---|
| abs(x) | Absolute value of a number |
| ceil(x) | Round towards plus infinity |
| floor(x) | Round towards minus infinity |
| cube(x) | Compute x * x * x |
| square(x) | Compute x * x |
| pow(x, y) | Calculates x to the power of y |
| sqrt(x) | Square root of a value |
| log(x, base) | Logarithm of a value (default base is e) |
| hypot(a, b, c, …) | Hypotenuse: sqrt(a² + b² + c² + …) |
| sum(arr) | Sum all values in an array |
Prefix a number with $ to treat it as currency. USD is the default:
$30 = 30.00 USD
Specify a currency with its short code after the amount:
5 usd = 5.00 USD
2 aud = 2.00 AUD
Kari lets you export a selection in scratchpad content to other apps. Once you selected some text, either with mouse drag or quick select using ⌘ + A, open the export menu from the top bar to access export options. Optionally, ⌘ + S would automatically save your selection to a default app of your choice.
Export directly to Apple Notes. You can create a new note or append to an existing one. Kari will format your content for Notes automatically.
Export to any Obsidian vault on your system. Kari detects available vaults and lets you create or append to notes within them.
Dock Kari to an edge of your screen for quick access. Enable docking from Settings → General and choose an edge: left, right, top, or bottom.
When docked, hover near the edge to peek at Kari, or use the global shortcut to toggle it open.
Kari supports Dark, Light, and System themes. Change the theme from Settings → General.
Your scratchpads are stored in a local SQLite database. The database path is configured during initial setup and can be changed in settings. No data leaves your machine unless you explicitly export it.