Using omajot
Write, find, sync
This page shows the plugin in the Omarchy bar, the web app on your phone and the terminal UI. All show the same notes and work the same way.
Dropdown and main window
Click the note icon in the bar to open the dropdown. Middle-click it to open the main window. The main window is a normal window, so you can tile it next to your work.
Both show three columns:
- Sources: all notes, pinned notes, notes without a folder, your folders, your tags and the Trash.
- Notes: the notes of the selected source, newest first. Type in the search field to filter them.
- Editor: the selected note, as markdown source, as preview, or both side by side.
The sync state is at the bottom of the sources column: a dot and a word, for example Synced.


Next to the omajot name are four buttons. The window button (in the dropdown) opens the selected note in the main window; o does the same. The terminal button opens omajot tui in your terminal, and the globe button opens the web app in its own window. Both windows open popped out like Super+O: floating, centred and pinned; if the window is open already, the button brings it to the front. The phone button shows your hub URL as a QR code.
In the preview, web links open in your browser. A link to a local file (file://) asks first, and opens only if the file or folder exists on this computer and is no program.

App launcher and keyboard shortcut
You can start the main window like an app. This is optional. The plugin does not need it.
Add omajot to the app launcher (SUPER+SPACE). The script is in the plugin folder that omarchy plugin add made:
$ ~/.config/omarchy/plugins/io.github.renerocksai.omajot/tools/install-app.sh
The launcher entry opens the main window. Run the same command with --remove to remove the entry.
To open and close the main window with a key, add this line to ~/.config/hypr/bindings.lua:
o.bind("SUPER + SHIFT + N", "omajot", "omarchy-shell shell toggle io.github.renerocksai.omajot")
The main window is a normal window, so Hyprland tiles it. To open it as a floating window of a fixed size, add a window rule, for example in ~/.config/hypr/looknfeel.lua:
o.window({ class = "^org.quickshell$", title = "^omajot$" }, { float = true, center = true, size = { 1280, 800 } })
Keys
Plugin, outside the editor
| Key | Action |
|---|---|
| j k or ↓ ↑ | Move in the active column |
| h l or ← → | Go to the sources column or the notes column |
| Enter or l in the notes column | Edit the selected note |
| n or Ctrl+N | New note in the selected folder |
| / or Ctrl+F | Search titles and text |
| e or Ctrl+E | Change the layout: split, source, preview |
| p or Ctrl+P | Pin or unpin the note |
| m | Move the note to a folder |
| x or Delete | Move the note to the Trash, or restore it |
| o | Open the note in the main window (dropdown only) |
| Esc or q | Close |
Plugin, in the editor
| Key | Action |
|---|---|
| Ctrl+Z / Ctrl+Y | Undo / redo your own changes. Changes from other devices stay. |
| Ctrl+B / Ctrl+I | Bold / italic |
| Enter in a list | Continue the list or checklist. Enter on an empty item ends the list. |
Tab after #ta | Complete a tag that you already use |
| Ctrl+V | Paste text, images, files or HTML |
| Esc | Leave the editor |
Web app
| Key | Action |
|---|---|
| / | Search |
| Ctrl+Alt+N (⌘+⌥+N) | New note |
| Ctrl+B / Ctrl+I | Bold / italic |
| Ctrl+Shift+L | Make the line a checklist item |
| Tab / Shift+Tab | Indent / outdent |
| Esc | Go back to the list (phone) |
Editor and preview
You write markdown. The preview shows the result: headings, bold and italic text, lists, tables, code blocks, quotes, links and images. Web addresses become links automatically.
The main window shows the source and the preview side by side. Press e to show only one of them. The setting Editor layout in the main window sets the default.

Titles, checklists and tags
- Title: the first line of a note is its title. A
#heading mark is not part of the title. - Checklist: write
- [ ] task. Click the box in the preview to tick it. omajot changes the source for you. Indent an item by four spaces to put it under the item above it. - Tags: write
#wordanywhere in the text. A tag starts after a space or at the start of a line. Headings (# Title), code and numbers such as#123are not tags. Tags are not case-sensitive.
Click a tag in the sources column to show all notes with that tag.


Folders, pins and the Trash
- Folders can contain folders. Use the + button next to FOLDERS to add one. To rename, move or delete a folder, hover it in the plugin, or tap ••• in the web app.
- When you delete a folder, its notes move to Notes and its subfolders move up one level.
- Pinned notes show first in every list.
- The Trash keeps deleted notes. Open a note in the Trash and restore it with x.
Paste and attachments
In the plugin, Ctrl+V looks at all formats on the clipboard and takes the best one:
- An image, for example a screenshot, becomes an attachment.
- Files copied in a file manager become attachments.
- Markdown, for example from LibreOffice, stays as it is.
- HTML, for example from a web page, becomes markdown. Checkboxes become checklist items.
- Plain text stays as it is.
Images inside pasted text also become attachments. The plugin downloads remote images too, so your notes do not break when a web page changes. The web app keeps remote images as links, because the browser does not allow the download.
Attachments are named by their SHA-256 hash, for example attachments/3f2a….png. The same image is stored once. The hub stores it once for all devices. In the web app, paste an image, drop it, or use the camera button.
Sync and offline
Every device keeps a full copy of your notes. You can read, write and search without a network. omajot sends your changes when the hub is reachable again.
If you change the same note on two devices, omajot merges both changes. There are no conflict copies.
The plugin and the web app show the sync state at the bottom of the folders column, for example Synced, Up to date or Offline · 3 unsent. The TUI shows it in its status bar.
Updates. The hub serves the web app. After you update the hub, the web app changes to the new version by itself when you open it. If it is open already, a notice asks you to reload.
The web app
Open your hub URL on a phone, a tablet or another computer. On a wide screen the web app shows three columns. On a phone it shows one view at a time: folders, notes, or the note.



Install the web app on the desktop too: in Chrome or Edge, use Install app. We test the web app in Chrome and Chromium on the desktop and in Safari on iOS 26. Other modern browsers should work.
Add the web app to the home screen: on an iPhone or iPad, tap Share → Add to Home Screen. The web app then starts offline too. Open it in one tab only: a second tab asks which tab keeps the notes.
A browser can clear the storage of a web app when the disk is full. The web app asks the browser to keep its notes. Click the sync state at the bottom of the folders column to see the answer. Firefox asks you first, so there the dialog has a Keep them here button. The risk is small: everything that reached the hub is safe, and with Tailscale your devices are usually online while you write. Only a change made offline, and not synced before the browser clears the storage, would be lost.
The terminal UI
Run omajot tui in a terminal. It shows the folders and tags, the notes and the note, like the main window. Move with j k h l or the arrow keys, search with /, and press e to edit the note in $EDITOR (for example Neovim). Each save goes into the note at once, and changes from your other devices show up while you read. The mouse works too: click to select, click a checkbox to tick it, click a link to open it, and click a note twice to edit it. Press ? for all keys. The CLI reference has the details.


Plugin settings
Change the settings in the Omarchy bar settings, or with omarchy bar set io.github.renerocksai.omajot <key> <value>.
| Key | Default | Meaning |
|---|---|---|
hubUrl | empty | The hub URL. Empty: use hub from ~/.config/omajot/config.json. |
dataDir | empty | Where the notes are stored on this computer. Empty: ~/.local/share/omajot. |
previewMode | split | The editor layout in the main window: split, source or preview. |
fontSize | 0 | The editor font size. 0 uses the theme size. |
daemonPath | empty | A different omajot binary. Empty: zig-out/bin/omajot in the plugin folder (a local build) if it exists, else bin/omajot (the release binary). |