# The desktop app

> Kribble as a desktop app: tabs and side-by-side notes, several servers, search and quick notes from anywhere, notifications and synced folders

The desktop app is the Kribble web app in its own window, plus what a browser can't do: notes in tabs and side by side, every Kribble server you use in one app, a search and a quick note from any app, system notifications, folders of notes synced to files, and `kribble://` links.

## Download and install

The app downloads from your Kribble server. Open **CLI & agents** (at the bottom of the sidebar, or in your user menu) and scroll to **Desktop app**: the button offers the build for your computer, and **Other systems** lists the rest. If the page says **Not on this server yet**, the server's release doesn't include the app; ask its operator.

Builds are made for:

| System | Files |
| --- | --- |
| macOS, Apple silicon | `.dmg` (and a `.zip` the updater uses) |
| Windows, x64 | An installer `.exe` |
| Linux, x64 and arm64 | AppImage and `.deb` |

There is no build for Intel Macs. Which of these your server offers depends on what its operator added to the release.

:::tabs{group="os"}
::tab{label="macOS"}
Open the `.dmg` and drag Kribble to Applications.
::
::tab{label="Windows"}
Run the installer. The app isn't signed, so Windows may say the publisher is unknown: choose **More info**, then **Run anyway**.
::
::tab{label="Linux"}
Install the `.deb` with your package manager (`sudo apt install ./Kribble-*.deb`), or make the AppImage executable (`chmod +x Kribble-*.AppImage`) and run it.
::
:::

## Connect to a server

At the first start, the app asks for a **Server address**: the address you use in the browser, such as `kribble.yourcompany.com`. Click **Continue** and sign in as you do on the web. If you already use the [kribble CLI](../using-kribble/the-kribble-cli.md), its servers are listed under **Servers on this computer**; click one to open it.

Once the app is installed, **Open this server in the app** on the server's **CLI & agents** page adds that server to the app.

### Connect this computer

The tabs are signed in like a browser. Search, quick notes and synced folders work through the kribble CLI that comes inside the app, and need this computer approved once per server:

:::steps
::step
Click Connect

---
Click **Connect** next to the server switcher in the tab strip, or go to **Settings → Servers** and click **Connect** next to the server.
::
::step
Approve

---
The approval page opens in a tab of that server, where you are signed in already. Choose the organisations and the access, and click **Approve**.
::
:::

The server is then marked **Connected**. **Disconnect** forgets the access token on this computer. The approval creates an access token named "kribble CLI" plus the computer's name, which you can see and revoke under **Access Tokens** in the organisation's settings.

### Several servers

The app keeps every server you add, each with its own sign-in. The switcher at the left of the tab strip (and the **Server** menu) moves the window to another server, adds one (**Add a Server…**) or manages them (**Manage Servers…**). **New Window For** in the tray menu opens a window for a given server.

The app's servers are the kribble CLI's profiles, and the other way round: a server added in the app shows up in `kribble profile list`, and a profile you add in the terminal shows up in the app. The app uses its own copy of the CLI; to use `kribble` in a terminal, install it as described in [The kribble CLI](../using-kribble/the-kribble-cli.md).

## Tabs, windows and side by side

- Open a note in a new tab with Cmd-click (Ctrl-click on Windows and Linux) or a middle click, in the sidebar or on a link in a note. **Open to the side** in a note's menu in the sidebar opens it next to the current one.
- Drag a tab to the left or right edge of the window to split it, onto another group's tab strip to move it there, or out of the window to give it a window of its own. **Move Tab to New Window** in the **Tab** menu does the same.
- Drag the divider between groups to resize them; double-click it to make them even.
- Windows, tabs and splits come back the next time you start the app. Turn this off with **Reopen tabs at start** in **Settings → General**.
- Right-click a link for **Open Link in New Tab**, **Open Link to the Side** or **Open Link in Browser**.

On Windows and Linux the window has no menu bar: the same menus are in the **Menu** button at the right of the tab strip.

### Keyboard shortcuts

On Windows and Linux, use Ctrl for Cmd and Alt for Option.

| Action | Shortcut |
| --- | --- |
| New tab | Cmd+T |
| Reopen closed tab | Shift+Cmd+T |
| Close tab / window | Cmd+W / Shift+Cmd+W |
| New window | Cmd+N |
| Next / previous tab | Ctrl+Tab / Ctrl+Shift+Tab |
| Go to tab 1 to 8, last tab | Cmd+1 … Cmd+8, Cmd+9 |
| Split right, or join | Cmd+\\ |
| Join all groups | Shift+Cmd+\\ |
| Focus the other group | Option+Cmd+Right / Option+Cmd+Left |
| Back / forward | Cmd+\[ / Cmd+\] |
| Find in page | Cmd+F |
| Zoom in / out / actual size | Cmd+= / Cmd+- / Cmd+0 |
| Settings | Cmd+, |

