macOS
.dmgOpen a local Markdown vault from the desktop build shaped for long writing sessions.
Cortex is local-first, open source, and built on plain Markdown files, with optional sync that keeps readable notes on your devices.

Cortex keeps the daily loop tight: edit in Markdown, jump between notes, split context, and stay close to the keyboard.
No import ceremony. Cortex reads the folder you already trust.
Markdown stays editable while structure, links, and callouts stay readable.
Jump to a note, open a split, and keep context visible while you write.
The last step still points back to a normal Markdown file on disk.

Choose folders when the hierarchy is obvious, tags when relationships matter, and bookmarks when a note needs to stay one gesture away.

Move across devices while keeping plaintext out of the service. Use hosted sync when it fits, or run the server yourself.

Sync is a product story about ownership: client-side encryption, encrypted blob storage, history, and a self-hostable path.
Notes are encrypted on your device before Cortex Sync stores encrypted blobs.
Version history and conflict recovery make changes understandable across devices.
Use the hosted service when it fits, or run the open-source sync server yourself.
Readable Markdown remains on your devices; the service handles encrypted blob storage.
~/notes
offline
.md
open source
encrypted blob
Optional sync stores encrypted blobs; the readable Markdown stays on your devices.
Plugins can extend the parts of Cortex people actually use every day: editing, commands, sidebars, status, settings, and small workflow shortcuts. The notes stay plain Markdown underneath.
Add commands, editor behavior, sidebar views, and status details around the vault without changing how notes are stored.
Marketplace plugins are open source and reviewed by the Cortex team before they are listed for the community.
import { CortexPlugin } from "cortex-plugin-api"import { GITHUB_EMOJI_MAP } from "./emojiMap"export default class GitHubEmojiPlugin extends CortexPlugin { onload() { this.registerMarkdownInline({ id: "github-emoji", pattern: ":([a-z0-9_+-]+):", replacement: (match) => GITHUB_EMOJI_MAP[match[1]] ?? match[0], }) this.addCommand({ id: "insert-emoji", label: "Insert Emoji", execute: () => this.api.editor.insertAtCursor(":sparkles: "), }) this.registerView({ id: "emoji-browser", label: "Emoji Browser", location: "sidebar-left", }) }}
Community themes can reshape Cortex through custom CSS packages while the vault stays plain Markdown. Bring a different mood to the app without making your files depend on it.
Install a custom theme under .cortex/themes and let the package override documented CSS variables and selector hooks.
A theme manifest can point Cortex to light.css and dark.css so the same personality works across both color schemes.
Themes can change color, density, radius, and chrome without changing Markdown storage or the commands people rely on.
The CLI mirrors the real extension loop: create a project, run vault-scoped dev mode, build, validate, and prepare publish artifacts when the plugin or theme is ready.
# Start from the plugin template$cortex plugin create github-emojiPlugin 'github-emoji' created successfully$cd github-emoji && bun installdependencies installedShort answers for the product decisions people usually want to understand first.
Cortex Sync
Hosted Cortex Sync adds encrypted blob storage to the local-first Markdown workspace. It stays optional, and the vault stays readable on disk.
Open a local Markdown vault from the desktop build shaped for long writing sessions.
Install Cortex on your main workspace machine and keep files readable on disk.
Run Cortex from a portable desktop package while your vault stays plain Markdown.