# Octarine Documentation > Octarine is a fast, private markdown editor designed to help you capture ideas, organize knowledge, and get things done. This file contains the complete documentation for Octarine, formatted for AI agents and LLMs. ## Table of Contents ### Getting Started - [Meet Octarine](https://docs.octarine.app/getting-started/meet-octarine) - [Installation](https://docs.octarine.app/getting-started/installation) - [Updating Octarine](https://docs.octarine.app/getting-started/updating) - [Uninstalling Octarine](https://docs.octarine.app/getting-started/uninstalling) - [Pro License](https://docs.octarine.app/getting-started/pro-license) ### Core Concepts - [Workspaces](https://docs.octarine.app/core-concepts/workspaces) - [Split panes & Tabs](https://docs.octarine.app/core-concepts/panes-and-tabs) - [Storing Data](https://docs.octarine.app/core-concepts/storing-data) - [Workspace Search](https://docs.octarine.app/core-concepts/workspace-search) - [Graph](https://docs.octarine.app/core-concepts/graph) ### Editing and Formatting - [Basics](https://docs.octarine.app/editor/basics) - [Formatting](https://docs.octarine.app/editor/formatting) - [Doclinks](https://docs.octarine.app/editor/doclinks) - [Bubble Menu](https://docs.octarine.app/editor/bubble-menu) - [Attachments](https://docs.octarine.app/editor/attachments) - [Tables](https://docs.octarine.app/editor/tables) - [Code Blocks](https://docs.octarine.app/editor/code-blocks) - [Mermaid](https://docs.octarine.app/editor/mermaid) - [LaTeX](https://docs.octarine.app/editor/latex) - [Callout](https://docs.octarine.app/editor/callout) - [Heading Font](https://docs.octarine.app/editor/heading-font) - [Collapsible Headings](https://docs.octarine.app/editor/collapsible-headings) - [Text Color](https://docs.octarine.app/editor/text-color) - [Focus Mode](https://docs.octarine.app/editor/focus-mode) ### Organization - [File Tree](https://docs.octarine.app/organization/tree) - [Tagging](https://docs.octarine.app/organization/tagging) - [Templates](https://docs.octarine.app/organization/templates) - [Views](https://docs.octarine.app/organization/views) ### Customisation - [Themes](https://docs.octarine.app/customisation/themes) - [Theme Creator](https://docs.octarine.app/customisation/theme-creator) - [Folder Sorting and Icons](https://docs.octarine.app/customisation/folder-sorting-and-icons) ### Daily Desk - [Daily Desk](https://docs.octarine.app/daily-desk/index) - [Smart Dates](https://docs.octarine.app/daily-desk/smart-dates) - [Migrate Incomplete Tasks](https://docs.octarine.app/daily-desk/automation) ### Note Management - [Properties](https://docs.octarine.app/note-management/properties) - [Search](https://docs.octarine.app/note-management/search) - [Pinned Notes & Folders](https://docs.octarine.app/note-management/pinned) - [Meta Sidebar](https://docs.octarine.app/note-management/meta-sidebar) - [Read-only Notes](https://docs.octarine.app/note-management/read-only-notes) - [External Files](https://docs.octarine.app/note-management/external-files) - [Outline Navigation](https://docs.octarine.app/note-management/outline-navigation) ### Working with AI - [Configuring AI](https://docs.octarine.app/working-with-ai/setting-things-up) - [Working with Ollama](https://docs.octarine.app/working-with-ai/working-with-ollama) - [Working with LM Studio](https://docs.octarine.app/working-with-ai/working-with-lmstudio) - [Writing Assistant](https://docs.octarine.app/working-with-ai/writing-assistant) - [Ask Octarine](https://docs.octarine.app/working-with-ai/ask-octarine) - [Weekly AI Recap](https://docs.octarine.app/working-with-ai/weekly-ai-recap) ### Backup - [Git Sync](https://docs.octarine.app/backup/git-sync) - [Dropbox](https://docs.octarine.app/backup/dropbox) - [OneDrive](https://docs.octarine.app/backup/onedrive) - [iCloud](https://docs.octarine.app/backup/iCloud) - [Syncthing](https://docs.octarine.app/backup/syncthing) ### Workflows - [URI Scheme](https://docs.octarine.app/workflows/uri-scheme) ### Migrate from other apps - [Obsidian](https://docs.octarine.app/importing/obsidian) ### Help & Support - [Troubleshooting](https://docs.octarine.app/help/troubleshooting) - [Refund Policy](https://docs.octarine.app/help/refunds) -------------------------------------------------------------------------------- title: "Meet Octarine" description: "" source: "https://docs.octarine.app/getting-started/meet-octarine" -------------------------------------------------------------------------------- # Meet Octarine Welcome to Octarine! We're excited to have you. Octarine is a fast, private markdown editor designed to help you capture ideas, organize knowledge, and get things done. ![Image](https://octarine.app/images/new_landing.png) ## Key Features - [Distraction-Free Writing](../editor/basics.mdx): A clean WYSIWYG editor that stays out of your way, letting you focus on what matters—your ideas. - [Local-First & Private](../core-concepts/storing-data.mdx): Your notes are stored as plain markdown files on your device. No cloud lock-in, no subscription required for core features. - [Daily Desk](../daily-desk/index.mdx): Start each day with a dedicated space for tasks, notes, and quick capture. Stay organized without the overhead. - [AI-Powered Assistance](../working-with-ai/writing-assistant.mdx): Get help with writing, summarization, and more using your preferred AI provider—local or cloud-based. - [Powerful Search](../core-concepts/workspace-search.mdx): Find anything instantly with workspace-wide search, including full-text search across all your notes. - [Flexible Organization](../organization/tree.mdx): Use folders, tags, properties, and views to organize your notes the way you think. ## Join the Community Octarine is built with care, and we love hearing from our users. Connect with us to share feedback, report issues, or suggest new features. - [Join Discord](https://octarine.app/discord) - [Twitter / X](https://octarine.app/twitter) - [Request Features or Report Bugs](https://octarine.app/issues) -------------------------------------------------------------------------------- title: "Installation" description: "Platform-specific setup instructions for Octarine" source: "https://docs.octarine.app/getting-started/installation" -------------------------------------------------------------------------------- # Installation ## Download Octarine Head over to the [releases page](https://octarine.app/releases) and pick the version that matches your operating system. ## macOS ### Standard Installation 1. Download the `.dmg` file for your Mac: - **macOS (ARM)** for Apple Silicon Macs (M1/M2/M3/M4) - **macOS (Intel)** for older Intel-based Macs 2. Open the downloaded `.dmg` file 3. Drag the Octarine icon to your Applications folder 4. Eject the disk image 5. Launch Octarine from your Applications folder After the first manual installation, Octarine will periodically check for updates and install them automatically. ## Windows ### Standard Installation 1. Download the `.msi` installer 2. Run the installer file 3. If you see a blue security screen warning, click **Run Anyway** (the Windows version isn't notarized yet because the process is tricky and expensive, but it's completely safe) 4. Follow the on-screen instructions and choose your installation location 5. Launch Octarine from the Start menu After the first manual installation, Octarine will periodically check for updates. > On Windows, you might see the standard "repair/upgrade" installation prompt during future updates. ## Linux Octarine ships in multiple formats for Linux: AppImage, RPM, TAR, Debian, and Arch Linux. ### AppImage (Recommended) The AppImage version supports automatic updates. Here's how to install it: 1. Download the AppImage file 2. Open a terminal in the directory where you downloaded the file 3. Make it executable: ```bash chmod +x Octarine__amd64.AppImage ``` 4. Run the app: ```bash ./Octarine__amd64.AppImage ``` ### Other Formats For RPM, DEB, TAR, or Arch packages, follow the standard installation process for your distribution. Note that these formats may not support automatic updates—you'll need to manually download new versions from the [releases page](https://octarine.app/releases). ### Troubleshooting **Wayland users with RPM:** If you're running into issues on Wayland, try forcing the X11 backend and disabling hardware compositing with these environment variables: ```bash GDK_BACKEND=x11 LIBGL_ALWAYS_SOFTWARE=1 WEBKIT_DISABLE_COMPOSITING_MODE=1 octarine ``` -------------------------------------------------------------------------------- title: "Updating Octarine" description: "How Octarine keeps itself up to date" source: "https://docs.octarine.app/getting-started/updating" -------------------------------------------------------------------------------- # Updating Octarine Octarine is designed to keep itself up to date automatically. You'll always be running the latest version with minimal effort. ## Auto-updates By default, Octarine checks for updates and downloads them automatically. The following installation packages support automatic updates: - Mac `.dmg` - Windows `.msi` - Linux `.AppImage` When an update is available, you'll see a small "Update Available" button in the breadcrumb at the top-right of the app. Click it, and Octarine will download the update, install it, and restart automatically. > On Windows, you might see the standard "repair/upgrade" installation prompt during the update process. If you're on a Linux package that doesn't support auto-updates (RPM, DEB, TAR, or Arch), you'll need to manually download the latest version from the [releases page](https://octarine.app/releases). ## How to check for updates Octarine checks for updates every 24 hours automatically. To check manually: 1. Open the Command Palette (`Cmd/Ctrl + K`) 2. Type and select **Check for updates** Alternatively, click the **Check for updates** option in the Help menu (the `?` icon in the bottom-right corner). ## How to check your current version To see which version of Octarine you're running: 1. Open the Command Palette (`Cmd/Ctrl + K`) 2. Type and select **About Octarine** ## Rolling back an update Rolling back to a previous version isn't currently supported. If you encounter issues with a new update, please report it on the [Feedback Tracker](https://github.com/rajatkulkarni95/octarine-feedback/issues) so it can be addressed. -------------------------------------------------------------------------------- title: "Uninstalling Octarine" description: "How to remove Octarine from your system" source: "https://docs.octarine.app/getting-started/uninstalling" -------------------------------------------------------------------------------- # Uninstalling Octarine This guide covers how to uninstall Octarine on different operating systems. ## macOS 1. Quit Octarine if it's running 2. Open Finder and go to your Applications folder 3. Drag Octarine to the Trash (or right-click and select "Move to Trash") 4. Empty the Trash ### Removing User Data (Optional) To completely remove all Octarine configuration files and data: 1. Open Finder 2. Press `Cmd + Shift + G` to open "Go to Folder" 3. Delete the following directory if it exists: - `~/Library/Application Support/Octarine` ## Windows 1. Quit Octarine if it's running 2. Open Settings (`Windows key + I`) 3. Go to **Apps** > **Installed apps** (or "Apps & features" on Windows 10) 4. Search for "Octarine" 5. Click the three dots menu next to Octarine and select **Uninstall** 6. Follow the prompts to complete the uninstallation Alternatively: 1. Open the Start menu 2. Right-click on Octarine 3. Select **Uninstall** ### Removing User Data (Optional) To completely remove all Octarine configuration files and data: 1. Press `Windows key + R` to open Run 2. Type `%APPDATA%` and press Enter 3. Delete the `Octarine.app` folder if it exists ## Linux ### AppImage Simply delete the AppImage file you downloaded. ### Other Formats For packages installed via your distribution's package manager, use the appropriate uninstall command: **Debian/Ubuntu:** ```bash sudo apt remove octarine ``` **Fedora/RPM:** ```bash sudo dnf remove octarine ``` **Arch Linux:** ```bash sudo pacman -R octarine ``` ### Removing User Data (Optional) To completely remove all Octarine configuration files and data, delete the following directory: ```bash rm -rf ~/.config/Octarine.app ``` ## Troubleshooting - **macOS/Windows:** Ensure Octarine is completely quit before attempting to uninstall. Check Activity Monitor (macOS) or Task Manager (Windows) for any running Octarine processes. - **All platforms:** If you want to start fresh while keeping Octarine installed, you can delete the configuration directories instead of uninstalling the application entirely. If you run into issues, please report them on the [Feedback Tracker](https://github.com/rajatkulkarni95/octarine-feedback/issues). -------------------------------------------------------------------------------- title: "Pro License" description: "Unlock additional features with a one-time Pro license purchase." source: "https://docs.octarine.app/getting-started/pro-license" -------------------------------------------------------------------------------- # Pro License Octarine is free to use, but if you want access to advanced features like AI integration, properties, and more, you can upgrade to Pro. It's a one-time purchase—no subscriptions, no recurring fees. Pay once and you're set for life. ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/pro_license.png) Check out everything included in Pro at https://octarine.app/pricing ### Early Access Pricing Octarine uses an early access pricing model, kind of like Steam Early Access games. Here's how it works: The current price is $60 USD (local taxes may apply). As new Pro features get added, the price goes up—but if you buy now, you lock in this price forever and get all future Pro features included. No extra charges, no upgrades to buy. Just one payment, lifetime access. ### Activating Your License Once you've purchased a Pro license, activating it is quick. Click the `Upgrade to Pro` button in Octarine, enter your license key, and the Pro features unlock immediately. ### Deactivating Your License Need to switch devices? You can deactivate your license from a device in two ways: Go to `Settings → Pro` and press **Deactivate License**, or use the LemonSqueezy dashboard link that came in your order email to manage devices from there. > A Pro license works on 3 devices at the same time. If you want to activate it on a 4th device, just deactivate it from one of the original 3 first. -------------------------------------------------------------------------------- title: "Workspaces" description: "Managing separate work contexts and note collections" source: "https://docs.octarine.app/core-concepts/workspaces" -------------------------------------------------------------------------------- # Workspaces ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/workspaces.png) A workspace is a folder on your device that holds all your notes, templates, attachments, and settings. Create as many as you need — useful for keeping work and personal content separate. When you first open Octarine, you'll be prompted to create a workspace before using the app. ## Creating a Workspace 1. Click the Workspace Switcher (your workspace name) in the top-left corner 2. Select **Create Workspace** 3. Enter a name (changeable later) 4. Choose a folder location or paste a path 5. Pick an identifying color 6. Click **Create** This creates a new folder at your chosen location with the workspace name. **Using an existing folder:** Toggle **Use an existing folder?** during creation to point to a folder you already have instead of creating a new one. **Cloning settings:** Copy settings from an existing workspace by selecting one from the **Use settings from an existing workspace** dropdown. Useful when you want to share API keys and editor preferences but keep notes separate. > Git-related settings aren't carried over when cloning. ## Switching Workspaces - Click the Workspace Switcher and select a workspace, or - Use the Command Bar: `Cmd/Ctrl + K → Switch Workspace` ## Workspace Settings Each workspace has its own settings, so you can configure them independently. Change the workspace name or color anytime—the name change doesn't affect the actual folder name on disk. ## Deleting a Workspace Go to **Settings → Danger** and type the workspace name to confirm. This removes Octarine's settings and configurations for that workspace but doesn't delete your notes or the folder from your device. -------------------------------------------------------------------------------- title: "Split panes & Tabs" description: "" source: "https://docs.octarine.app/core-concepts/panes-and-tabs" -------------------------------------------------------------------------------- # Split panes & Tabs Nearly everything in Octarine is a tab. Notes, Graph View, and Ask Octarine all open as tabs instead of individual entities, enabling a flexible multi-document workspace with both horizontal and vertical split pane layouts. ### Tab Types and States Each tab in Octarine has specific properties that define its behavior: - **Focused tab**: The tab you're currently editing or interacting with. Only one tab can be focused at a time across all panes. Identified by an accent-colored border at the top - **Active tab**: Each pane has one active tab - the currently visible tab in that pane. Shows a grey border on top when not focused - **Dirty tab**: Temporary tabs opened from the file tree, calendar, or meta sidebar links. These tabs are replaced when opening another file the same way. Identified by italic title text and a dot beside the name - To make a dirty tab permanent: right-click and select **Protect from Replacement** or start typing in the editor - Tabs opened via `Cmd/Ctrl + P`, `Cmd/Ctrl + T`, doclinks, or **Open in new tab** are permanent by default ### Creating and Managing Panes Split your workspace to view multiple documents simultaneously: - **Horizontal split**: `Cmd/Ctrl + \` - Splits the current tab horizontally - **Vertical split**: `Cmd/Ctrl + Shift + \` - Splits the current tab vertically - **Move tabs between panes**: - Drag tabs directly from one pane to another - Right-click a tab and use **Split** (duplicates to new pane) or **Move** (transfers between panes) - **Pane navigation**: Each pane includes Back/Forward buttons that maintain a history of viewed tabs ### Tab Operations Working with tabs within each pane: - **New tab**: `Cmd/Ctrl + T` - Opens a new empty tab in the current pane - **Cycle tabs**: `Cmd/Ctrl + Tab` - Cycles through all tabs in the current pane - **Jump to tab**: `Cmd/Ctrl + [1-9]` - Jumps directly to a numbered tab position - **Close tab**: `Cmd/Ctrl + W` - Closes the current tab - **Reorder tabs**: Drag tab headers horizontally within a pane to rearrange ### Navigation History Each pane maintains its own navigation history: - **Back button**: Returns to the previously viewed tab in that pane - **Forward button**: Moves forward through the navigation history - **Closed tab recovery**: Closing a tab and pressing Back will restore it > All the navigation options are also available via the `Cmd/Ctrl + K` bar. -------------------------------------------------------------------------------- title: "Storing Data" description: "How Octarine interacts and stores data for settings and notes" source: "https://docs.octarine.app/core-concepts/storing-data" -------------------------------------------------------------------------------- # Storing Data Octarine stores your notes as Markdown-formatted plain text files in a workspace. A workspace is a folder on your file system. Octarine continously *watches* your workspace folder for an external changes, and makes instant reflection of it in the app. Given that you are working with folder and plain text files, these can be edited by any external text editor of your choosing. A workspace folder can be created anywhere on your device, including in cloud drives like iCloud, Dropbox local folders. ### Config File - Octarine stores major settings in a global `.store.dat` file and follows a `json` format. | OS | Path | | --- | --- | | Mac | \~/Library/Application Support/Octarine | | Windows | C:\\Users\\username\\AppData\\Roaming\\Octarine.app | | Linux | \~/.config/Octarine.app | - These hold information about what workspaces are currently created and at what locations, and their settings — themes, editor, git and more - These also hold information about your pro license keys, and AI provider keys. > This is never synced with any service (GitSync, iCloud) or never reaches any servers. This is kept completely on device for security purposes. > > Please ensure you don’t make any changes or delete this without creating a backup, since deletion could have irreversible changes. ### IndexedDB - Octarine remains fast by loading all data about the workspace into different tables in an indexeddb in the browser engine that powers the app. - These included folder structure, metadata about notes, pinned/locked notes, ask octarine and writing assistant chats. - The metadata and files are kept in sync with the local file system to prevent any mismatches. > You can refresh a database by using `Cmd/Ctrl + K → Refresh Database` to force the database to re-index everything. > > Note: Ask Octarine and Writing Assistant history as well as Recently Viewed will be wiped clean and can’t be recovered when this is done. Be careful. -------------------------------------------------------------------------------- title: "Workspace Search" description: "Quickly find and navigate to any note in your workspace" source: "https://docs.octarine.app/core-concepts/workspace-search" -------------------------------------------------------------------------------- # Workspace Search Workspace Search helps you find notes instantly by searching through titles, content, and tags. Located at the top of the sidebar, just below the workspace selector, it's always within reach. ### Opening Search - **Click** the search field in the sidebar, or - **Press** `Cmd/Ctrl + Shift + F` from anywhere ### How It Works As you type, results appear in real time. Click any result to open the note—Octarine will automatically launch in-file search with your query, highlighting all matches within the document. **Search options:** - **Full-text search** — Search across note titles and content - **Tag search** — Use hashtags to filter by tags (e.g., `#project`) - **Regex** — Enable regular expressions for advanced pattern matching - **Match word** — Restrict results to complete word matches (compatible with regex) - **Match case** — Enable case-sensitive matching (compatible with regex) - **Search in** — Narrow your search to specific areas like Daily Desk or Templates ### Understanding Results Results display the note title with matching terms highlighted, along with a content preview showing where your query appears. Opening a result preserves your search filters, so in-file search continues with the same criteria. **Keyboard navigation:** - `↑` `↓` — Move through results - `Enter` — Open selected note - `Escape` — Clear search and dismiss results -------------------------------------------------------------------------------- title: "Graph" description: "Visualise your notes and their connections in a 2d graph" source: "https://docs.octarine.app/core-concepts/graph" -------------------------------------------------------------------------------- # Graph The graph view turns your workspace into an interactive map of ideas. Every note becomes a node, and the links between them become visible connections—giving you a bird's-eye view of how your thoughts relate to each other. ### The Basics Think of the graph as a constellation of your notes. Each dot represents a markdown file, and the lines between them show where notes reference each other through wikilinks. The graph includes three types of nodes: regular notes, daily/weekly entries, and tags—each visually distinct so you can tell them apart at a glance. What makes it interactive is the physics simulation running behind the scenes. Connected notes naturally cluster together, and you can drag nodes around to reorganize things however you like (though it won't save your layout—it's just for exploring during that session). ### Navigating the Graph Using the graph is intuitive. Click any node to open that note in a new tab. Hover over a node to see its title and watch its immediate connections light up. You can zoom in to focus on a specific cluster of related notes, or zoom out to see your entire knowledge network at once. The graph uses force-directed layout algorithms to position everything automatically. Notes that reference each other pull closer together, while unrelated notes drift apart. It's like watching your ideas organize themselves. ### Searching the Graph Need to find a specific note or connection quickly? Use the graph search feature by clicking the magnifying glass icon at the top right or pressing `Cmd/Ctrl + F`. When you search, matching notes are highlighted and zoomed into view while other nodes dim into the background. If your search finds exactly one match, the graph will zoom in maximally on that note, making it easy to see its immediate connections and context. ### Understanding Connections The graph reveals relationships you might not notice otherwise: Solid lines connect notes that link to each other directly through `[[internal links]]`. Notes that share common tags cluster around those tags, showing thematic relationships. And isolated nodes—those lonely dots floating by themselves—are orphan notes that haven't been linked to anything yet. They're a good reminder of content that might need connecting. The more two notes reference each other, the stronger their visual connection tends to be. It's a simple but powerful way to see which ideas are most tightly woven together in your workspace. -------------------------------------------------------------------------------- title: "Basics" description: "Core editing features and functionality" source: "https://docs.octarine.app/editor/basics" -------------------------------------------------------------------------------- # Basics The editor is where you'll spend most of your time in Octarine, transforming thoughts into well-structured markdown documents. With its WYSIWYG approach, you see your formatted text immediately without dealing with raw markdown syntax or jumpy live previews. All content is stored in markdown, and supports all markdown shortcuts. Please learn more about markdown [here](https://www.markdownguide.org/basic-syntax/). > Octarine is built using Tiptap and Prosemirror. It stores data as markdown in content, but it isn't a markdown editor. Rendered data will always be rich text with no way to switch to a markdown view. ### Writing and Editing Octarine's editor operates like any modern word processor—simply click and start typing. The cursor position, text selection, and editing behaviors work exactly as you'd expect from standard text editing applications. - **Auto-save**: Changes are saved automatically as you type, ensuring your work is never lost. - **Undo/Redo**: Press `Cmd/Ctrl + Z` to undo and `Cmd/Ctrl + Shift + Z` to redo changes. - **Find and Replace**: Use `Cmd/Ctrl + F` to search within the current note. > Markdown doesn't have a concept of blank lines. While Octarine may show multiple blank lines on return/enter being pressed, they aren't stored as such due to markdown rules, and will be reverted on a refresh. This is an unfortunate limitation of the app. Enter/Return creates a new paragraph, with `Shift+Enter` to create a break line (can only have one at a time). ### Inserting Content Beyond regular text, you can insert various content types: - **Images**: Drag and drop image files directly into the editor, or paste from clipboard - **Code blocks**: Insert formatted code blocks with syntax highlighting for over 70 languages - **Tables**: Create structured data tables with automatic cell navigation - **Horizontal rules**: Insert dividers with `---` on a new line > All editing operations maintain proper markdown structure behind the scenes, ensuring your notes remain portable and compatible with other markdown tools. -------------------------------------------------------------------------------- title: "Formatting" description: "Markdown syntax and text formatting options" source: "https://docs.octarine.app/editor/formatting" -------------------------------------------------------------------------------- # Formatting ### Formatting Octarine gives you several ways to format your text. If you're a Markdown pro, you can use the syntax directly. But if you prefer a more visual approach, there are shortcuts built right in. **Quick ways to format:** - **Slash Command** — Press `/` to open a searchable dropdown with all formatting options, then hit `Enter` to apply what you need - **Bubble Menu** — Select any text and a floating toolbar will appear right above it, giving you quick access to common formatting options > You can customize the default highlight color in **Settings → Editor → Default Highlight Color**. This sets the color applied when you use the `Cmd/Ctrl + Shift + H` keyboard shortcut. --- Here's a complete reference for all the Markdown syntax Octarine supports, along with keyboard shortcuts to speed things up: | Formatting Type | Markdown Syntax | Keyboard Shortcut | | --- | --- | --- | | Heading 1 | `# text` | Cmd/Ctrl + Option/Alt + 1 | | Heading 2 | `## text` | Cmd/Ctrl + Option/Alt + 2 | | Heading 3 | `### text` | Cmd/Ctrl + Option/Alt + 3 | | Bold | `**text**` | Cmd/Ctrl + B | | Italics | `*text*` | Cmd/Ctrl + I | | Quote | `> text` | None | | Inline Code | `` `text` `` | Cmd/Ctrl + E | | Strikethrough | `~~text~~` | Cmd/Ctrl + Shift + S | | Underline | `~text~` | Cmd/Ctrl + U | | Bullet List | `- text` or `* text` | Cmd/Ctrl + Shift + 8 | | Numbered List | `1. text` | Cmd/Ctrl + Shift + 7 | | Task List | `[] text` | Cmd/Ctrl + Shift + 9 | | Paragraph | `text` | Cmd/Ctrl + Shift + 0 | | Web Link* | `[Link](http://example.com)` | None | | Web Image* | `![Image](http://example.com/image.png)` | None | | Codeblock | ```` ``` text ```` | Cmd/Ctrl + Option/Alt + C | | Divider | `—-` | None | **Note:** Web links and images need to be typed in their complete Markdown syntax ending with `)` to be parsed automatically. If you type the brackets `[]()` first and then try to fill them in, it won't render properly—so make sure to complete the syntax in one go. -------------------------------------------------------------------------------- title: "Doclinks" description: "Connecting notes and attachments with wikilinks" source: "https://docs.octarine.app/editor/doclinks" -------------------------------------------------------------------------------- # Doclinks Doclinks (also known as wikilinks) are how you connect notes and attachments in Octarine. They're the foundation for building a web of interconnected notes—and the only way for notes to appear in the [Graph View](/docs/core-concepts/graph). ## Creating Doclinks There are a couple of ways to create a doclink: 1. **Type `[[` and `]]`** — Wrap any text with double brackets to create a link directly 2. **Use the search command** — Type `[[` to open a search that finds notes, attachments, and dates as you type 3. **Drag and drop** — Drag any note from the file tree directly into the editor to create a wikilink at the cursor position The search command finds: - **Note titles and folder names** — Link to any note in your workspace - **Media attachments and external files** — Embed images, videos, and other files using the same `[[filename]]` syntax - **Natural language dates** — Type something like `Dec5` to find or create a Daily Desk note for December 5, 2025 Use arrow keys to navigate results and press Enter to confirm your selection. ## How Doclinks Appear Note doclinks appear as clickable links that show a preview when you hover over them. Media attachments are embedded directly in your note. By default, doclinks display the full path (excluding the workspace root). To show only the shortest unique name, change this in `Settings → Editor → Linked Note Display`. ## Creating Notes from Doclinks The `[[` command lets you create new notes on the fly. If nothing matches what you've typed, you'll see: - **Create a note in this folder** — Creates the note alongside your current note - **Create a note at root** — Creates the note at the workspace root This lets you build out your notes organically without breaking your flow. ## Automatic Link Updates When you rename or move a file, Octarine automatically updates all incoming and outgoing doclinks. You'll never have broken links. ## Markdown Syntax Under the hood, doclinks use standard wikilink syntax: - Note doclinks: `[[Documentation/Formatting]]` - Attachments (with file extensions): `[[Screenshot 23.05.png]]` -------------------------------------------------------------------------------- title: "Bubble Menu" description: "Quick formatting toolbar when selecting text." source: "https://docs.octarine.app/editor/bubble-menu" -------------------------------------------------------------------------------- # Bubble Menu ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/bubble-menu.png) The bubble menu is your quick-access formatting toolbar that appears when you select text. It puts the most common formatting options right at your fingertips. ### How to Use the Bubble Menu 1. **Select any text** in your note by clicking and dragging 2. The bubble menu automatically appears above your selection 3. Click any button to apply formatting 4. The menu disappears when you click elsewhere ### Available Formatting Options The bubble menu includes these formatting tools: - All Basic formatting tools - **Highlight** - Apply background highlighting - This is a dropdown that allows you to set a color for the highlight. Clicking on the same color on a highlighted text, de-highlights it. - **Add to Chat** - Adds the selected text to the Writing Assistant as context. - **Create linked note from selection** - Creates a note with the text selected (if it doesn’t contain invalid characters) and auto links it. ### When the Bubble Menu Won't Appear The bubble menu doesn't appear when: - You're in a code block - You're editing a table cell > Some bubble menu buttons will be hidden when under bullet list, numbered list or task lists like - Header, Callout, Codeblock, Quote since those can’t be assigned to a list item. -------------------------------------------------------------------------------- title: "Attachments" description: "Managing images, videos, and other media files" source: "https://docs.octarine.app/editor/attachments" -------------------------------------------------------------------------------- # Attachments Octarine makes it easy to enrich your notes with images and videos. Whether you're documenting a project, creating a visual guide, or just adding some personality to your notes, attachments work seamlessly. > All your media attachments are kept organized in a `.attachments` folder inside your workspace. If you don't see it in Finder, you may need to enable viewing hidden folders. ### What You Can Attach Octarine supports common image formats like `png`, `jpg`, `jpeg`, `gif`, `svg`, and `webp`, plus video formats including `mp4`, `webm`, and `mov`. Pretty much anything you'd expect to work does. ### Adding Attachments to Your Notes There are a few ways to get media into your notes, depending on what feels most natural: **Adding a new attachment:** - Type `/` and select "Insert Media" to open a file picker and choose an image or video from your computer - Or just drag and drop a file directly from Finder into your note—it'll be added automatically **Reusing an existing attachment:** - Type `[[` to see a list of all attachments already in your workspace, then pick the one you need - You can also drag attachments from the attachments popover directly into your note > Want to resize an attachment? Just grab the resize handle and adjust it to fit. The width gets stored right in the wikilink format, like this: `[[Image.png|450]]`, where `450` is the width in pixels. ### Managing Unused Attachments Over time, you might accumulate attachments that are no longer referenced in any of your notes. Octarine makes it easy to clean these up. Open the attachments popover and look for files that aren't being used. You can delete any unused attachments with a single click, keeping your workspace tidy and freeing up storage space. -------------------------------------------------------------------------------- title: "Tables" description: "Create and manage tables with powerful editing tools" source: "https://docs.octarine.app/editor/tables" -------------------------------------------------------------------------------- # Tables Tables in Octarine aren't just static grids—they support rich formatting and come with a full toolbox for organizing and manipulating data without the hassle of manual copy-pasting. ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/doc_tables.png) ### Creating Tables You can create a table the traditional way with Markdown syntax: ```markdown | Header 1 | Header 2 | Header 3 | | --- | --- | --- | | Cell 1 | Cell 2 | Cell 3 | | Cell 4 | Cell 5 | Cell 6 | ``` Or just press `/` and type "table" to insert one instantly. ### Table Toolbox Click on any table and the toolbox pops up, giving you quick access to everything you need: **Row operations** let you insert rows above or below the current one, move rows up or down, copy a row, or delete it entirely. **Column operations** work the same way—insert columns to the left or right, move them around, copy them, or delete them. And if you need to work with the whole table, you can copy it or delete it in one go. ### Keyboard Shortcuts If you prefer keeping your hands on the keyboard, here are the shortcuts: - `Option/Alt + Up Arrow` — Move the current row up - `Option/Alt + Down Arrow` — Move the current row down - `Option/Alt + Left Arrow` — Move the current column left - `Option/Alt + Right Arrow` — Move the current column right ### A Few Tips Tables support all the usual formatting—bold, italics, links, inline code, whatever you need. The toolbox makes restructuring data quick and painless, and the keyboard shortcuts let you reorganize things without breaking your flow. -------------------------------------------------------------------------------- title: "Code Blocks" description: "Syntax-highlighted code blocks with advanced features" source: "https://docs.octarine.app/editor/code-blocks" -------------------------------------------------------------------------------- # Code Blocks Code blocks let you include formatted code snippets in your notes with syntax highlighting. Octarine supports over 300 programming languages and provides helpful editing features to make working with code easier. ### Creating a Code Block There are several ways to insert a code block: - Type `/` and select "Code Block" from the menu - Use the markdown syntax: type three backticks ` ``` `, press Enter, then close with three more backticks - Use the keyboard shortcut: `Cmd/Ctrl + Option/Alt + C` ### Selecting a Language After creating a code block, click the language selector at the top-left corner to choose from over 300+ supported languages. The selector is searchable, so you can quickly find the language you need. Once you select a language, syntax highlighting is applied automatically to make your code more readable. ### Editing Code Code blocks support helpful editing features: - **Tab/Shift+Tab** — Indent and outdent lines of code - **Copy button** — Click the copy icon to copy the entire code block to your clipboard ### Formatting Unlike the rest of your note, code blocks preserve: - Exact spacing and indentation - Multiple consecutive spaces - Line breaks exactly as typed This ensures your code appears exactly as you write it, without any automatic formatting changes. -------------------------------------------------------------------------------- title: "Mermaid" description: "Generate diagrams via code" source: "https://docs.octarine.app/editor/mermaid" -------------------------------------------------------------------------------- # Mermaid Need to visualize a process or create a diagram? Mermaid lets you do that with just text—no design tools required. Write a simple description, and Mermaid turns it into a professional-looking diagram right in your note. ## Creating a Mermaid Diagram There are a few ways to add one: Type `/mermaid` and press Enter, or create a code block and set the language to `mermaid`. You can also use triple backticks with `mermaid` as the language if you're writing in Markdown. And if you want a quick start with an example, just press `Cmd/Ctrl + Shift + M`. ## Example Here's a basic flowchart to show you how it works: ```mermaid graph TD A[Start] --> B{Decision} B -->|Yes| C[Do this] B -->|No| D[Do that] C --> E[End] D --> E ``` That's it—Mermaid handles the rest and renders it for you. ## Learn More Mermaid supports flowcharts, sequence diagrams, class diagrams, and a lot more. For the full syntax and advanced features, check out the official [Mermaid documentation](https://mermaid.js.org/intro/). -------------------------------------------------------------------------------- title: "LaTeX" description: "Support for mathematical functions" source: "https://docs.octarine.app/editor/latex" -------------------------------------------------------------------------------- # LaTeX Octarine supports LaTeX for mathematical notation and scientific formulas, rendering them beautifully inline with your text. Perfect for academic writing, technical documentation, and mathematical notes. > By default latex rendering is turned OFF since it's perf intensive. To turn on, head over to `Settings -> Editor` and toggle `Render Math Equations` on. ### Inline Math To include math within a line of text, just wrap your formula in single dollar signs. For example, `$E = mc^2$` renders as Einstein's famous equation inline. More complex expressions work too—something like `$\\int_0^\\infty e^{-x^2} dx = \\frac{\\sqrt{\\pi}}{2}$` will render beautifully right alongside your writing. ### Quick Reference Here are some of the most commonly used LaTeX symbols and how to write them: **Basic notation:** - Superscript: `x^2` → x² - Subscript: `x_1` → x₁ - Fractions: `\frac{a}{b}` → a/b - Square root: `\sqrt{x}` → √x - Sum: `\sum_{i=1}^n` → Σ - Integral: `\int_a^b` → ∫ **Greek letters:** - `\alpha, \beta, \gamma` → α, β, γ - `\Delta, \Omega` → Δ, Ω - `\pi, \theta, \phi` → π, θ, φ **Mathematical operations:** - `\times` → × - `\div` → ÷ - `\pm` → ± - `\leq, \geq` → ≤, ≥ - `\neq` → ≠ - `\approx` → ≈ Here's how it looks when rendered in the app: ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/latex.png) -------------------------------------------------------------------------------- title: "Callout" description: "Visual elements to draw attention to a blockquote." source: "https://docs.octarine.app/editor/callout" -------------------------------------------------------------------------------- # Callout Need to make something stand out? Callouts are visual blocks designed to highlight important information—whether it's a tip, a warning, or just a key point you want readers to notice. ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/callout.png) ### Creating a Callout Adding one is quick. Just type `/callout` and pick the type you want from the list. Or, if you've already got text selected, click the callout icon in the Bubble Menu and it'll wrap your text for you. ### Types of Callouts Octarine gives you five callout types, each with its own icon and color to match the vibe: - **Info** `![INFO]` - **Warning** `![WARNING]` - **Error** `![ERROR]` - **Success** `![SUCCESS]` - **Tip** `![TIP]` You can change the type anytime using the dropdown that appears when you click on the callout. ### Syntax Here's what it looks like under the hood: ```plaintext > [!TIP] > You can nest other formatting inside callouts, including lists, links, and even code blocks. ``` Pretty simple—just a blockquote with a special tag at the top. -------------------------------------------------------------------------------- title: "Heading Font" description: "Customise fonts for H1-H6" source: "https://docs.octarine.app/editor/heading-font" -------------------------------------------------------------------------------- # Heading Font Heading Font lets you customize the typeface used for all headings (H1-H6) in your workspace, creating visual hierarchy and giving your documents a distinctive look. You can choose a different font from your editor text or keep them matching. ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/heading_font.png) ## Changing Your Heading Font Here's how to customize your heading font: 1. Open **Settings** 2. Go to the **Editor** tab 3. Find the **Heading font** dropdown 4. Pick the font you like Once you've selected a font, you can also adjust its **Font Weight** from the same settings tab. Depending on the font you've chosen, you'll see options like Light, Regular, Medium, Semibold, Bold, and Black. Not all fonts support every weight, so the available options will vary based on your selection. ## Available Font Options Octarine gives you plenty of options: - **Same as editor font** — Keep headings and body text consistent - **Bundled fonts** — Choose from Inter, Karla, iAQuattro, Uncut, Roboto Mono, Space Mono, Hand, or Avenir - **System fonts** — Use any font installed on your computer The dropdown shows a preview of each font in its actual typeface, so you can see exactly what you're getting before you commit. ## How It Works Once you've chosen a heading font, it applies to all headings (H1 through H6) across your entire workspace. Your body text stays the same, so you can create clear visual hierarchy between headings and content. > Heading font is a Pro feature. Want a classic look? Try pairing a serif heading font with a sans-serif body—it's a timeless combination. -------------------------------------------------------------------------------- title: "Collapsible Headings" description: "Collapse and expand sections to navigate long notes" source: "https://docs.octarine.app/editor/collapsible-headings" -------------------------------------------------------------------------------- # Collapsible Headings Long notes with multiple sections can be easier to navigate when you can collapse content under headings. Octarine lets you fold sections away to focus on what matters. ### How to Collapse Headings Click the collapse icon (arrow) that appears next to any heading to hide or show the content beneath it: - **Collapse** — Click the down arrow (▼) to hide all content under that heading - **Expand** — Click the right arrow (▶) to reveal the content again - The collapsed state is saved with the note and persists across sessions This works with all heading levels (H1 through H6). When you collapse a heading, everything beneath it—including subheadings—gets hidden until you expand it again. ### Hierarchical Collapsing Collapsing follows the heading hierarchy, so when you collapse a higher-level heading, all lower-level headings beneath it are also hidden: - If you collapse an **H1**, all H2-H6 headings under it will be collapsed until the next H1 - If you collapse an **H2**, all H3-H6 headings under it will be collapsed until the next H1 or H2 - If you collapse an **H3**, all H4-H6 headings under it will be collapsed until the next H1, H2, or H3 This makes it easy to hide entire sections and subsections at once. ### Keyboard Shortcuts For faster navigation without using the mouse: - `Option/Alt + Cmd/Ctrl + [` — Collapse the current heading section - `Option/Alt + Cmd/Ctrl + ]` — Expand the current heading section ### When to Use This Collapsible headings are particularly useful when: - Working with long documents that contain many sections - Focusing on one part of a note while editing - Getting an overview of a note's structure without scrolling - Presenting or reviewing documents section by section - Temporarily hiding reference material while writing ### Navigation with Collapsed Headings Even when sections are collapsed, you can still: - Use the [Outline Navigation](/note-management/outline-navigation) command to jump to any heading - Search for text within collapsed sections—Octarine will expand them automatically when showing results - View the full structure in the [Meta Sidebar](/note-management/meta-sidebar#outline) outline tab -------------------------------------------------------------------------------- title: "Text Color" description: "Apply a range of colors to paragraphs and headers" source: "https://docs.octarine.app/editor/text-color" -------------------------------------------------------------------------------- # Text Color Text Color allows you to apply vibrant colors to your text, making important words or phrases stand out in your documents. This is perfect for highlighting key terms, creating visual emphasis, or organizing information by color. ## Creating Colored Text You can apply color to your text in two ways: 1. **Bubble Menu**: Highlight the text you want to color, click the palette icon (🎨) in the Bubble Menu, and pick a color 2. **Markdown syntax**: Type `~🔴your text~` and replace the emoji with whichever color you want ## Available Colors Octarine gives you eight colors to work with: 🔴 | 🟠 | 🟡 | 🟢 | 🔵 | 🟣 | 🟤 | 🩷 Need to change a color? Just select the text and pick a different one from the palette dropdown. ## A Few Things to Know Text color doesn't play nicely with underline, highlight, or strikethrough—if you apply one of these, the color will be removed, and vice versa. But you can still combine colored text with **bold**, *italic*, and headers without any issues. > Text color is a Pro feature, and works great when combined with bold or italic formatting for extra visual impact. -------------------------------------------------------------------------------- title: "Focus Mode" description: "Write distraction-free with Focus Mode" source: "https://docs.octarine.app/editor/focus-mode" -------------------------------------------------------------------------------- # Focus Mode Focus Mode helps you concentrate on your writing by opening a dedicated, clean dialog that removes visual clutter. It's perfect for when you need to get into deep work without distractions from the rest of the interface. > Focus Mode is only available to users on the Pro License. ### Activating Focus Mode Enter Focus Mode by pressing `Cmd/Ctrl + Shift + L`. When you do, your current note opens in a clean, dedicated dialog. The sidebars stay in their current state—if they were open before, they'll remain open; if they were closed, they stay closed. To exit, simply close the dialog or press the shortcut again. Any edits you make are instantly synced back to the main editor. ### Dimming Options Focus Mode offers two dimming styles that you can configure in `Settings → Preferences`: **Sentence Mode** — Dims everything except the current sentence you're working on. This helps you focus on one thought at a time, making it easier to spot typos and refine your ideas line by line. **None** — No dimming at all. The entire note remains visible, giving you the benefits of a dedicated writing space without any visual restrictions. The dimming preference applies whenever you use Focus Mode, so pick the style that helps you concentrate best. Sentence mode has also been optimized for better performance, so it should feel smooth even in longer notes. ### What Works in Focus Mode Focus Mode is fully functional—you can use all the usual editing features: - Type `/` to open the command bar and insert blocks, media, or formatting - Type `[[` to create wikilinks and connect your notes - All keyboard shortcuts work normally - Your changes sync immediately with the main editor Focus Mode is designed to feel just like writing in the main editor, but with fewer distractions pulling your attention away. -------------------------------------------------------------------------------- title: "File Tree" description: "Hierarchical navigation for your notes and folders" source: "https://docs.octarine.app/organization/tree" -------------------------------------------------------------------------------- # File Tree ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/file_tree.png) The file tree is your primary navigation tool in Octarine, providing a hierarchical view of all notes and folders in your workspace. It offers quick access to your content while maintaining a clean, organized structure that mirrors your local file system. ### The Basics The file tree displays your workspace's folder structure in the left sidebar, showing all markdown files and directories. Since Octarine stores notes as standard markdown files on your local system, the file tree reflects the actual file organization on your disk. - **Real-time synchronization**: The file tree automatically updates when files are added, modified, or moved—whether through Octarine or external tools like Finder/Explorer or even other apps. - **Hierarchical organization**: Folders can be nested infinitely, allowing complex organizational structures - **Visual indicators**: Folders have icons attached to them, and a count showing the total amount of `notes` inside them (this includes notes in nested folders). ### Navigating the waters Navigate through your notes using these methods: - **Click** any note to open it in the editor - **Click** folder arrows to expand or collapse directories - Press `Cmd/Ctrl + Shift + E` to focus the tree, and then use: - **Use arrow keys** to move through the tree when focused - `Space` to open a note or expand/collapse a folder. - **Press** `Cmd/Ctrl + P` to open quick file navigation, which instantly updates the tree and centers on your selected note - The default sorting mechanism used is by `Filename (A - Z)` with directories always on top followed by notes. - You can change this by clicking on the sort icon in the tree's quick actions and choose one of the other sort methods. This is stored in the workspace configuration. > Sorting by Modified date is the most performance intensive sort since it needs to keep watching for changes continously in the file tree to move notes/folders up and down. Suggested to use it only if you want it really, and can bear with Octarine eating a few more resources (not much) than it does. ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/context_menu.png) ### Creating Content The file tree toolbar provides quick actions for content creation: - **New Note button**: Creates a new markdown note called `Untitled` at the root of your workspace by default. - Hold down `Cmd/Ctrl` while clicking to create the note in the same folder as your currently open note instead. > Note: If an existing note named *Untitled* already exists in the folder, a number suffix is added starting with `1` and checking until it finds a unique name — `Untitled 1` is created as the new note. - **New Folder button**: Creates a new directory called `New Folder` at the root of your workspace by default. - Hold down `Cmd/Ctrl` while clicking to create the folder in the same folder as your currently open note instead. - Same naming rules apply as new notes—if `New Folder` exists, it adds a number suffix. - **Keyboard Shortcuts**: Press `Cmd/Ctrl + N` for new note and `Cmd/Ctrl + Shift + N` for new folder. - **Drag from Finder**: You can drag markdown files directly from Finder/Explorer onto the tree to add them to your workspace. Hovering over a folder while dragging will add the file to that folder. - Quickly duplicate an existing note via the context menu or by pressing `Cmd/Ctrl + C` when the note is focused in the tree. - This creates a `_copy_` note in the same folder with the same content. > You can create a note/folder explicitly at root or in the current folder via the `CMD/Ctrl + K` bar as well. ### Moving Content - Hold a note/folder to drag it onto another folder to move it there. - Potential drop point have their backgrounds changed to the accent color to help identify the drop area. - If a potential drop area folder is collapsed, it's expanded after 200ms of you staying over the folder to help you drop it inside nested folders. - If you drop a note/folder over another note, then the drop point note's parent folder is assumed to be the target destination. ### Deleting Content - Delete a note/folder by either the context menu or pressing `Cmd/Ctrl + Backspace` when the content is focused in the tree. - This would show a confirmation dialog explaining you that there's no recovery for the deleted content (it doesn't go to the Bin/Recycle Bin, but rather is permanently deleted). ### Troubleshooting - If you ever notice that the file tree is misbehaving or not in line with the latest finder/explorer, and restarting the app doesn't solve it, you can trigger a hard refresh by pressing the `Refresh File Tree` icon in the tree's quick actions. - This will rebuild the database index with the latest finder details and ensure correctness. -------------------------------------------------------------------------------- title: "Tagging" description: "Organize and find notes with keywords" source: "https://docs.octarine.app/organization/tagging" -------------------------------------------------------------------------------- # Tagging Tags are keywords you attach to notes for quick filtering and discovery. They work across your entire workspace, making it easy to find related content no matter where it lives in your folder structure. ### Creating Tags Type `#` in the editor followed by your tag name. The tag command bar shows existing tags for quick selection, or just keep typing to create a new one. **Nested tags:** Use `/` to create hierarchies: - `#work` - `#work/projects` - `#work/projects/2024` When you create `#work/projects/2024`, Octarine automatically includes the parent tags `#work` and `#work/projects`—so you can filter by any level without creating separate tags. ### Using Tags Click any tag in the editor to search for it. This opens the search drawer with all notes containing that tag. ### Tags View Click the tag icon in the top-right corner to see all tags in your workspace. Each tag shows how many notes reference it. Click any tag to search for it across your workspace. -------------------------------------------------------------------------------- title: "Templates" description: "Create reusable content structures for consistent note-taking" source: "https://docs.octarine.app/organization/templates" -------------------------------------------------------------------------------- # Templates Templates in Octarine allow you to create reusable blocks of content that can be quickly inserted into any note. Unlike page-level templates in other apps, Octarine treats templates as insertable blocks, giving you the flexibility to use multiple templates within a single note. ### The Basics Templates are stored in a dedicated `.templates` folder in your workspace. Each template is a standard markdown file containing the content structure you want to reuse. When applied, the template's content is inserted at your cursor position, not as a new note. - **Block-based approach**: Templates represent content blocks, not entire pages - **Multiple templates per note**: Use several templates to build different sections of the same note - **Standard markdown files**: Templates are regular `.md` files you can edit with any text editor - **Instant insertion**: Template content appears immediately at your cursor location ### Creating Templates Navigate to template creation through these methods: - **Click** the Templates icon in the sidebar to open the Templates view - Press `New template` When creating a template: - Give it a descriptive name that explains its purpose - Include any markdown formatting, headers, lists, or task structures - Add placeholder text where variable content will go ### Template Variables Templates support inline variables that get replaced when the template is inserted or used to create a new note. Variables use double curly braces and can include an optional format for dates and times. Available variables: - `{{title}}`: Current note title (filename without `.md`) - `{{date}}`: Current date in `yyyy-MM-dd` - `{{date:FORMAT}}`: Current date with a custom date-fns format - `{{time}}`: Current time in `HH:mm` - `{{time:FORMAT}}`: Current time with a custom date-fns format > Format for date and time need to be in accordance with date-fns syntax. Please read about them in their [documentation](https://date-fns.org/v4.1.0/docs/format) Example: ```markdown # {{title}} Created: {{date:MMMM d, yyyy}} at {{time}} ``` Variables work in template body content, and they also resolve in template frontmatter when you create a new note from a template. ### Using Templates ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/insert_template.png) Apply templates to your notes using these methods: - On an empty line, press `/` and search for your template name The template content inserts at your current cursor position. You can then edit the inserted content as needed, replacing placeholders with actual information. ### Creating notes from templates Create a new note with content from a template pre-populated by using `CMD/Ctrl + K` and choose the `Create note from template` command with your template selected. Any property assigned to the template is also applied to the new note. -------------------------------------------------------------------------------- title: "Views" description: "Database-style views for organizing and filtering your notes" source: "https://docs.octarine.app/organization/views" -------------------------------------------------------------------------------- # Views Views are dynamic, database-style tables that display your notes based on filters, sorting rules, and custom columns. Think of them as smart saved searches that update automatically. > Views are only available to users on the Pro License. ## Getting Started Unlike the file tree which shows a static folder structure, views let you slice and organize notes by any criteria—dates, properties, tags, tasks, links, and more. **Common use cases:** - Track project notes by status, priority, and deadlines - Monitor all notes with pending tasks across your workspace - Find recently modified notes from the past week - Organize research notes by tags and linked sources - Create custom dashboards for different workflows ### Default Views Octarine creates three views automatically when you set up a workspace: - **Organised Notes** — All notes in your workspace's Notes folder, sorted by last modified date - **Pending Tasks** — Notes containing task checkboxes, showing task status and counts - **Recently Written** — Notes modified in the past 7 days with their linked notes > Views exclusively process frontmatter and metadata properties. Only tags defined in the properties panel are considered. Tags within the note's body or other content-based searches are currently not supported. ### Creating a View 1. Open Views from the sidebar or use `Cmd/Ctrl + K → Go to Views` 2. Click **+ Create View** in the Views panel 3. Name your view and optionally set an icon and color 4. Add filters to define which notes appear 5. Configure columns to display the data you need **Keyboard shortcut:** `g` `w` — Go to Views from anywhere --- ## Filters Filters define which notes appear in your view. Combine system fields and custom properties to create precise queries. ### Adding a Filter 1. Click the **Add filter** icon in the filter panel 2. Select a field (system or custom property) 3. Choose an operator (equals, contains, before, etc.) 4. Enter or select a value Multiple filters use AND logic—all conditions must match for a note to appear. ### System Fields Built-in metadata tracked by Octarine: | Field | Description | Type | | --- | --- | --- | | Name | Note filename | string | | Path | Full file path | string | | Location | Daily, Weekly, Templates, or Notes folder | list | | Created Date | When the note was created | date | | Modified Date | When the note was last edited | date | | Tags | Tags from properties frontmatter | tags | | Linked Notes | Files referenced in note | list | | Linked Media | Attachments referenced in note | list | | Linked Files | External files referenced in note | list | | Task Status | Pending, Complete, or No Tasks | list | | Is Pinned | Note is pinned in file tree | boolean | | Is Locked | Note is read-only | boolean | Custom properties you've defined in your workspace are also available as filter fields. See [Properties](/docs/note-management/properties) for more. ### Filter Operators Available operators depend on the field type: | Type | Operators | | --- | --- | | **String** | equals, does not equal, contains, does not contain, starts with, ends with, is empty, is not empty | | **Number** | equals, does not equal, greater than, less than, greater than or equal, less than or equal, is empty, is not empty | | **Date/Time** | is, is before, is after, is empty, is not empty | | **Boolean** | is, is not | | **List/Tags** | is any of, is not any of, is empty, is not empty | | **Files** | is empty, is not empty | ### Date Shortcuts When filtering by dates, use relative options like `Today`, `Yesterday`, `Last 7 Days`, `Last Week`, `Last Month`, `This Quarter`, or pick a specific date from the calendar. --- ## Columns Columns control which data fields appear in your view table. ### Managing Columns 1. Click the columns icon in the view header 2. Toggle checkboxes to show or hide columns 3. Drag to reorder columns The Name column is always sticky and stays visible when scrolling horizontally. ### Column Types Each column renders data based on its type: | Type | Display | | --- | --- | | **String** | Plain text (supports doclinks) | | **Number** | Right-aligned numeric values | | **Date/DateTime** | Formatted dates and times | | **Checkbox** | Visual checkmark or empty state | | **List** | Comma-separated values | | **Tags** | Color-coded tag pills | | **Tasks** | Task count and status indicator | | **Links** | Clickable note/file references | Column types are detected automatically from property definitions or system fields. --- ## Sorting Click a column header to sort by that field. Click again to toggle between ascending and descending order. Sort indicators (↑↓) show the current direction. Sorting is saved with the view and applied automatically when reopened. --- ## Customizing Views ### Name Click the view name at the top to edit it. Press `Enter` to save or `Escape` to cancel. View names must be unique within the workspace. ### Icon and Color Click the icon next to the view name to open the picker: - 50+ built-in icons organized by category - Multiple preset colors that adapt to your theme Icons and colors help identify views at a glance in tabs and the sidebar. --- ## Managing Views ### Opening Notes Click any note name in the table to open it in a new tab, just like clicking from the file tree. ### Duplicating Right-click a view in the Views tree and select **Duplicate View**. Modify the copy without affecting the original. ### Deleting Either right-click a view and select **Delete**, or open the view and click the delete icon. All tabs displaying that view close automatically. --- ## Tips - **Quick navigation** — Use `Cmd/Ctrl + K` and type a view name to jump directly to it - **Stack filters** — Create complex queries like "tags contains project-alpha AND modified this week" - **Property-first workflow** — Add properties to notes, then create views to organize them - **Task monitoring** — Filter by `Task Status: Pending` to track to-dos across your workspace - **Recent activity** — Filter by `Modified Date: Last 7 Days` to see what you've been working on - **Tag collections** — Use `Tags: is any of` to create dynamic groups of related notes --- ## Troubleshooting | Issue | Solution | | --- | --- | | View is empty | Remove filters one by one to identify which excludes your notes | | Slow performance | Prefer metadata filters (properties, tags, system fields) over content searches | | Missing columns | Click the columns icon—some may be hidden | | Properties not showing | Ensure the property exists in `properties.json` and is set on at least one note | -------------------------------------------------------------------------------- title: "Themes" description: "Make Octarine look the way you want" source: "https://docs.octarine.app/customisation/themes" -------------------------------------------------------------------------------- # Themes Octarine comes with a collection of carefully crafted themes to suit different preferences and working environments. Whether you prefer a dark interface for late-night writing or a bright, airy look for daytime work, there's something here for you. ## Switching Themes You can change your theme from **Settings → Preferences → Theme**, or use the command palette (`Cmd/Ctrl + K`) and search for the theme name directly. Octarine lets you set different themes for light and dark mode. So if your system switches between modes throughout the day, Octarine will follow along with the appropriate theme for each. ## Free Themes These four themes are available to everyone: - **Dark** — A balanced dark theme that's easy on the eyes. Great for most situations. - **Light** — Clean and bright, perfect for well-lit environments. - **Dim** — A softer dark option with reduced contrast. Nice for evening work. - **Bright** — A crisp, high-contrast light theme. ## Pro Themes With a Pro license, you unlock access to 30+ additional themes. Here's what's available: ### Dark Themes - **True Dark** — Pure black backgrounds for OLED displays - **Catppuccin Mocha** — Warm, cozy dark theme from the popular Catppuccin palette - **Catppuccin Macchiato** — Slightly lighter variant of Catppuccin - **Catppuccin Frappé** — Medium-dark Catppuccin option - **Dracula** — The beloved dark theme with purple accents - **Rosepine** — Elegant dark theme with soft, muted colors - **Rosepine Moon** — Darker variant of Rosepine - **Gruvbox Dark** — Retro-inspired warm dark theme - **Ayu Dark** — Modern, refined dark palette - **Vesper** — Subdued dark theme with amber highlights - **Vesper Dusk** — Warmer variant of Vesper - **Monokai Pro** — Classic developer favorite - **Monokai Pro Spectrum** — Monokai with cyan accents - **Monokai Pro Machine** — Monokai with teal tones - **Forest Dark** — Nature-inspired greens on dark - **Xcode Dark** — Apple's dark coding theme - **Xcode Midnight** — Even darker Xcode variant - **Xcode Sunset** — Warm Xcode dark theme - **Xcode Dusk** — Purple-tinted Xcode dark - **Cyberpunk** — Neon-soaked futuristic vibes - **Synthwave** — Retro 80s aesthetic with hot pink and cyan ### Light Themes - **Catppuccin Latte** — Soft, creamy light theme from Catppuccin - **Rosepine Dawn** — Light variant of the Rosepine palette - **Gruvbox Light** — Warm, paper-like light theme - **Ayu** — Clean, modern light palette - **Vesper Light** — Warm light theme with amber accents - **Olive** — Earthy greens on a light background - **Rose** — Soft pink-tinted light theme - **Solarized** — The iconic light theme designed for readability - **Synthwave Light** — Pastel take on the synthwave aesthetic - **Forest Light** — Nature-inspired light theme - **Xcode Light** — Apple's classic light coding theme -------------------------------------------------------------------------------- title: "Theme Creator" description: "Design your own custom color themes for Octarine." source: "https://docs.octarine.app/customisation/theme-creator" -------------------------------------------------------------------------------- # Theme Creator Imagine a workspace that perfectly mirrors your style. With the Theme Creator, you can design stunning custom themes from the ground up or effortlessly fine-tune an existing one to make it uniquely yours. ## Getting Started Ready to personalize your workspace? Just navigate to `Settings → Theme Creator` to launch the theme builder. Here, you'll find any custom themes you've already crafted, alongside a clear button to start a fresh creation. > Access to the Theme Creator requires a Pro License. ## Crafting Your Custom Theme To begin bringing your vision to life, simply click **Create New**. You'll first define some fundamental aspects: ### The Essentials - **Theme Name:** Choose a name that helps you easily identify your unique creation. - **Base Theme:** Select one of Octarine's pre-built themes as your foundation. This smartly populates all color variables, giving you a strong starting point rather than an empty canvas. - **Mode:** Decide between **Light** or **Dark** using the radio buttons. This choice is vital, as it governs the appearance of callouts, folder icons, notifications (toasts), and various other UI elements. Selecting an incorrect mode can unfortunately make parts of your interface difficult to read. > Your chosen base theme is permanent after creation. Since it cannot be changed later, pick the option that most closely aligns with the look you're aiming to tweak. ### Fine-Tuning Your Colors Once your base is set, you'll discover all theme variables neatly organized by category. Each variable comes with a handy color swatch and a text field, ready for you to input any standard CSS color value (like hex codes, RGB, or HSL). ### Where Colors Show Up Use this table to map variables to feature surfaces in the app. Each row is a high-level summary of where a color typically appears. | Variable | Where they would be used | | --- | --- | | `--color-text-primary` | Active/Hovered text or icon color. Primary buttons | | `--color-text-secondary` | File tree buttons, Tab buttons | | `--color-text-tertiary` | Captions, Disabled text, Secondary labels, Status hints | | `--color-text-placeholder` | Input placeholders, Empty states | | `--color-text-link` | Links | | `--color-text-accent` | Active states, AI actions, Highlights, Badges | | `--color-editor-body` | Editor paragraphs | | `--color-editor-heading` | Editor headings, H1-H6 | | `--color-text-error` | Error text, Destructive Actions | | `--color-bg-primary` | App canvas, Main panels, Dialog bodies, Editor surface | | `--color-bg-intermediate` | Toolbars, Sticky headers, Floating panels, Side panels | | `--color-bg-secondary` | Cards, Menus, Popovers, Dropdowns | | `--color-bg-tertiary` | Sub-panels, Secondary controls, Scroll containers, Toggles | | `--color-bg-hover` | Hover color. Usually paired with `bg-secondary` | | `--color-bg-accent` | Theme’s primary color | | `--color-bg-doc-link` | Wikilinks, Text selection, background for icons with `text-accent` | | `--color-bg-mark` | Highlight background for searched text | | `--color-bg-error` | Destructive buttons, Danger zones, Error panels, Delete actions | | `--color-bg-kbd` | Keyboard shortcuts | | `--color-bg-tooltip` | Tooltip background | | `--color-app-sidebar` | Sidebar background, Nav rail, Panel chrome, Left rail | | `--color-border-primary` | Primary border - usually light | | `--color-border-secondary` | For active/hover borders - usually darker/brighter | | `--color-border-accent` | Focus states, Active selection borders, Emphasis outlines, Tabs | | `--color-border-error` | Invalid inputs, Error alerts, Destructive outlines, Warnings | | `--color-icon` | Icon base color. On hover/active usually is `text-primary` | | `--color-outline-primary` | Focus rings, Keyboard focus, A11y outlines, Active input | #### Graph View Colors Graph View pulls a smaller set of variables for the canvas and node styling. | Variable | Usage in Graph View | | -------------------------- | ------------------------------------------ | | `--color-text-primary` | Graph title text | | `--color-text-secondary` | Node label text, Node count text | | `--color-text-tertiary` | Default node fill, Search placeholder text | | `--color-text-accent` | Weekly/Daily node fill | | `--color-bg-primary` | Graph canvas background | | `--color-bg-mark` | Tag node fill | | `--color-bg-accent` | Highlighted node/link stroke | | `--color-border-secondary` | Link stroke color | | `--color-border-primary` | Graph header divider | | `--color-app-sidebar` | Graph header bar background | | `--color-icon` | Search and close icons | ## Let AI Inspire You Feeling a bit stuck, or just want to experiment? The **Ask AI** feature is your creative partner! Simply describe the aesthetic you're dreaming of—perhaps a 'cozy autumn forest' or a 'neon cyberpunk night'—and Octarine will intelligently generate a complete color palette and even suggest a fitting theme name. ### Generating a Palette Just tell the AI your desired vibe, and it will handle the initial creative heavy lifting, filling in all the variables and suggesting a name. ### Refining AI Suggestions - **Pro Tip:** Don't hesitate to ask for minor adjustments like 'lighter borders' or 'warmer accents' to perfect your current theme. If you're looking for a completely new direction, describe an entirely fresh identity to get a brand-new palette. - **Model Information:** The 'Ask AI' functionality utilizes the same AI model you've configured in the **Ask Octarine / Writing Assistant** settings. ## Managing Your Themes Once you've created your themes, managing them is straightforward. ### Editing Existing Themes To fine-tune a theme, simply click on it from your custom theme list to open the editor. Make your desired adjustments, then click **Update** to save your changes. What's neat is that your edits are instantly reflected across the entire app, allowing you to see a live preview before finalizing. ### Sharing and Importing Themes Looking to share your masterpiece or back it up? The **Copy CSS** button lets you grab a block of CSS variables. To import a theme, use **Paste from Clipboard**. Keep these important details in mind when pasting: - The CSS you paste must exclusively contain variable lines; **comments are not supported**. - Should your pasted list be incomplete, Octarine will intelligently fill in any missing variables using the colors from your **current base theme**. ### Removing Themes If you need to declutter, simply click **Delete** from the theme list to remove a theme. Be aware that this action is **not reversible**. If the theme you're deleting is currently active, Octarine will automatically revert to the default theme (`default-dark`). ## Applying and Storing Your Creations Once your perfect theme is ready, putting it to use is simple. ### Making Your Theme Active After you create or update a theme, it automatically becomes your active theme. You can effortlessly switch between any of your custom themes at any time: - Via `Settings → Preferences → Theme` - Through the Command palette (`Cmd/Ctrl + K`, then search for your theme name) Your custom themes will appear right alongside Octarine's built-in themes in the selector, complete with helpful color previews. ### Theme File Location For those curious about where your custom themes reside, they are stored on a per-workspace basis in: - `.octarine/themes.json` ## Pro Tips for Stellar Themes Crafting a truly great theme involves a bit of careful consideration. Here are some pro tips to ensure your themes look fantastic and function perfectly: - **Prioritize Contrast:** Ensure your text is always easily readable against its background. Good contrast is key for accessibility and comfort. - **Thorough Testing is Essential:** Don't just admire it; put your theme through its paces. Check how it looks in the sidebar, editor, within callouts, and especially with code blocks. - **Choose Accent Colors Wisely:** These colors highlight important elements like links, buttons, and selected text. Aim for a hue that stands out beautifully without being overly jarring. - **The Right Mode Makes All the Difference:** Remember, your chosen Light/Dark mode influences icons, callouts, and notifications. Selecting the correct mode is crucial to maintain overall readability and prevent UI issues. -------------------------------------------------------------------------------- title: "Folder Sorting and Icons" description: "Add distinct icons, colors and custom sorting to folders" source: "https://docs.octarine.app/customisation/folder-sorting-and-icons" -------------------------------------------------------------------------------- # Folder Sorting and Icons Folders in Octarine go beyond simple directories—they help you organize notes with visual clarity and custom behavior. With folder customization, you can give each folder its own look and feel. ## What you can customize - **Icons and colors** — Assign unique icons and colors to folders for quick visual identification. - **Custom sorting** — Set a sorting method for each folder independently. For example, sort one folder alphabetically and another by most recently edited. ## How it works Customizations are stored in a `config.json` file inside each folder, so your settings stay with your workspace wherever it goes. > Folder customization requires a Pro License. -------------------------------------------------------------------------------- title: "Daily Desk" description: "A focused calendar-based journaling and note-taking tool for daily and weekly entries." source: "https://docs.octarine.app/daily-desk/index" -------------------------------------------------------------------------------- # Daily Desk ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/daily_desk.png) The Daily Desk is Octarine's dedicated journaling and daily note-taking system, providing a streamlined calendar-based interface for creating date-specific notes. Unlike general note organization, the Daily Desk focuses solely on daily/weekly entries, offering a clean separation between your regular notes and time-based content. ### The Basics The Daily Desk uses a dedicated calendar interface in the left sidebar that handles only daily notes, keeping them distinct from your general note collection. Each day automatically generates a markdown file named with the date, creating a chronological record of your thoughts, tasks, and activities. - Daily notes are stored in the `Daily` folder of your workspace. - Each note follows a `YYYY-MM-DD.md` format. Eg — `2025-02-09.md` - Weekly notes are stored in the `Daily/Weekly` folder of your workspace. - Each weekly note follows the `YYYY-W.md` format — Eg: `2025-W3.md` If a daily note has been created, it’ll be indicated with a small `dot` below the number. **Hover** over any such date to quickly preview the note’s content. ### Calendar Navigation Navigate through your daily notes using multiple methods: - **Click** any date in the calendar to open or create that day's note - **Keyboard shortcuts**: Use the shortcuts listed below the calendar for rapid navigation - **Smart Dates**: Press `Cmd/Ctrl + K` and use "Go to Date" with natural language like "yesterday", "next Friday", or "March 15th" - **Arrow keys**: Navigate through dates when the calendar is focused. #### Task Tally Counter The Daily Desk includes a task tally counter that displays the total number of tasks in your daily notes, providing at-a-glance visibility into your daily workload and completion progress. -------------------------------------------------------------------------------- title: "Smart Dates" description: "Natural language date navigation for Daily Desk" source: "https://docs.octarine.app/daily-desk/smart-dates" -------------------------------------------------------------------------------- # Smart Dates ### Smart Dates Integration Ever wanted to jump to a specific date without fumbling through a calendar picker? Octarine's Smart Dates feature lets you navigate through your daily desk using natural language—just type the date the way you'd say it. You can access Smart Dates by opening the command palette with `CMD/Ctrl + K` and selecting "Go to Date", or use the quick shortcut `CMD/Ctrl + D` to jump straight there. The beauty of Smart Dates is that it understands dates the way you think about them. Want to check what you wrote yesterday? Just type "yesterday". Planning something for next Friday? Type "next Friday". You can even use contextual phrases like "in two days" or "three weeks ago"—Octarine figures out exactly what you mean. Here are some examples of what works: - **Relative dates** like "today", "yesterday", "tomorrow", or "next week" - **Specific dates** like "March 15th" or "December 1st, 2024" - **Day references** like "last Monday", "next Friday", or "this weekend" - **Contextual phrases** like "in two days" or "three weeks ago" It's designed to feel natural, so you can navigate your daily notes without breaking your flow. -------------------------------------------------------------------------------- title: "Migrate Incomplete Tasks" description: "One-click move incomplete tasks from a daily note to today" source: "https://docs.octarine.app/daily-desk/automation" -------------------------------------------------------------------------------- # Migrate Incomplete Tasks Ever have tasks left over from yesterday (or last week) that still need doing? Octarine's task migration feature lets you move all those unfinished tasks to today's note with a single click, so nothing falls through the cracks. ### How It Works When you open today's daily note, Octarine scans your notes from the last 7 days looking for incomplete tasks. If it finds any, a "Migrate Incomplete Tasks" button appears in the breadcrumb. Click it, and those tasks move to today's note—simple as that. ### Using Task Migration The feature works automatically in the background. You don't need to set anything up—just open today's daily note and if there are incomplete tasks from the past week, the migration button will be there waiting for you. It even tells you which date the tasks are coming from, so you have context. Here's what happens when you click that button: Octarine moves all incomplete tasks to today's note at your cursor position, so you won't accidentally overwrite anything. It adds a little note above the tasks saying "Migrated from \[date\]" so you know where they came from. The tasks are removed from their original date, and the front-matter metadata gets updated to track the migration. ### Creating Tasks Want to make sure your tasks are tracked for migration? Just create them using either the `[ ]` checkbox syntax or the `/` command menu and select "Task." Any task created this way gets automatically tracked, so it'll show up for migration if you don't complete it. -------------------------------------------------------------------------------- title: "Properties" description: "Custom metadata frontmatter for your notes" source: "https://docs.octarine.app/note-management/properties" -------------------------------------------------------------------------------- # Properties Properties let you add structured metadata to your notes—custom fields for organizing, categorizing, and searching your content. Define them once, reuse them across your workspace. > Properties require a Pro License. ## Overview Properties are metadata fields stored at the top of your notes. Track status, priority, due dates, or anything else that helps you stay organized. Since properties are defined at the workspace level, they remain consistent across all your notes. **Common use cases:** - Track project status and priority levels - Monitor word count and publication stages for writing - Tag sources and confidence levels for research - Set reminders and categorize topics for personal notes ## Property Types Octarine supports seven property types: ### String Free-form text for names, descriptions, or categories. Supports `[[wikilink]]` syntax for linking to other notes. ```yaml Author: Jane Smith Summary: Meeting notes about project timeline Related to: [[Project Alpha]] ``` ### Number Numeric values for counts, ratings, scores, or measurements. ```yaml Word Count: 1250 Priority: 5 Rating: 8.5 ``` ### Date Date values without time—ideal for deadlines and milestones. ```yaml Due Date: 2024-03-15 Publication Date: 2024-04-01 ``` ### DateTime Precise timestamps when time matters. ```yaml Last Edited: 2025-09-23T09:42 Meeting Time: 2025-09-23T15:30 ``` ### Checkbox True/false toggles for completion status or flags. ```yaml Published: true Archived: false ``` ### List Predefined dropdown options for consistent categorization. Supports multiple selections and `[[wikilinks]]`. ```yaml Status: - In Progress - Under Review Person: - [[Jane Doe]] - [[Rajat K]] ``` ### Tags A reserved type that syncs with your workspace's tag tree. Applies only to the `tags` property. ```yaml tags: - project-alpha - meeting - urgent ``` ## Adding Properties to Notes The properties panel appears at the top of each note, below the title. Toggle it with the properties icon in the toolbar—it also shows automatically when a note has existing properties. ### Add an Existing Property 1. Click **+ Add property** at the bottom of the panel 2. Select from the dropdown of workspace properties 3. Set your value ### Create a New Property 1. Click **+ Add property** then **Create new property...** 2. Enter a name and choose a type 3. For List types, define your options 4. The property becomes available across your workspace ### Remove a Property Click the **X** next to any property to remove it from the current note. The property definition remains available for other notes. > Properties not used anywhere are automatically cleaned up and won't appear in suggestions. ### Keyboard Shortcuts - `Cmd/Ctrl + ;` — Add property - `Cmd/Ctrl + Shift + ;` — Focus properties panel - `Tab` — Navigate between properties - `Enter` — Save changes - `Escape` — Cancel editing ## Managing Properties Properties are shared across your workspace—changes affect all notes using them. ### Change a Property's Type 1. Click the property name in any note 2. Select **Change property type** 3. Choose the new type ### Rename a Property 1. Click the property name 2. Select **Rename property** 3. Enter the new name ### Reserved Properties Some properties are managed by Octarine: - **tags** — Syncs with your tag tree - **pinned**, **ai_recap**, **migrated**, **locked** — Hidden system properties for internal tracking ## Additional Features - **AI suggestions** — Click the sparkles icon to analyze your note content and get property suggestions. - **Drag to reorder** — Arrange properties by dragging rows. The order is saved per note. - **Copy properties** — Use the more options menu to copy all properties to your clipboard. - **Undo changes** — Click the undo arrow to revert recent modifications. ## Searching by Properties Filter notes using property values in the search interface with the syntax `[property:]` (e.g., `[status:]`). ## Technical Details ### Storage **Property definitions** are stored in `.octarine/properties.json`—a JSON array that syncs with Git-based backup and is included in workspace backups. **Property values** live in YAML frontmatter at the top of each note file. This standard format keeps your notes portable and editable with any text editor or Markdown tool. ```yaml --- Status: - In Progress Priority: 3 Due Date: 2024-03-15 Published: false Author: Jane Smith tags: - project-alpha - meeting --- # Your Note Title Your note content goes here... ``` -------------------------------------------------------------------------------- title: "Search" description: "Find and replace content within your notes" source: "https://docs.octarine.app/note-management/search" -------------------------------------------------------------------------------- # Search ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/search.png) In-note search lets you find and replace text within the current note. All matches are highlighted as you type, making it easy to scan through results. ### Finding Text Press `Cmd/Ctrl + F` to open search. If text is selected, it automatically fills the search field. - **Enter** — Jump to next match (wraps around after the last) - **Shift + Enter** — Jump to previous match All matches receive a subtle background highlight, while the current match is emphasized with a stronger color. **Search options:** - **Regex** — Enable regular expressions for advanced pattern matching - **Match Case** — Enable case-sensitive matching (compatible with regex) - **Match Whole Word** — Restrict to complete word matches only (compatible with regex) ### Replacing Text Click the chevron icon next to the search field (or press `Ctrl/^ + Option/Alt + F`) to reveal the replace field. - **Enter** — Replace current match and advance to the next - **Cmd/Ctrl + Enter** — Replace all matches at once -------------------------------------------------------------------------------- title: "Pinned Notes & Folders" description: "Quick access to frequently used notes & folders" source: "https://docs.octarine.app/note-management/pinned" -------------------------------------------------------------------------------- # Pinned Notes & Folders Pin frequently accessed notes and folders for quick access without navigating through your file tree. Individual notes can be pinned on any license; pinning folders requires a Pro License. Pinned items appear in a dedicated tree view. Click the pin icon in the tree (available from Notes, Daily Desk, and Templates) to toggle between pinned items and the normal view. ## Pinning Items Pin a note or folder using any of these methods: - **Right-click** on a note or folder and select **Pin Note** or **Pin Folder** - **Command palette** — `Cmd/Ctrl + K` then **Pin Note** - **Breadcrumb menu** — Click the more options dropdown and select the pin option > The pin icon blinks briefly to confirm the item was pinned. ## Unpinning Items Unpin items using the same methods: - **Right-click** on the pinned item and select **Unpin Note** or **Unpin Folder** - **Command palette** — `Cmd/Ctrl + K` then **Unpin Note** - **Breadcrumb menu** — Select the unpin option from the dropdown -------------------------------------------------------------------------------- title: "Meta Sidebar" description: "Get metadata of the note, backlinks and outline" source: "https://docs.octarine.app/note-management/meta-sidebar" -------------------------------------------------------------------------------- # Meta Sidebar The meta sidebar is one of the sidebars that opens on the right side of Octarine. It's tied to the note you're currently working on, and shows you useful details and information about that note. The sidebar remembers which tab you last viewed, so when you reopen it, you'll land on the same tab. This preference persists across app refreshes and restarts. ### Info The first tab is `Info`, which displays read-only metadata about your note: - When the note was **created** - When it was last **modified** - A count of **characters**, **words**, and **lines**, plus an estimate of how long it would take to read You'll also see any **wikilinks** you've added to the note, with quick previews and access, as well as any media & file attachments. ### Referenced In The second tab shows **backlinks**—other notes that link to this note using wikilink syntax. This makes it easy to see where a note is referenced across your workspace, with quick access to jump to those notes. ### Outline This tab gives you a simple table of contents based on the heading hierarchy in your note. Click any heading in the outline, and the editor will scroll directly to it. Perfect for navigating longer notes. -------------------------------------------------------------------------------- title: "Read-only Notes" description: "Disable editing for a specific note" source: "https://docs.octarine.app/note-management/read-only-notes" -------------------------------------------------------------------------------- # Read-only Notes Got a note you don't want to accidentally change—like a finalized document, reference material, or something archived? You can lock it down by making it read-only. Once locked, the content stays visible but untouchable. ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/read-only-notes.png) > This is available only for Pro License users. ### The Basics When you make a note read-only, Octarine prevents all editing. You can still read the content and copy from it, but you won't be able to modify anything—no typing, no deleting, no formatting changes. It's a simple way to protect important documents from accidental edits. Read-only notes show a crossed pen icon in the file tree and editor, so you can spot them at a glance. And if you need to, you can unlock them just as easily as you locked them. ### Locking Notes There are a few ways to lock a note: Right-click it in the file tree and select "Make note read-only." Or open the note, press `Cmd/Ctrl + K`, and search for "Make note read-only." You can also click the three-dot menu in the note editor and pick the same option. Once it's locked, the crossed pen icon appears, the editor becomes read-only, and all editing shortcuts stop working. Copy operations still work fine, though—you can grab text whenever you need it. ### Unlocking Notes To make a read-only note editable again, use the same methods: Right-click it and select "Make note editable," or press `Cmd/Ctrl + K` and search for it. You can also use the options menu in the note's breadcrumb. The note unlocks instantly and you're back to editing as normal. -------------------------------------------------------------------------------- title: "External Files" description: "Manage file types that aren't natively supported by Octarine" source: "https://docs.octarine.app/note-management/external-files" -------------------------------------------------------------------------------- # External Files Import and reference PDFs, spreadsheets, and other documents alongside your notes. External Files brings non-native file types into your workspace so everything lives in one place. ## How It Works Imported external files are stored in a `.files` folder within your workspace. Reference them in notes using wikilink syntax, just like internal notes. Clicking a reference opens the file in your system's default app—PDFs in your PDF reader, spreadsheets in Excel, and so on. This keeps your workspace organized and ensures all files travel together when syncing via iCloud, Dropbox, or Git. ## Referencing External Files Link to external files using wikilink syntax: ```markdown [[Filename.pdf]] [[project-budget.xlsx]] [[meeting-recording.mp3]] ``` Type `[[` and start typing the filename to see available files. Select one or press Enter to insert the reference. ## Adding External Files There are three ways to add external files: - **Drag and drop** — Drag a file directly into the editor and it will be imported automatically. - **Slash command** — Type `/` and select **Attach Files** to open a file picker. - **Wikilink** — If the file is already in your `.files` folder, type `[[` to search for it and insert a reference. > To reference existing files without re-importing, use the wikilink method or drag from the Attachments sidebar. ## Viewing Linked Files The Meta Sidebar includes a **Linked Files** section showing all external files referenced in the current note. Click any file to open it in your default app. ## Supported File Types Octarine supports these file types by default: - **Documents** — PDF, DOC, DOCX, ODT, RTF, TXT - **Spreadsheets** — XLS, XLSX, CSV, ODS - **Presentations** — PPT, PPTX, ODP - **Audio** — MP3, WAV, M4A, OGG - **Archives** — ZIP, RAR, 7Z, TAR ## Adding Custom Extensions For specialized file types, go to **Settings > Files > External Files**, add extensions (without the dot), and click **Add**. ## Natively Supported Types These file types are handled natively within notes and cannot be added as external files: - **Markdown** — MD - **Images** — PNG, JPG, JPEG, GIF, WEBP, SVG - **Videos** — MP4, MOV -------------------------------------------------------------------------------- title: "Outline Navigation" description: "Quickly navigate long notes using the table of contents command" source: "https://docs.octarine.app/note-management/outline-navigation" -------------------------------------------------------------------------------- # Outline Navigation When working with longer notes that have multiple sections and headings, quickly jumping to a specific section can save time and keep you focused. The Table of Contents command provides instant access to your note's outline without leaving your keyboard. ## Using the Table of Contents Command Access the outline for the current note in two ways: - **Command Palette**: Press `Cmd/Ctrl + K`, then search for "Table of Contents" - **Direct Shortcut**: Press `Cmd/Ctrl + Shift + O` for instant access Either method opens a searchable list of all headers in your note. Selecting any header scrolls the note to that section and places the cursor there, ready for you to continue editing. ## When to Use This The Table of Contents command is especially useful when: - Working with long documents that span multiple screens - Jumping between different sections while editing - Reviewing the structure of a note without scrolling - Navigating to a specific section without using the mouse > Need a persistent view of your note's structure? The meta sidebar's [Outline tab](/note-management/meta-sidebar#outline) displays a full table of contents that stays visible while you work. -------------------------------------------------------------------------------- title: "Configuring AI" description: "Set up and manage connections to AI providers, including cloud-based APIs and local models." source: "https://docs.octarine.app/working-with-ai/setting-things-up" -------------------------------------------------------------------------------- # Configuring AI Octarine supports multiple AI providers—choose the models that fit your workflow. Use cloud-based services like OpenAI and Anthropic, or run everything locally with Ollama. > AI features require a Pro License. ## Setting Up Providers ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/providers.png) Go to **Settings > AI > Providers** to configure your AI connections. You'll see a list of supported providers: - **Cloud-based** (OpenAI, Anthropic, etc.) — Enter your API key from the provider's console. - **Local** (Ollama) — No credentials required. Octarine validates API keys automatically and displays a checkmark when connected. Enable multiple providers simultaneously and switch between them at any time. ## Selecting Models After configuring providers, available models appear in a dropdown selector grouped by provider. Each model displays its context window size and key features. **Key behaviors:** - Switch models instantly, even mid-workflow - Your last selected model is remembered across sessions - Access the model selector from the AI panel or editor toolbar when AI features are active ## Local Models Run AI models on your own machine for privacy and offline use. Check out our dedicated guides: - [Working with Ollama](/working-with-ai/working-with-ollama) — Run models locally using Ollama - [Working with LM Studio](/working-with-ai/working-with-lmstudio) — Use LM Studio for local AI models ## Managing Multiple Providers With multiple providers configured, all models appear in a unified list. Switch between cloud and local models without reconfiguration. **Security and maintenance:** - API keys are stored securely on your device - Update or remove keys anytime in Settings - Clear error messages appear if a provider goes offline or credentials expire -------------------------------------------------------------------------------- title: "Working with Ollama" description: "Learn how to connect your Ollama to Octarine to use Writing Assistant and Ask Octarine" source: "https://docs.octarine.app/working-with-ai/working-with-ollama" -------------------------------------------------------------------------------- # Working with Ollama Ollama is a simple way to run large language models on your own machine. This guide shows you how to install it, download a model, and connect it to Octarine so you can use AI features completely offline and privately. ## Prerequisites Ollama works on macOS, Windows, and Linux. Just make sure your system has enough CPU, RAM, and storage to handle the models you want to run. ## Step 1: Install Ollama Visit the [Ollama official website](https://ollama.com/) and download the installer for your operating system. On macOS, open the `.dmg` file and follow the instructions. On Windows, run the `.exe` and complete the wizard. If you're on Linux, check the Ollama website for instructions specific to your distribution. ## Step 2: Pull a Model After installing Ollama, you need to download a model. Open Terminal (on macOS/Linux) or Command Prompt or PowerShell (on Windows), and run this command: ```bash ollama pull llama2 ``` Replace `llama2` with whatever model you want to use. You can find a full list of available models in the [Ollama documentation](https://ollama.com/library). ## Step 3: Start the Ollama Service In the same terminal or command prompt, start the Ollama server: ```bash ollama serve ``` This runs the server on `http://localhost:11434` by default. Keep this terminal window open—you need the service running for Octarine to connect. ## Step 4: Connect Ollama to Octarine Now let's hook it up to Octarine. ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/working_with_ollama.png) Go to `Settings → AI Assistant → AI Providers` and click on **Ollama**. Enter the server URL from the previous step (usually `http://localhost:11434`) and press **Save**. ## Step 5: Start Using Your Models ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/working_with_ollama_models.png) Open the Writing Assistant or Ask Octarine, click the model selector, and look for your Ollama models. Select one and you're ready to go! ## A Few Things to Know The Ollama API only listens on `localhost` by default, so it's not exposed to the internet—everything stays on your machine. If you want to see all the models you've downloaded, run `ollama list` in your terminal. This shows every model currently available. When you're done, you can stop the Ollama service by going back to the terminal where `ollama serve` is running and pressing `Ctrl+C`. -------------------------------------------------------------------------------- title: "Working with LM Studio" description: "Learn how to connect your local LMStudio to Octarine to use Writing Assistant and Ask Octarine" source: "https://docs.octarine.app/working-with-ai/working-with-lmstudio" -------------------------------------------------------------------------------- # Working with LM Studio Want to run AI models on your computer without relying on the cloud? LM Studio lets you do exactly that. This guide walks you through installing it, downloading a model, and connecting it to Octarine so you can use the Writing Assistant and Ask Octarine features completely locally. ## Prerequisites You'll need macOS or Windows (Linux support is experimental). Make sure you have enough CPU, RAM, and storage—especially if you're planning to run larger models. ## Step 1: Install LM Studio Head to the [LM Studio website](https://lmstudio.ai/) and download the installer for your operating system. On macOS, open the `.dmg` file and follow the prompts. On Windows, run the `.exe` and complete the installation wizard. If you're on Linux, check the official website for the latest experimental instructions. ## Step 2: Download a Model Once you've installed LM Studio, launch it from your applications folder or start menu. You'll see a built-in model library. Browse it or use the search bar to find a model—popular options include Llama 2, Mistral, and Phi-3. When you find one you like, click **Download** next to it and wait for it to finish. ## Step 3: Start the Local Server LM Studio can run a local API server that Octarine connects to. Go to the **API** tab (usually on the sidebar) and click **Start Server**. By default, it runs on `http://localhost:1234`. Make a note of the URL—you'll need it in the next step. ## Step 4: Connect LM Studio to Octarine Now you're ready to hook everything up. ![Image](https://pub-d9b2979edab5442388c14f8014e177b7.r2.dev/docs/working_with_lmstudio.png) In Octarine, go to `Settings → AI Assistant → AI Providers` and click on **LM Studio**. Enter the local server URL from the previous step (usually `http://localhost:1234`) and press **Save**. ## Step 5: Start Using Your Local Models Open the Writing Assistant or Ask Octarine and click the model selector. You should see your LM Studio models listed there. Select the one you want and start generating! ## A Few Things to Know The LM Studio API only accepts requests from `localhost` by default, so it's safe for local use. If you want to manage your models—delete them, update them, whatever—just use the LM Studio interface. And when you're done, you can stop the server by going back to the API tab and clicking **Stop Server**, or just close LM Studio altogether. -------------------------------------------------------------------------------- title: "Writing Assistant" description: "Create, rewrite or improve your ideas with the help of an assistant" source: "https://docs.octarine.app/working-with-ai/writing-assistant" -------------------------------------------------------------------------------- # Writing Assistant The Writing Assistant helps you generate, rewrite, or refine content directly within your notes. It's an AI-powered chat-style sidebar that works alongside your editor, ready to help when you need it. > The Writing Assistant is only available to users on the Pro License. Before using it, make sure you have at least one AI provider or Ollama configured. See [Configuring AI](https://docs.octarine.app/working-with-ai/setting-things-up) for setup instructions. ### Opening the Assistant - **Press** `Cmd/Ctrl + J` to open the Writing Assistant sidebar - By default, the current note is used as context - To change context, use the context selector or press `@` **Using selected text:** Select any portion of text and press `Cmd/Ctrl + J` (or click "Add to chat" in the Bubble Menu). The selection appears as "`x ch`" where `x` is the character count. ### Working with Context - The base context (current note) can be removed if you don't want it influencing responses - When you change the context selection or switch files mid-chat, a "Context Changed" indicator appears. This ensures previous responses that no longer apply are discarded, keeping your conversation relevant. - Each chat session remembers previous exchanges for consistent, context-aware assistance - Each query displays the model name and timestamp below the prompt, making it easy to track which model was used and when the request was sent ### Editing Previous Prompts You can edit prompts you've already sent to refine your requests without starting over: - Click on any previous prompt in the conversation to edit it - Adjust your request to be more specific or change direction - The AI will generate a new response based on the updated prompt - This helps you iterate quickly without losing conversation context or retyping similar requests ### Research Mode The Writing Assistant includes a built-in research mode that responds to your queries with clarifying questions or requests for more information to provide the most accurate answers. After research is completed, it offers a range of options to help you draft, refine your writing, continue the discussion, or shift the conversation in a new direction. ### Web Search (Beta) The Writing Assistant can include web sources in its responses. This feature is currently available for OpenAI (and `openai-compatible`) & Claude models. To toggle web search on or off, click the globe icon next to the model selector. ### Using Responses After receiving an AI response, you have several options: - **Copy** — Copy to clipboard - **Insert** — Add at your cursor position - **Replace** — Swap the originally selected text with the response - **Retry** — Get a new version - **Delete** — Remove the response from chat ### Custom Slash Commands Create shortcuts for prompts you use often. Configure custom slash commands in `Settings → AI Assistant → Slash Commands`. They're saved in `.octarine/ai/slash-commands.json` in your workspace. > For best results, pick a lightweight model not designed for code—you'll save time and money while still getting great assistance. -------------------------------------------------------------------------------- title: "Ask Octarine" description: "Quickly chat with all your notes" source: "https://docs.octarine.app/working-with-ai/ask-octarine" -------------------------------------------------------------------------------- # Ask Octarine Ask Octarine lets you chat with your notes to receive summaries, insights, and answers to your questions. It analyzes your workspace content using a locally-stored embedding model to provide intelligent responses while maintaining complete privacy. > Ask Octarine is only available for users on the Pro License. ### Getting Started Before using Ask Octarine for the first time, the system downloads a small 90MB embedding model to create vector chunks that identify relevant data for your questions. After your workspace is indexed into text chunks, you can start chatting immediately. - **Access**: Click the Ask Octarine sidebar button or press `Cmd/Ctrl + O` or `Cmd/Ctrl + K → Ask Octarine` - **Initial setup**: - Octarine requires a 90MB model to be downloaded to run embeddings on device (**this is fast, cost efficient & privacy friendly since you aren’t using AI credits**) for creating smaller chunks of your data. - If the setup isn’t downloading correctly, you can press `Manual Setup` and download the model files from the links and place them in the models directory. - **Indexing**: All workspace notes are processed into searchable text chunks. - First time setup will take a few extra seconds since it would index ALL notes in the app into smaller chunks and store it in the local vector database. - Post that every new note being created, note being renamed or added to a folder, moved or deleted, would run the embeddings for just those to keep the database in sync. > No data is sent out to any server for embeddings. Only when you use the feature to request a query, your message and any relevant chunks that Octarine determines are sent to your AI provider. > > If you wish to keep all things local (even query generation), please use local provider Ollama for your model. ### Chat Interface Each chat session supports multiple messages with different AI models or contexts: - **Context indicators**: Each message displays the context used (if provided) or date range for time-focused queries - **References**: Listed references show which notes were considered for your query - **Export options**: Copy responses as Markdown (for Octarine notes) or plain text - **Chat titles**: Automatically generated after the first response, editable via the Sparkles icon - Save the entire chat to a note by clicking on the `Create note` icon on the chat breadcrumb. - User queries are saved a blockquotes - Each chat message (user query and AI answer pair) is separated by a line divider. > It is recommended that you pick a lighter model and not one designed for `code` since Octarine doesn't require heavy models to excel at assisting, and you'd save both time and money on the models. ### Modes - **Ask** – Chat with your notes and enjoy clear references and citations. - **Create** – Turn your notes into **draft emails, templates, or new notes**. You get actionable steps, not just answers. **Narrowing queries**: Use the @ symbol to focus on specific folders. Octarine is also language agnostic, so you can ask in your language of choice, and receive answers back in the same. ### Date Range Context Add explicit date ranges as context for time-specific queries: - Click the **calendar icon** or press **/** in the input box to open date selection - Each date range automatically includes corresponding notes from Daily Desk - Selected dates provide temporal context for your questions ### Suggested Prompts and History Empty chats display suggested prompts for quick exploration: - **Suggested prompts** based on random selection of folders with notes - **Refresh Suggestions button** to randomize and display new prompt options History entries are organized by relative dates: - Grouped as Today, Yesterday, 2d ago, or 1w ago instead of absolute dates - Stored chats maintain their references when accessed from history - Click any history entry to reload the full chat with its context -------------------------------------------------------------------------------- title: "Weekly AI Recap" description: "AI-generated summaries of your weekly notes" source: "https://docs.octarine.app/working-with-ai/weekly-ai-recap" -------------------------------------------------------------------------------- # Weekly AI Recap #### Weekly AI Recap > This feature is only available to Pro License users. Octarine can generate an AI-assisted recap based on your daily notes from a weekly period. The AI reviews your entries to identify important themes, completed tasks, and recurring topics, highlighting achievements and patterns that emerged throughout the week. The recap is generated in the same language as your notes and appended to the bottom of your weekly note, preserving any existing content and note properties. This saves you from manually reviewing multiple daily entries and provides a consolidated view of your progress and activities. To generate a weekly recap: - Navigate to any weekly note want to review - Look for the `Generate Recap` button on the top right - Thematic Review — Analyses themes and patterns across your week's notes - Daily Recap — Summarises each day's activities in a chronological way. - Post creation, it'll prompt you to either Accept or Reject these changes. - If you reject, the note is restored to its previous state and you can retry. - If you accept, a key is added to the frontmatter of the note stating that the recap is generated, and the button won't be visible again until the note is deleted. You can choose whether the recap looks at the current week or past week in `Settings → Preferences -> Weekly Recap Period`. -------------------------------------------------------------------------------- title: "Git Sync" description: "Automated GitHub/GitLab backup for your workspace" source: "https://docs.octarine.app/backup/git-sync" -------------------------------------------------------------------------------- # Git Sync Git Sync provides automated backup functionality for your Octarine workspace, syncing your notes and folders to GitHub or GitLab repositories. This feature operates as a backup service rather than real-time synchronization, ensuring your content is safely stored in version control. ### Prerequisites Git Sync requires Git to be installed on your system: - Verify by running `git -v` in Terminal/Powershell. - **Installation**: If Git is missing, your system will prompt for automatic installation when you run the verification command - **SSH Setup**: Configure SSH keys for GitHub/GitLab authentication - **Passphrase Storage**: Save SSH key passphrases to enable automated syncing without password prompts. This is essential for Git Sync to function properly ### Setting Up Git Sync Git Sync can be configured in two ways: ### Manual Setup - **Create Repository**: Start with a new, empty repository on GitHub or GitLab to avoid merge conflicts during beta - **Copy SSH URL**: After creating the repository, copy the SSH URL (format: `git@github.com:username/repository.git`) - **Configure in Octarine**: Navigate to `Settings → Git Sync` and paste the SSH URL - **Complete Setup**: Click "Finish Setup" to initialize the connection #### Automatic Setup - **Git-Enabled Folders**: When creating a workspace from a folder that already contains git configurations (such as folders cloned with `git clone`), Git Sync is automatically configured - **No Additional Setup**: The existing git remote is detected and used without manual configuration Octarine will perform an initial backup of all current files, excluding attachments by default to manage storage usage. ### Configuration Options After setup, the Git Sync preferences screen allows you to customize backup behavior: - **Automated Backups**: Toggle periodic backups on or off - **Sync Interval**: Set the frequency for backup checks (default: 10 minutes) - **Content Exclusions**: Choose whether to exclude: - Attachments (excluded by default due to potential size) - Templates - Files (excluded by default due to potential size) - **Remove Integration**: Disconnect the workspace from Git and remove version control ### Monitoring Sync Status The sync status is visible through visual indicators in the interface: - **Cloud Icon**: Located in the top-right breadcrumb area - Hover to view the last successful sync timestamp - Normal appearance indicates successful synchronization - **Warning Icon**: Replaces the cloud icon when sync errors occur - Hover to see specific error details - Manual intervention may be required to resolve Git-related issues - Will show up when `Auto Sync` is turned off. > Whenever an error does occur, auto sync is turned off. Octarine tries to retry syncing 3 times before it turns auto sync off and shows the warning icon. ### Sync Behavior Git Sync operates with these characteristics: - **Automatic Operation**: Runs in the background at configured intervals - **Initial Pull**: When the app loads or when manually reloaded, a pull is triggered to fetch latest changes from the remote repository - **File Coverage**: Backs up all markdown files and folder structure - **Exclusions**: Attachments, Files or templates can be optionally excluded - **Repository Structure**: Maintains your exact workspace folder hierarchy in the Git repository - **Manual Sync**: You can force sync by either `Cmd/Ctrl + K → Sync Now` or head over to `Settings → GitSync` and press the `Sync Now` button. ### Conflict Resolution Git Sync provides automatic conflict resolution when local and remote changes conflict: - **Conflict Resolution Settings**: Located in `Settings → Git Sync → Conflict Resolution` - **Resolution Options**: - **Use Remote Changes**: The app favors incoming changes from the remote repository. Remote always wins - **Keep Local Changes**: The app favors your current local changes. Local always wins - **Automatic Handling**: Based on your selected preference, conflicts are resolved automatically during sync operations - **No Manual Intervention**: Unlike traditional Git workflows, conflicts are handled according to your predefined preference ### Troubleshooting Common issues and their resolutions: - **SSH Authentication Failures**: Ensure SSH keys are properly configured and passphrases are saved - **Merge Conflicts**: Start with empty repositories during beta to avoid conflicts - **Sync Errors**: Check the warning icon for specific error messages - **Repository Access**: Verify you have write permissions to the target repository For complex Git-related issues, knowledge of Git commands may be helpful for manual resolution through Terminal. -------------------------------------------------------------------------------- title: "Dropbox" description: "Backup your workspace to Dropbox" source: "https://docs.octarine.app/backup/dropbox" -------------------------------------------------------------------------------- # Dropbox Using Dropbox with Octarine is straightforward—since your notes are just markdown files on your computer, they sync through Dropbox like any other file. Once you create your workspace in a Dropbox folder, everything syncs automatically across all your devices. ### Setting Up Dropbox Sync Getting started is simple: 1. **Install Dropbox desktop app** and sign in 2. **Open Octarine** and create a new workspace (or open an existing one) 3. **Navigate to your Dropbox folder** when choosing the location — it's usually in your home directory 4. **Create or select a folder** for your workspace 5. **Start working** — Octarine will now save all your notes to this Dropbox folder, and Dropbox handles the syncing behind the scenes ### How It Works Octarine doesn't need any special setup to work with Dropbox. It just reads and writes files to your local Dropbox folder, and Dropbox does what it does best—keeps everything in sync across your devices. You can access your notes on Windows, macOS, Linux, or even mobile devices through Dropbox's app. If you're tight on storage, you can use Dropbox's Smart Sync feature to keep files online-only. When you open a note in Octarine, Dropbox downloads it automatically. And if you ever need to recover a deleted note or roll back to an earlier version, Dropbox's web interface has you covered. ### Working with Teams Want to collaborate with others? Create your workspace in a shared Dropbox folder. Team members with access will see updates within seconds, and you can control who has read or write access through Dropbox's folder settings. Team members can even add comments via Dropbox's web or mobile apps. ### When Things Don't Sync If your notes aren't syncing properly, here's what to check: - **Check Dropbox is running** and you're signed in - **Look for the green checkmark** on your workspace folder in Finder or Explorer - **Verify storage quota** — low storage can block new syncs - **Pause and resume sync** in Dropbox preferences to kickstart syncing - **Refresh the file tree** by clicking the refresh icon in Octarine's toolbar - **Check selective sync settings** — make sure your workspace folder is selected to sync on this device ### -------------------------------------------------------------------------------- title: "OneDrive" description: "Backup your workspace to OneDrive" source: "https://docs.octarine.app/backup/onedrive" -------------------------------------------------------------------------------- # OneDrive If you're a Microsoft 365 user or just prefer OneDrive for cloud storage, you can easily sync your Octarine notes across all your devices. Since Octarine saves everything as plain markdown files, all you need to do is create your workspace inside a OneDrive folder and let Microsoft handle the syncing. ### Setting Up OneDrive Sync Getting started is straightforward: 1. **Install OneDrive desktop app** and sign in with your Microsoft account 2. **Open Octarine** and create a new workspace (or open an existing one) 3. **Navigate to your OneDrive folder** when choosing where to save — you'll usually find it in your home directory or under "This PC" on Windows 4. **Create or select a folder** for your workspace 5. **Start working** — Octarine will save your notes to this OneDrive folder, and OneDrive takes care of syncing them to the cloud and your other devices ### How It Works Octarine doesn't do anything special with OneDrive—it just treats it like any other folder on your computer. When you save a note, it's written to your local OneDrive folder, and OneDrive automatically syncs it to the cloud and your other devices. You can access your notes on Windows, macOS, mobile devices, or even through the OneDrive web interface. If you're low on disk space, OneDrive's Files On-Demand feature lets you keep files in the cloud and download them only when you need them. When you open a note in Octarine, OneDrive downloads it automatically, so you don't even notice the difference. And if you accidentally delete something or want to revert to an earlier version, OneDrive's version history and recycle bin have you covered—just head to the web interface to restore what you need. ### Working with Teams OneDrive makes collaboration simple. Create your workspace in a shared OneDrive folder (or a SharePoint library if you're using Microsoft 365 for work), and anyone with access can see your notes. Updates sync in real-time, and you can control permissions through OneDrive's sharing settings to decide who can view or edit. Team members can also use OneDrive's commenting features on the web or mobile to leave feedback without editing the files directly. ### When Things Don't Sync If your notes aren't syncing, here's what to check: - **Check OneDrive is running** and you're signed in - **Look for the cloud icon** in your system tray (Windows) or menu bar (macOS) — a checkmark or "Up to date" means everything's synced - **Click the icon for errors** if you see a sync error notification - **Verify storage quota** — if you're out of space, new changes won't sync - **Pause and resume sync** in OneDrive settings to kickstart syncing - **Refresh the file tree** by clicking the refresh icon in Octarine's toolbar - **Check Files On-Demand settings** — set your workspace folder to "Always keep on this device" instead of "Free up space" ### -------------------------------------------------------------------------------- title: "iCloud" description: "Backup your workspace to iCloud" source: "https://docs.octarine.app/backup/iCloud" -------------------------------------------------------------------------------- # iCloud If you're in the Apple ecosystem, iCloud Drive makes it easy to keep your notes synced across all your devices. Since Octarine just saves your notes as regular markdown files, you can drop your workspace right into iCloud Drive and let Apple handle the rest. ### Setting Up iCloud Sync Getting started is quick: 1. **Open Octarine** and create a new workspace (or open an existing one) 2. **Navigate to iCloud Drive** when choosing where to save — you'll usually find it under Locations in the file picker sidebar 3. **Create or select a folder** for your workspace 4. **Start working** — Octarine will now save everything to that iCloud folder, and your notes sync automatically to any device signed in with your Apple ID ### How It Works Octarine doesn't do anything special with iCloud—it just reads and writes files to your iCloud Drive folder like any other app. When you make a change, it's saved to iCloud immediately and appears on your other devices within seconds. You can edit a note on your Mac and pick up where you left off on your iPad or iPhone. If you're offline, don't worry. Your notes are cached locally, so you can keep working. Once you're back online, everything syncs up automatically. And if you've got large images or attachments in your workspace, iCloud prioritizes them based on what you're actively using. ### When Conflicts Happen Edit the same note on two devices while offline? iCloud creates conflict copies with timestamps in the filename. You'll see both versions in Octarine's file tree. Just review them, merge any changes you want to keep, and delete the conflict copy. The file tree updates automatically once you're done. ### Things to Keep in Mind The first time you open a large workspace, it might take a bit for everything to sync—especially if you've got a lot of attachments. After that, though, changes usually show up on other devices within seconds. Just make sure you have enough iCloud storage available and a decent internet connection. ### When Sync Isn't Working If your notes aren't syncing, here's what to check: - **Check iCloud Drive is enabled** in System Settings - **Verify storage space** — if you're out of space, nothing new will sync - **Force a sync** by right-clicking your workspace folder in Finder and selecting "Download Now" - **Refresh the file tree** by clicking the refresh icon in Octarine's toolbar - **Confirm internet connection** is active ### Platform Notes On macOS, you get full two-way sync with immediate updates. If you need to check your notes from a browser, you can view them (but not edit) at icloud.com. -------------------------------------------------------------------------------- title: "Syncthing" description: "Backup your workspace with Syncthing" source: "https://docs.octarine.app/backup/syncthing" -------------------------------------------------------------------------------- # Syncthing Want to keep your notes synced across devices without relying on cloud services? Syncthing is an open-source, peer-to-peer sync tool that keeps your files synchronized directly between your own devices—no third-party servers involved. It's perfect if you value privacy and want complete control over your data. ### What is Syncthing? Syncthing is a continuous file synchronization program that runs on your devices and syncs folders directly between them over your local network or the internet. Unlike cloud services, your files never touch someone else's servers—they go straight from one of your devices to another, encrypted in transit. It's free, open-source, and works on Windows, macOS, Linux, Android, and more. Once set up, it runs in the background and keeps your Octarine workspace in sync automatically. ### Setting Up Syncthing 1. **Install Syncthing** on all devices you want to sync — download from the [Syncthing website](https://syncthing.net/) 2. **Open the web interface** at `http://localhost:8384` in your browser 3. **Add devices:** - Find your Device ID in the Syncthing interface on each device - Click "Add Remote Device" on your other devices and paste the ID - Do this on both sides (e.g., add desktop's ID on laptop, and vice versa) 4. **Share your workspace folder:** - Click "Add Folder" in Syncthing's interface - Navigate to your Octarine workspace - Give it a label (like "Octarine Notes") - Choose which devices to share it with - Select "Send & Receive" mode for two-way sync 5. **Repeat on all devices** — point to the same workspace location and Syncthing will start syncing immediately ### How It Works Once configured, Syncthing runs continuously in the background, watching for changes in your workspace folder. When you save a note in Octarine, Syncthing detects the change and pushes it to your other devices within seconds (assuming they're online). Unlike cloud sync, Syncthing is peer-to-peer. If both your laptop and desktop are on the same network, files sync directly between them—fast and private. If one device is offline, Syncthing waits until it comes back online and then syncs the changes. ### Things to Know **File conflicts:** If you edit the same note on two devices while they're offline, Syncthing creates a conflict copy with a timestamp in the filename. You'll see both versions in Octarine's file tree—just review them, merge any changes, and delete the conflict copy. **Versioning:** Syncthing supports versioning, so if you accidentally delete or overwrite a file, you can recover previous versions. You'll need to enable this in the folder settings (look for "File Versioning" and choose a method like "Simple File Versioning" or "Staggered File Versioning"). **Performance:** The first sync can take a while if you have a large workspace, but after that, Syncthing only syncs changes, so it's fast. It uses minimal resources and runs quietly in the background. ### When Things Don't Sync If your notes aren't syncing, here's what to check: - **Check Syncthing is running** on all devices (look for the icon in your system tray or menu bar) - **Verify devices are connected** — they should show as "Connected" in the web interface - **Enable Relay** in settings if devices are on different networks - **Check firewall settings** — review Syncthing logs for connection errors - **Refresh the file tree** by clicking the refresh icon in Octarine's toolbar ### Why Choose Syncthing? Syncthing is great if you want: - **Privacy:** Your files never leave your devices except to go to your other devices. - **No storage limits:** You're only limited by the space on your own devices. - **No subscription fees:** It's completely free and open-source. - **Control:** You decide what syncs, when, and with which devices. It takes a bit more setup than a cloud service, but once it's running, it's rock-solid and completely private. ### -------------------------------------------------------------------------------- title: "URI Scheme" description: "URI scheme for deep linking to notes and actions, with support for external automations and x-callback-url integrations." source: "https://docs.octarine.app/workflows/uri-scheme" -------------------------------------------------------------------------------- # URI Scheme Octarine supports deep links via the `octarine://` URL scheme (or `octarine-staging://` for staging builds). These allow external tools like Raycast, Alfred, Shortcuts, and AI assistants (Claude, ChatGPT) to interact with your notes. ## URL Format ```plaintext octarine://?param1=value1¶m2=value2 ``` Or with explicit action parameter: ```plaintext octarine://host?action=¶m1=value1 ``` ## x-callback-url Support Octarine supports the [x-callback-url](http://x-callback-url.com/) specification, allowing external apps to receive results from Octarine actions. ### Callback Parameters | Parameter | Description | | --- | --- | | `x-success` | URL to open on successful completion | | `x-error` | URL to open if an error occurs | | `x-cancel` | URL to open if the operation is cancelled | | `x-source` | Name of the calling app (optional, for display) | ### Success Callback Data On success, Octarine appends result data to the `x-success` URL: | Action | Data Appended | | --- | --- | | `open` | `path`, `workspace` | | `create` | `path`, `workspace`, `action` (created/appended/replaced) | | `daily` | `path`, `date` or `week`, `workspace`, `action` | | `search` | `query`, `workspace` | ### Error Callback Data On error, Octarine appends to the `x-error` URL: - `errorCode` - Machine-readable error code - `errorMessage` - Human-readable error description ### Error Codes | Code | Description | | --- | --- | | `workspace_not_found` | Specified workspace doesn't exist | | `file_not_found` | File path doesn't exist | | `missing_parameter` | Required parameter not provided | | `invalid_date` | Could not parse date/week format | | `save_failed` | Failed to save file | | `unknown_action` | Unrecognized action | ### Example with Callbacks **Apple Shortcuts - Run another shortcut on success:** ```plaintext octarine://create?path=inbox/note&content=Hello&x-success=shortcuts://run-shortcut?name=NoteCreated # On success, runs the "NoteCreated" shortcut with parameters: shortcuts://run-shortcut?name=NoteCreated&path=inbox/note.md&workspace=Personal&action=created ``` **Apple Shortcuts - Open a URL on success:** ```plaintext octarine://daily?date=today&content=Task%20complete&x-success=https://example.com/webhook?status=done # On success, opens in browser: https://example.com/webhook?status=done&path=Daily/2026-01-06.md&action=appended ``` **Generic webhook on error:** ```plaintext octarine://create?path=important/note&content=Data&x-error=https://example.com/alert?type=octarine-error # On error, calls: https://example.com/alert?type=octarine-error&errorCode=save_failed&errorMessage=Error%20saving%20file ``` --- ## Common Parameters These parameters are available across most actions: | Parameter | Type | Description | | --- | --- | --- | | `workspace` | string | Workspace name to target. If omitted, uses current workspace. | | `compressedContent` | string | LZ-String base64 compressed content (for large payloads) | --- ## Actions ### `open` - Open an existing note Opens a specific note file in a new tab. **Parameters:** | Parameter | Required | Type | Description | | --- | --- | --- | --- | | `path` | Yes | string | Path to the note (relative to workspace root) | | `workspace` | No | string | Target workspace name | **Examples:** ```plaintext # Open a note in current workspace octarine://open?path=notes/meeting.md # Open a note in a specific workspace octarine://open?path=Projects/roadmap.md&workspace=Work # Path without .md extension (auto-added) octarine://open?path=inbox/quick-note ``` **Behavior:** - Navigates to the workspace notes view - Opens the file in a new tab - If file doesn't exist, tab will show empty/error state --- ### `search` - Execute a search query Opens the search drawer with a pre-filled query. **Parameters:** | Parameter | Required | Type | Description | | --- | --- | --- | --- | | `query` | Yes | string | Search query text | | `workspace` | No | string | Target workspace name | **Examples:** ```plaintext # Search in current workspace octarine://search?query=project%20alpha # Search with special characters (URL encoded) octarine://search?query=%23todo%20urgent # Search in specific workspace octarine://search?query=meeting%20notes&workspace=Work ``` **Behavior:** - Opens the sidebar - Opens the search drawer - Pre-fills the search query - Search is case-insensitive by default --- ### `daily` - Open a daily or weekly note Opens the daily or weekly note for a specific date. Supports natural language dates and ISO week format. Can optionally add content to the note. **Parameters:** | Parameter | Required | Type | Default | Description | | --- | --- | --- | --- | --- | | `date` | Yes | string | \- | Date (YYYY-MM-DD), week (YYYY-Www), or natural language | | `content` | No | string | \- | Content to add to the note | | `template` | No | string | \- | Template name to use as initial content | | `fresh` | No | `true` | `false` | `false` | | `position` | No | `top` | `bottom` | `bottom` | | `separator` | No | string | `\n\n` | Separator between existing and new content | | `openAfter` | No | `true` | `false` | `true` | | `workspace` | No | string | current | Target workspace name | **Supported Date Formats:** - ISO date: `2024-01-15`, `2024-12-25` - ISO week: `2024-W03`, `2026-W1` - Natural language dates: `today`, `yesterday`, `tomorrow` - Relative dates: `2 days ago`, `next monday`, `last friday` - Partial dates: `jan 15`, `december 25`, `nov 3` - Natural language weeks: `this week`, `last week`, `next week` - Relative weeks: `2 weeks ago`, `in 2 weeks` **Examples:** ```plaintext # Today's daily note (just open) octarine://daily?date=today # Yesterday's note octarine://daily?date=yesterday # Specific date octarine://daily?date=2024-01-15 # Natural language octarine://daily?date=last%20friday octarine://daily?date=2%20days%20ago # Weekly notes (ISO week format) octarine://daily?date=2024-W03 octarine://daily?date=2026-W1 # Natural language weeks octarine://daily?date=this%20week octarine://daily?date=last%20week octarine://daily?date=2%20weeks%20ago # Add content to today's note (appends if exists, creates if not) octarine://daily?date=today&content=Remember%20to%20call%20Mom # Add content to top of daily note octarine://daily?date=today&content=%23%23%20Morning%20Entry&position=top # Replace daily note content entirely octarine://daily?date=today&content=Fresh%20start&fresh=true # Add to weekly note without opening octarine://daily?date=this%20week&content=Weekly%20goal&openAfter=false # Create daily note using a template octarine://daily?date=today&template=daily-template # Create weekly note using a template octarine://daily?date=this%20week&template=weekly-review ``` **Behavior:** - For dates: Opens/creates `Daily/YYYY-MM-DD.md` - For weeks: Opens/creates `Daily/Weekly/YYYY-WNN.md` - If `content` provided: auto-appends to existing file or creates new file - If `template` provided: uses template content (takes priority over `content`) - If `fresh=true`: replaces existing content instead of appending - When `position=top`, preserves frontmatter at the top and inserts after it --- ### `create` - Create or update a note Creates a new note or updates an existing one. By default, appends content to existing files (upsert behavior). **Parameters:** | Parameter | Required | Type | Default | Description | | --- | --- | --- | --- | --- | | `path` | Yes | string | \- | Path for the note (relative to workspace) | | `content` | No | string | "" | Content for the note | | `contentReference` | No | string | \- | URL or file path to fetch content from | | `template` | No | string | \- | Template name to use as initial content | | `compressedContent` | No | string | \- | LZ-String base64 compressed content | | `fresh` | No | `true` | `false` | `false` | | `position` | No | `top` | `bottom` | `bottom` | | `separator` | No | string | `\n\n` | Separator between existing and new content | | `openAfter` | No | `true` | `false` | `true` | | `workspace` | No | string | current | Target workspace name | **Examples:** ```plaintext # Create empty note (or open if exists) octarine://create?path=inbox/new-idea # Create with content (appends if file exists) octarine://create?path=inbox/task&content=%23%20New%20Task%0A%0A-%20%5B%20%5D%20Item%201 # Create from URL content octarine://create?path=imports/article&contentReference=https://example.com/doc.md # Add to top of note octarine://create?path=inbox/updates&content=%23%23%20Update&position=top # Add content without opening octarine://create?path=inbox/quick&content=Note&openAfter=false # Replace file content entirely octarine://create?path=inbox/draft&content=Starting%20over&fresh=true # Create in specific workspace octarine://create?path=Projects/feature&content=Feature%20spec&workspace=Work # Create note using a template octarine://create?path=meetings/standup&template=meeting-notes # Template with .md extension also works octarine://create?path=projects/new-project&template=project-template.md ``` **Behavior:** - Auto-adds `.md` extension if not present - **Upsert by default**: Creates file if doesn't exist, appends if it does - With `fresh=true`: Replaces existing content entirely - When `position=top`, preserves frontmatter at the top and inserts after it - Shows toast notification with result ("Created", "Appended to", or "Replaced") **Content Priority:** When multiple content sources are provided, they are resolved in this order: 1. `template` - If provided and template exists, uses template content 2. `contentReference` - If no template match, fetches from URL/file 3. `content` - Falls back to inline content parameter **Use Case - AI Update List:** ```plaintext # Claude adding an update (auto-appends to existing) octarine://create?path=inbox/claude-updates&content=%23%23%20Jan%203%2C%202026%0A%0A-%20Completed%20feature%20X&position=top ``` **Use Case - Daily Standup Template:** ```plaintext # Replace with fresh template each day octarine://create?path=work/standup&content=%23%20Standup%0A%0A%23%23%20Yesterday%0A%0A%23%23%20Today%0A%0A%23%23%20Blockers&fresh=true ``` --- ## URL Encoding Special characters must be URL-encoded: | Character | Encoded | | --- | --- | | Space | `%20` | | Newline | `%0A` | | `#` | `%23` | | `/` | `%2F` | | `?` | `%3F` | | `&` | `%26` | | `=` | `%3D` | **Example with markdown content:** ```plaintext # Original content: ## Heading - Item 1 - Item 2 # URL encoded: octarine://create?path=test&content=%23%23%20Heading%0A%0A-%20Item%201%0A-%20Item%202 ``` --- ## Large Content: LZ-String Compression For large content that might exceed URL length limits, use LZ-String base64 compression: ```javascript const content = "# Very long document..."; const compressed = LZString.compressToBase64(content); const url = `octarine://create?path=doc&compressedContent=${encodeURIComponent( compressed )}`; ``` --- ## Integration Examples ### Shell Script - Daily Log ```bash #!/bin/bash # Append timestamped entry to daily log TIMESTAMP=$(date "+%H:%M") ENTRY="- [$TIMESTAMP] $1" ENCODED=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$ENTRY'))") open "octarine://daily?date=today&content=$ENCODED&openAfter=false" ``` ### Shell Script - Quick Capture ```bash #!/bin/bash # Add quick note to inbox NOTE_CONTENT="$1" ENCODED=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$NOTE_CONTENT'))") open "octarine://create?path=inbox/quick-capture&content=$ENCODED&openAfter=false" ``` ### Browser Bookmarklet ```javascript // Save page info as a note (add as bookmark URL) javascript: (function () { const title = document.title.replace(/[^a-zA-Z0-9 ]/g, ""); const content = `# ${document.title}\n\nURL: ${ window.location.href }\n\nSaved: ${new Date().toISOString()}`; window.location.href = `octarine://create?path=web-clips/${encodeURIComponent( title )}&content=${encodeURIComponent(content)}`; })(); ``` ### Browser Bookmarklet - Save Selection ```javascript javascript: (function () { const sel = window.getSelection().toString(); if (!sel) { alert("Select some text first"); return; } const content = `# Clip from ${document.title}\n\nSource: ${window.location.href}\n\n> ${sel}`; window.location.href = `octarine://create?path=inbox/web-clip&content=${encodeURIComponent( content )}`; })(); ``` ### Claude/AI Assistant ```plaintext To save this information to your notes, use: octarine://create?path=inbox/ai-research&content=%23%23%20Research%20Summary%0A%0A...&position=top ``` ### AppleScript - Capture from Any App ```applescript -- Save clipboard to daily note set clipContent to the clipboard as text set encodedContent to do shell script "python3 -c \"import urllib.parse; print(urllib.parse.quote('" & clipContent & "'))\"" open location "octarine://daily?date=today&content=" & encodedContent & "&openAfter=false" ``` ### PopClip Extension (macOS) ```yaml # Config.yaml for PopClip extension name: Save to Octarine icon: square and pencil url: octarine://create?path=inbox/popclip&content=*** ``` ## Error Handling All actions show toast notifications for: - Success: Green toast with action confirmation ("Created", "Appended to", "Replaced") - Error: Red toast with error message Common errors: - "Workspace not found" - Invalid workspace name - "File not found" - Path doesn't exist (for `open` action) - "Could not parse date" - Invalid date format (for `daily` action) - "Missing X parameter" - Required parameter not provided - "Error saving file" - File system error during save - "Invalid deep link URL format" - Malformed URL --- ## Platform Notes | Platform | URL Scheme Registration | | --- | --- | | macOS | Automatic via Info.plist | | Windows | Runtime registration on app start | | Linux | Runtime registration on app start | The deep link handler has a 1-second debounce to prevent duplicate executions when the same URL is triggered multiple times rapidly. --- ## Copying Octarine URLs You can copy the Octarine URL for any note using: 1. **Command Bar** (Cmd+K): Search for "Copy Octarine URL" 2. **Note Menu**: Click the settings icon in the note breadcrumb -> "Copy Octarine URL" The copied URL format: ```plaintext octarine://open?path=notes%2Fmeeting.md&workspace=My%20Workspace ``` ## Best Practices ### URL Stability - **Use relative paths**: Octarine URLs use paths relative to the workspace root, so they survive workspace folder moves - **Include workspace name**: For multi-workspace setups, always include the `workspace` parameter - **Use URL encoding**: Always encode special characters, especially spaces, newlines, and `#` ### Performance - **Use** `openAfter=false` for background operations when you don't need to see the result - **Batch operations**: For multiple entries, consider building content in your script and doing one create - **Use** `fresh=true` sparingly - only when you intentionally want to replace content ### Content Behavior - **Default is upsert**: `create` and `daily` actions auto-append to existing files - **Use** `fresh=true` to replace content entirely (e.g., regenerating a template) - **Use** `position=top` for reverse-chronological logs (newest first) - **Use** `position=bottom` (default) for chronological logs ### Error Handling - All deep link actions show toast notifications for success/failure - Use `x-error` callback to handle errors programmatically - Use `x-success` callback to chain actions or confirm completion - Invalid workspaces or paths result in error toasts ### Security - Deep links can only access workspaces configured in Octarine - No access to arbitrary filesystem paths outside workspaces - Content is never executed, only inserted as text -------------------------------------------------------------------------------- title: "Obsidian" description: "Quickly setup your existing Obsidian vault as a workspace in Octarine" source: "https://docs.octarine.app/importing/obsidian" -------------------------------------------------------------------------------- # Obsidian Moving from Obsidian to Octarine? Since both apps use standard markdown files stored locally, migration is pretty straightforward. You can turn your existing vault into an Octarine workspace with just a few adjustments. ### Direct Migration The quickest way is to create a workspace from your existing Obsidian vault: Open Octarine and click the **Workspace Switcher** in the top-left corner. Select **Create Workspace**, give it a name, and toggle **Use an existing folder?**. Navigate to your Obsidian vault and press Create. That's it—Octarine will start using your vault as a workspace. ### Adjusting the Folder Structure Octarine has a few conventions that might differ from your Obsidian setup. Here's what to check: **Attachments:** If your vault uses a different attachment folder, create a `.attachments` folder in your vault root and move all images and media there. Octarine expects attachments to be referenced as `[[filename.png]]`, so you might need to update some links. **Linked Notes:** Obsidian gives you options for how to store wikilinks, but Octarine is stricter. Notes need to include the entire path (except the workspace path) in the link. For example, a note called `Hello` inside a folder called `New Folder` should be linked as `[[New Folder/Hello]]`. If you just write `[[Hello]]`, Octarine will look for it in the root folder, not in nested folders. **Templates:** If you use templates, create a `.templates` folder in your vault root and move your template files there. **Daily Notes:** If your daily notes aren't already in a `Daily` folder, create one and move them there. Make sure they follow the `YYYY-MM-DD.md` naming format so Octarine can recognize them. ### Compatibility Notes Octarine supports Obsidian's `[[wikilink]]` syntax natively, though aliases aren't supported yet. Absolute paths are required for storage, but you can change the setting for how they're displayed in the UI. Tags work seamlessly—both `#tag` and `#nested/tag` formats are fully supported. -------------------------------------------------------------------------------- title: "Troubleshooting" description: "Resources on how to raise bugs or feature requests" source: "https://docs.octarine.app/help/troubleshooting" -------------------------------------------------------------------------------- # Troubleshooting ### Questions and Advice Have a question about how Octarine works, or just want to connect with other users? The best place to start is the [Discord server](https://octarine.app/discord). It's a friendly community where you can ask questions, share tips, and learn from other people using Octarine. ### Requesting Features or Reporting Bugs Found a bug or have an idea for a new feature? I'd love to hear about it. Before submitting, take a quick look through the existing issues to make sure someone else hasn't already reported it—this helps keep things organized and avoids duplicates. To submit a bug report or feature request: - Head over to the [Feedback Tracker](https://github.com/rajatkulkarni95/octarine-feedback/issues) and create a new issue - Choose either `Bug` or `Feature Request` depending on what you're submitting - Include as much detail as possible—screenshots, steps to reproduce, context about what you were trying to do—so we can get to the bottom of it faster You can also report bugs or suggest features on the Discord server if you prefer, though the GitHub tracker is the best place to make sure nothing gets lost. ### Email Support If you're a Pro License user, you have access to direct email support. You'll find the support email address in the order summary from your purchase. Feel free to reach out for any questions or issues. That said, if you're reporting a bug or requesting a feature, please use the Feedback Tracker or Discord instead—that way the whole community can benefit from the discussion and any solutions we come up with. -------------------------------------------------------------------------------- title: "Refund Policy" description: "Information about refunds for Octarine Pro licenses" source: "https://docs.octarine.app/help/refunds" -------------------------------------------------------------------------------- # Refund Policy ### Refund Policy We want you to be completely satisfied with Octarine. If you've purchased a Pro license and it's not the right fit, we offer a straightforward refund policy. ### Eligibility You can request a full refund within **7 days** of your purchase, no questions asked. After this period, refunds are evaluated on a case-by-case basis. ### How to Request a Refund To request a refund: 1. Contact us at the support email address provided in your purchase confirmation 2. Include your order number or purchase email in your request 3. We'll process your refund within 6-10 business days **Important:** Once you request a refund, your Pro license will be immediately deactivated and you will lose access to all Octarine Pro features. This happens as soon as the refund process begins, not when the payment is returned. Refunds are issued to the original payment method used for the purchase. ### Questions? If you have any questions about our refund policy or need assistance, please reach out through: - Email support (for Pro license holders - check your purchase confirmation for the address) - Our [Discord community](https://octarine.app/discord) - The [Feedback Tracker](https://github.com/rajatkulkarni95/octarine-feedback/issues) We're here to help make sure you have a great experience with Octarine.