## Search and quick notes from anywhere

Two shortcuts work from any app, even when Kribble is in the background:

- **Search notes**, Cmd+Option+K (Ctrl+Alt+K): searches every connected server at once, with the same operators as the search box in the app, such as `in:Engineering` or `updated:<7d` (see [Search](../using-kribble/search.md)). Before you type, it lists your open tabs. Each result shows the heading the match is under and the text around it. Arrow keys choose, Enter opens the note in a tab at the block that matched, and Cmd+Enter (Ctrl+Enter) opens it beside the current one. A server that isn't connected yet isn't searched; the list says so, and it also says when an `in:` or `by:` matches nothing on a server.
- **Quick note**, Cmd+Option+N (Ctrl+Alt+N): a **Title**, the text in markdown, and **Save to**: the space or folder it goes in, such as `Notes/Inbox` (a space name alone works too). Cmd+Enter (Ctrl+Enter) or **Save note** saves it. Tick **Open it** to open the note afterwards. The app remembers the folder for each server.

Both are also in the tray menu and the **File** menu, and **Search** and **Note** switch between them. Change the shortcuts in **Settings → Shortcuts**: click one and press the new keys. If another app has the combination already, the app says so.

## The tray and notifications

The app puts an icon in the menu bar (macOS) or tray (Windows, Linux) with **Open Kribble**, **Search Notes…**, **Quick Note…**, the state of synced folders with **Sync Now**, **Settings…** and **Quit Kribble**. On Windows and Linux, clicking the icon opens the app.

When you close the last window, the app keeps running there, so notifications and syncing go on. Quit it from the tray menu. On Windows and Linux, turning off **Tray icon** in **Settings → General** makes closing the last window quit the app.

Mentions, comments and replies arrive as system notifications; clicking one opens it in a tab. The number of unread notifications shows on the Dock icon (macOS) or the tray icon. Turn either off in **Settings → General** (**Notifications**, **Unread badge**).

## Synced folders

A synced folder keeps a folder of notes on your computer as markdown files, in both directions. Edit the files with any editor, offline too: your changes go up a few seconds after you save, and others' changes come down every few minutes.

:::steps
::step
Add the folder

---
Go to **Settings → Synced folders** and click **Sync a folder**. The server must be connected.
::
::step
Choose what and where

---
Pick the **Space** and the **Folder** (or **The whole space**), and under **On this computer** an empty folder (**Choose…** opens a folder picker).
::
::step
Decide about deletions

---
Turn on **Deleting a file deletes its note in Kribble** if you want that. When it is off, deleting a file doesn't touch the note.
::
::step
Start

---
Click **Start syncing**. The app pulls the notes into the folder.
::
:::

The files are in the same format as `kribble pull` writes: front matter with each note's name, description, icon and order, `_folder.md` for folders, images in `_assets/`. See [The kribble CLI](../using-kribble/the-kribble-cli.md) for the details; the CLI's commands, such as `kribble status` and `kribble open FILE --app`, work inside a synced folder too.

Each folder in the list shows its state (**Synced** and when, **Syncing…**, **Offline**, **Needs you**, **Paused**) and has buttons to show it in the file manager, sync now, pause it, and stop syncing. Stopping leaves the files where they are. **Get others' changes every** sets how often changes come down, from one minute to an hour (five minutes by default).

When a note changed both on your computer and in Kribble, the app merges the two. Where both changed the same lines, the file gets conflict markers and you get a notification:

```text
<<<<<<< yours
Your version of the lines
=======
The version in Kribble
>>>>>>> kribble
```

Edit the file to keep what you want, remove the markers and save; the folder then syncs again.

## kribble:// links

The app opens `kribble://` links from any app or terminal:

| Link | Opens |
| --- | --- |
| `kribble://open?server=URL&note=ID` | The note in a tab (add `&side=1` to open it beside the current one) |
| `kribble://search?q=WORDS` | The search, with the words filled in |
| `kribble://capture` | A quick note |
| `kribble://add-server?server=URL` | Adds the server, after asking you |

`kribble open NOTE --app` in a terminal opens a note in the app (see [The kribble CLI](../using-kribble/the-kribble-cli.md)). A link to a server the app doesn't know asks whether to add it first.

## Updates

The app updates itself from the server it's connected to (the active server, or the first one), so it stays at the server's version. An update downloads in the background and is installed when you quit the app. To check now, choose **Check for Updates…** in the **Kribble** menu (macOS) or the **Help** menu (Windows, Linux). Until a server is added, updates come from getkribble.com.
