Curio 34 Release Notes πŸ“–

Release Date

🚧 This preview beta release is still under construction!
🚨 Play it safe and make backups of your projects!
πŸŸͺ The most recent build updates have this purple background highlighting.

Requirements

Curio 34 runs on macOS 15 Sequoia through macOS 27 Golden Gate on Apple silicon or Intel.

Feature Availability

Features only available in certain editions will be listed with colored tags, like .

New Features

Kanban Boards

Curio now includes Kanban boards: collections that automatically generate sorted stacks from a selected grouping, giving you a fast Trello-style way to organize work.

Kanban

Kanban supports grouping by priority, rating, tag sets (where only one tag in the set can be selected, like GTD), and various dates such as start, due, and last modified. Kanban dynamically constructs one stack per group value, including fallback stacks such as none, unrated, or untagged, and each stack automatically sorts its items by the chosen sort option: title, action date, start date, due date, percent complete, rating, or priority.

Dropping a figure into a specified stack or moving figures between stacks updates that figure's meta to match the destination stack. For example, in a priority-grouped Kanban move a figure from Low to Urgent to change its priority, or in a tag-grouped Kanban move a figure from On Hold to Active. This works when grouping by date too: drag a figure into the Tomorrow stack of a start-date Kanban and Curio sets its start date to tomorrow, or drag items in from another collection like a stack or list to quickly schedule them. (For an action-date Kanban β€” which tracks a figure's start date until the task is underway, meaning its percent complete has climbed above zero, then switches to its due date β€” Curio sets whichever date keeps the figure in the stack you dropped it on.) You can also still double-click within any date stack to create a new item with an appropriate representative date. And whatever the grouping, editing a figure's grouping property in the inspector β€” its priority, rating, tag, or date β€” automatically moves it into the appropriate stack.

Select a different grouping or sorting at any time and the stacks are regenerated, if necessary, and your figures reshuffle into the appropriate stacks.

KanbanInspector

You can set a default stack style for your Kanban board, and even set custom stack styles which are keyed by column identifier (e.g. red fill for Urgent priority, cool blue for Low) so they are automatically restored if you change grouping.

Kanban includes a handy spread colors option in the inspector so you can pick a base color and Curio evenly distributes hues across generated stacks, automatically recalculating the spread when grouping changes.

For those that love keyboard shortcuts note that in the Insert main menu Stack is now βŒƒβŒ˜S (was βŒƒβŒ˜K) so that Kanban can be βŒƒβŒ˜K. Likewise in the Insert popover pressing S now goes into the Stack gallery and K into the Kanban gallery.

Smart Kanban Boards

Curio Pro makes Kanban boards even more powerful by supporting query-backed Kanban boards. Start with an empty Kanban with selected grouping and sorting options, then enter a Search-style query. Curio instantly finds matching figures from across your project, then dynamically generates the appropriate stacks and fills them with Curio Pro's synced figure instances pointing to the original figures. This allows you to edit a figure's text or change its meta, and it instantly syncs with the original figure.

Smart Kanban boards support the drag-and-drop feature described above so you can move a figure between stacks to change its meta, including tag set changes for query results that represent Organizer items, and the Kanban refreshes automatically when searchable project content changes. Date-grouping drag is the exception β€” because a query board's stacks are driven by your query rather than owned by the board, dragging between date stacks isn't supported there; use a standard Kanban for that.

As an example, let's say we have the following todo list in our project with items tagged from the Paper tag set, priorities, and automatic date rollups.

KanbanQuerySource

Let's create a Kanban that pulls information from that list via the query #paper. Below is the same Kanban showing different groupings (and styles) of that data: Start Date (Colors), Priority (Cello), Paper tag set (Dusk).

KanbanQuery1

KanbanQuery2

KanbanQuery3

And of course the query could have pulled in data from across the project based on any query you wish, not just from a single list.

Table Formulas

Curio Pro table cells can now include Excel-like structured reference formulas using column names (more user-friendly than A1-style references), with support for current-row references like [@Column] and whole-column references like [Column].

Any table cell starting with = is evaluated and Curio displays the computed result in the cell. Supported operators/functions include +, -, *, /, parentheses, and functions like SUM, AVERAGE, MIN, MAX, MEDIAN, COUNT, COUNTA, ROUND, ABS, INT, CEILING, FLOOR, and TEXT for number formatting.

Unlike markdown table formulas, described below, native table cells can use Curio's Text Figure Formatters so you can keep formulas numeric and apply number, currency, percentage, scientific, or other formatting via the inspector instead of relying on TEXT(value,formatter).

TableFormulaRendered

In this table, the row values in the Total column are all =[@Price]*[@Quantity]; notice the @ references the value in the specified column for the current row. The bottom cell in Total is =SUM([Total]) to get the sum of the entire named column. We format it with a numeric formatter chosen from the text inspector.

Markdown Table Formulas

Curio Pro markdown tables in text figures can now include Excel-like structured reference formulas using column names. Any cell starting with = is evaluated before markdown styling so operators like * won’t be interpreted as emphasis. Formulas can reference the current row via [@Column] and entire columns via [Column].

Supported operators/functions include +, -, *, /, parentheses, and functions like SUM, AVERAGE, MIN, MAX, MEDIAN, COUNT, COUNTA, ROUND, ABS, INT, CEILING, FLOOR, and TEXT for number formatting.

Here's a text figure in Curio containing a markdown table with formulas and formatters (see the raw markdown). This is all dynamic! Change a price or quantity and when you finish editing, the cells are recalculated and numeric formatting is applied.

MarkdownTableFormulaRendered

In this table, the row values in the Total column are all =[@Price]*[@Quantity]; notice the @ references the value in the specified column for the current row. The bottom cell in Total is =SUM([Total]) to get the sum of the entire named column. We format it with =TEXT(SUM([Total]),"$#,##0.00").

Table Sorting

TableSortTable cell context menus now include Sort Ascending and Sort Descending actions by selected column, sorting body rows while keeping row header and footer rows fixed. This sort occurs when you apply the sort, not dynamically as you change cell values.

Synced Collection Instances

Curio Pro now supports synced collection instances, so you can copy a list, mind map, or stack and paste as a Synced List, Synced Mind Map, or Synced Stack.

Synced collections mirror the source hierarchy (including root, parent-child structure, and item order) while each item remains a synced figure instance, so content and meta changes propagate across all linked copies.

Edit text and metadata in the original or any synced instance and Curio keeps all linked items in sync automatically. Synced instances also support delete, rearrange, indent, and outdent, with changes reflected to the original and all other instances; only add remains read-only in synced instances and must be made in the original collection.

When a synced collection is selected, hover near the top edge and a small jump button appears. If the selected collection is the original source it jumps to a synced instance; if the selected collection is a synced instance it jumps to the original source.

Here we have a list which has been copied then pasted as a synced list and a synced mind map. Changes to any are reflected to the others.

References Panel

Curio Pro now includes a References panel in the Meta inspector so you can attach typed references to figures. Each reference combines a reference type and a jump target, making related evidence and context easy to organize.

Use Add from Clipboard to create a reference from either a copied Curio jump target or a URL currently on the clipboard. Web references can be updated later, while Curio jump references remain read-only.

With multiple figures selected, Curio shows only references shared by every selected figure (same type and same target), so you can update or delete those common references in one step.

References

Project Tag Sets

Curio now supports project tag sets. Unlike global tag sets which are shared across all projects, project tag sets are scoped to a single project.

ProjectTagSetsTable

ProjectTagSetsClick the Add Tag Set button in the Tags panel to choose between creating a Project Tag Set or a Global Tag Set. Project tag sets appear in the tags table with a briefcase icon on the far right to distinguish them from global (globe icon) and extracted (lock icon) tag sets.

Project tag sets support all the same features as global tag sets including custom colors, adding and removing tags, renaming, and the Only One Tag Can Be Set option for use with Kanban board grouping. They also appear in Kanban grouping and Status Shelf sort and group-by menus.

Use the Actions menu to promote project keywords to a global or project tag set, or convert an entire project tag set to a global tag set. Tags and tag sets can be reordered via drag and drop within their respective zones, and separate sort commands are available for project and global tag sets.

Relatedly, throughout the docs and UI, we've renamed Local Project Tags to Project Keyword Tags, and Cross Project Tags to Global Keyword Tags just to standardize our terminology.

Curio CLI

CodexCurio supports automation through Curio CLI, a new separately downloaded command line tool named curio that opens up Curio to Terminal users, scripts (ex: shell, Python), LLM agents (ex: Codex, Claude Code, Antigravity CLI, OpenClaw), and MCP hosts (ex: Claude Desktop).

Its extensive command set covers querying, reading and updating figures and idea spaces, creating Organizer sections and idea spaces, importing and exporting content, running scripted batches, and navigating around your projects — all from the shell. The CLI is an extra perk for Curio Pro sustainers with either an active subscription or a traditional license within its current update window.

Give your favorite LLM access to all your Curio data to rewrite text, fine-tune images, perform deep queries and analysis, import and export content, create Organizer structure, set meta values, navigate to figures or idea spaces, inspect available fields, and much more.

The CLI supports two modes: a live app mode that talks to the running Curio app for selection-aware and writable operations, and a direct --project mode that can query a .curio file on disk without Curio running. Direct project mode is read-only and ideal for automation and analysis tasks.

Spread PDF automation imports explicitly persist every populated page drawing before returning, preventing an immediate scripted close from leaving saved idea spaces with blank canvases.

Project navigation reliably makes an already-open project current for subsequent selection-aware commands. Newly saved projects remain consistently bound across read and mutation requests, so section-addressed creation and imports work immediately after the first save without a close-and-reopen cycle.

Organizer hierarchy automation includes a readable parent_id field, separate absolute section_path and organizer_path fields for their distinct hierarchy namespaces, and recursive Organizer-order listings that report both their top-level count and descendant-inclusive total_count.

CLI

The CLI ships as a separate install from the main Curio app, which lets us roll out security fixes, protocol updates, and new features on its own rapid cadence independent of the main app's release schedule. Curio briefly introduces the CLI before installing or downloading it, with a direct link to learn more. The CLI works with both the Zengobi website and Mac App Store editions of Curio, checks for its own updates automatically, and has its own Curio CLI docs and Curio CLI release notes.

Curio MCP

ClaudeCurio MCP extends the Curio CLI with a built-in Model Context Protocol stdio server, so AI clients like Claude Desktop can launch curio mcp-server and talk to Curio over stdio with full CLI parity. Because Curio MCP is delivered by the Curio CLI, it is likewise an extra perk for Curio Pro sustainers with either an active subscription or a traditional license within its current update window.

MCP hosts such as Claude Desktop can launch the same installed curio binary on demand and gain direct access to Curio tools like querying, reading fields, setting metadata, importing, exporting, and navigation through a shared command runner with full CLI parity.

Claude Desktop users can easily integrate with Curio MCP with curio claude install, which creates and opens Claude Connector (.mcpb package) with Curio's tool and prompt metadata already included.

Curio macOS App Intents

ShortcutsCurio now includes native App Intents integration for Apple's Shortcuts app on macOS, giving you a system-friendly automation surface for opening projects, finding items, reading the current selection, navigating to results, exporting content, and importing files into the current idea space.

Unlike the Curio CLI, which is aimed at Terminal users and scripts, App Intents presents Curio's automation as native Shortcuts actions and typed results. This makes it easy to build Mac automations that pass Curio files, items, links, and exported documents directly between Curio and other Shortcuts actions.

Curio's first App Intents release includes actions such as Open Project, Find Items, Get Selected Figure, Get Selected Figures, Get Current Idea Space, Navigate, Export Selected Figures, Export Selected Idea Spaces, and Import Into Current Idea Space, giving you a practical Shortcuts-first surface without requiring any command-line setup.

Curio macOS Widgets

WidgetStatusCurio now includes macOS Desktop and Notification Center widgets, letting you see your project data and tasks at a glance without switching to Curio.

The Status widget mirrors Curio Pro's Status shelf, showing tasks aggregated across all your projects in a single zero-configuration view. It automatically reflects whatever grouping and sorting you have selected in the Status shelf. Status widgets are available in medium and large sizes.

WidgetQuery

The Query widget displays results from a specific project query. Configure each widget with a project and a Curio query string and the widget shows matching items with priority indicators, due dates, progress, and other metadata. Query widgets come in small, medium, and large sizes, and support grouped and sorted results just like Search. You can add multiple Query widgets with different projects and queries to build a personalized dashboard. Tapping any item opens Curio and navigates directly to it.

Paragraph and Character Text Styles

ParagraphStylesPopupCurio now includes Keynote-like text styles so you can manage consistent text formatting across a project. Paragraph styles are for entire paragraphs and include attributes such as alignment, spacing, font, color, etc. Character styles are used for ranges within paragraphs and include attributes like font, color, etc.

ParagraphCharStyles

CharacterStylesPopupApply styles from the inspector or the Format > Paragraph Styles and Format > Character Styles submenus, which means you can assign keyboard shortcuts to styles via System Settings.

Make changes to styled text, then click the Update button to update the style and broadcast those changes to all text that uses that style throughout your project!

Curio Pro markdown users can specify text style names in their master markdown file to keep rich text styles and markdown styles in sync, ex: # = paragraph-style: Heading 1. Tweak your text style and instantly your markdown reflects that change as well!

Use the actions menu to create, rename, delete, and clear overrides; deleting a style keeps the rendered text as-is. Export/import project text styles with your personal repository. These styles are imported automatically into new projects.

New Kerning Options

As shown in the text inspector screenshot above, a new Kerning control lets you adjust the spacing between characters for the selected figure or text. Tighten it to pull letters closer together or loosen it to spread them apart β€” handy for fine-tuning the look of titles and headings.

New Line Height Options

LineHeightPopup

The text inspector's Line Height popup now offers Automatic, Line Height Multiplier, Minimum Line Height, Exact Height, Space Between Lines, and From Grid. This means you can easily specify spacing parameters without having to jump into the macOS Spacing dialog.

LineHeight

New Paragraph Spacing Controls

The text inspector now allows you to set extra spacing before and after paragraphs. Enter point values or use the steppers; use 0 to remove extra spacing. Much easier than having to use the macOS Spacing dialog.

ParagraphSpacing

New Adornment Positions

The Adornments position control now supports additional top and bottom placement options near the corners, giving you 12 total positions around a figure for checkboxes, tags, dates, priorities, ratings, and other adornments.

AdornmentLocations

Separated Checkbox Adornments

As demonstrated in the Kanban screenshots above, you can now optionally keep the checkbox adornment pinned on the left while placing all other adornments (tags, dates, priority, rating, and more) anywhere around the figure.

AdornmentLeftCheckbox

This gives you a stable checklist lane for fast scanning while still letting metadata adornments sit on the top, bottom, or right sides as needed. List and mind map layouts now honor each figure's adornment location instead of forcing adornments to the left.

Collections can now optionally force adornment placement for contained items via the Meta inspector with a Collection items location: toggle, plus Left checkbox and a radial position control for item adornments.

For Kanban boards this collection-level override is especially useful because the board pushes those settings into its managed stacks, helping keep columns compact and consistent even when stack styles change.

Here's a list with all adornments on the left as Curio has always done it in the past:

ListAdornmentsAllLeft

And here's what it looks like with the only checkbox on left and all other adornments either in the new bottom-face-left location or in the right-face-middle location:

ListAdornmentsLeftCheckElseBottom ListAdornmentsLeftCheckElseRight

Presentation Jump To Context Menu

Curio Pro's presentation mode context menus now include a new Jump To submenu that mirrors the Organizer hierarchy for the current section, so you can jump directly to any available idea space without leaving presentation mode.

The currently displayed idea space is shown with a checkmark in the Jump To hierarchy, making it easy to track where you are while presenting.

Choosing an idea space from Jump To immediately switches to that idea space using Curio's normal presentation navigation behavior.

PresentationContextMenu

Home Button in Navigator Controls

The navigator controls now include a Home button so you can instantly jump to your designated Home idea space.

NavigatorHome

Hold Shift while clicking Home to set the currently selected Organizer item as Home.

Hold Shift+Option while clicking Home to clear the current Home setting.

If no Home has been set, Curio will jump to the first Organizer item.

Focus for Idea Graphs

Focus now understands freeform idea graphs on an idea space. When you focus one or more figures, Curio follows snapped line connections and keeps downstream related figures undimmed.

Any arrowhead implies direction. A head arrow means tail-to-head, a tail arrow means head-to-tail, and lines with arrowheads at both ends are treated as bidirectional.

Focus traversal is cycle-safe and refreshes automatically as lines are added, removed, re-snapped, or changed between directional and nondirectional.

By default, nondirectional lines (no arrowheads) are ignored for focus graph traversal. If needed, enable Focus Flow Include Undirected Lines to treat them as bidirectional connections.

Word Count Status Bar Module

A new Word Count status bar module is now enabled by default, showing a live summary of words and characters for selected content, and you can enable or disable it anytime via View > Show Status Bar Module.

Click the Word Count summary to open a detailed popover with Words, Characters, Characters (No Spaces), Sentences, Paragraphs, and Lines, plus readability and sentiment metrics, including Flesch-Kincaid Grade, Flesch Reading Ease, Gunning Fog Index, Coleman-Liau Index, and Sentiment.

WordCount

Color Sliders and Eyedropper

Curio's inspector color wells (text color, pen color, fill color, ...) now have new features! Hold Control (βŒƒ) when clicking and you get a handy sliders panel to adjust your color in RGB, OKLCH, OKLAB, or HSL color space. Hold Command (⌘) when clicking and the system eyedropper appears so you can quickly sample any color from anywhere on screen. (Tip: Control key to control the color, Command key to command Curio to sample a color.)

In the new sliders panel, colors modified with OKLCH and OKLAB provide perceptually uniform color and consistent lightness across hues (see comparison). CSS supports both and new tools like ColorPalette Pro are appearing.

ColorSliders

Generate Color Palettes for Lists and Mind Maps

Use the new Generate Palette color well in the list and mind map children inspectors to pick a base color and instantly spread a generated palette across main branches.

GeneratePaletteInspector

Curio generates an 8-color palette using OKLCH: it preserves the selected color's lightness and chroma and rotates hue evenly around the wheel for balanced branch coloring. It's fun to play with the new OKLCH sliders (Control-click on the palette color well) and see the mind map dynamically change with new palettes as you drag the sliders as demonstrated below.

If you like the generated result, click Save to store it as a personal color palette.

Select Figures Across Multiple Layers

Curio Pro's Layers popover now supports ⌘-clicking multiple layer rows so you can select figures across several layers at once β€” handy for moving, duplicating, or deleting figures that span layers.

A plain click still sets the active layer and collapses the selection back to just that one layer. ⌘-click any additional layer rows to include them; ⌘-click again to remove. Their rows stay highlighted to indicate they're participating. When more than one layer is selectable, the Layers button in the inspector bar shows a colored +N suffix (e.g. Layer 3 +2) and a footer hint in the popover reflects the current state.

Canvas marquee selection and click hit-testing will then include figures on any of the selectable layers, and operations like move, duplicate, cut, and delete work across them. Copy and paste remain layer-agnostic β€” pasted figures always land on the active layer. Hidden layers are never included. Locked layers can be added to the selectable set so their figures can be copied, though individual figures on those layers still can't be moved or deleted.

Local HTML Figures

Curio now treats local .html files as URL figures, so HTML artifacts and interactive visualizations generated by your favorite AI like ChatGPT or Claude can be dropped directly into an idea space or collection figure, like the tabloid composition figure shown below.

Once placed, the figure immediately appears as a live web view, while still supporting the same right-click controls as normal web links so it can be shown as an icon, Quick Look preview, or link.

Note that you can also drag .html files to the Organizer which would allow the web view to fill the window.

HTMLFigure

Improvements

  • Responsive Preview Generation and Project Closing
    Stale idea space previews now regenerate silently after a project opens, yield to CLI automation, and pause for the project session if an individual preview is unusually slow, avoiding progress interruptions and repeated stalls. Project close and quit also coordinate long-running preview, OCR, and asset-content generation at safe per-item boundaries instead of hanging. Automatic PDF Mirror projects finish their cancelable preview and export work before app termination, while repeated Quit requests cleanly cancel remaining work.
  • Custom Data Key Ordering

    Custom data keys can now be rearranged by dragging them in the Custom Data inspector panel, so project fields can follow a logical order like Name, Address, City, State, and Zip instead of always appearing alphabetically.

    The custom order is saved with the project and used anywhere Curio lists custom data keys, including custom data adornments, variables, search exports, and menus. Use Sort Keys in the Custom Data actions menu to restore alphabetical order.

  • Add Multiple Tags to Tag Sets

    The tag inspector now includes an Add Tags button so you can add multiple tags to the selected tag set in one step. Enter one or more comma-separated names in the prompt, then click Add. By the way, given a topic, Claude does an incredible job creating a list of suitable tags, each preceded by an emoji.

    AddTags

    AddTagsAlert AddTagsAlert

  • Tag Capsule Colors

    Tag capsules now sport more refined color-tinted borders and text.

    TagCapsule

  • Tag Enhancements

    TagPreferencesThe tag inspector actions menu now includes several new display preferences for tag capsules and inline meta.

    Simple gray capsules can be used to show tags from tag sets that don't have an assigned color, like the travel tag below. Enable uppercase capsule titles to make your tags really stand out. Examples are shown below:

    TagCapsuleUppercased

    If you use inline tags, like #Context/Office, then if that tag is associated with an emoji/image, you can choose not to show the emoji/image adornment, show the tag emoji/image if one is assigned, or show the emoji/image else a tag capsule for text-only tags with no emoji/image.

    Curio can now automatically hide inline tags and resources when rendering text figures. For example, here we created a text figure with an inline tag. When we finish editing Curio hides it from display and instead shows it as a tag capsule adornment (if that was enabled). Clicking the capsule or using the tags inspector allows you to easily change it, just like a normal tag. Editing it again shows that behind the scenes the inline tag was updated. This means you can edit your text figures and use inline meta, but when you're done they don't clutter the rendered result.

    TagsDemo1 β†’ TagsDemo2 β†’ TagsDemo3 β†’ TagsDemo4

    When you change or remove tags from the tag inspector, mini inspector, context menu, status bar, or other tag-aware UI, Curio updates the underlying inline tag text when appropriate so inline and normal tag associations stay in sync.

  • Smarter Search Ranking

    Curio search now uses relevance ranking for text searches in Search, Quick Find, query-based collections, widgets, and automation queries. Exact and prefix matches in figure and Organizer titles rank highest, Markdown headings in text figures receive a strong boost, and ordinary body, note, OCR, URL, and meta matches follow.

    FuzzyQuery

  • Sort Search Results by Custom Data

    Search queries can now sort by custom data keys using the # prefix, such as sort:#price.

    This keeps custom data keys distinct from native sort fields, so sort:rating sorts by Curio's built-in rating while sort:#rating sorts by a custom data key named Rating. If a # name matches both a custom data key and a tag set, the custom data key is used.

  • Status Bar Shortcuts

    The Status Bar shortcuts have been changed: ⌘/ sets focus to the Status Bar field so you can set meta attributes, βŒ₯⌘/ toggles Status Bar visibility.

  • Search Highlighted Text
    Search and Quick Find can now find figures with highlighted text using #meta/highlighted, and highlight-only results show the matching highlighted text when possible.
  • Query Field Autocomplete
    Query fields in the List, Mind Map, Stack, and Kanban inspectors now autocomplete tags, resources, and reference types just like Search and Quick Find.
  • Restrict Searches to the Note Field

    You can now restrict a query's text terms to just the note field using the new fields:note command. For example, peanut fields:note returns only items with peanut in their note, ignoring matches in titles, text bodies, URLs, and OCR.

    The restriction applies to all text-style terms in the query β€” plain contains, quoted phrases, regex (/…), and explicit fuzzy (~…) β€” so existing query syntax keeps working against the narrower scope. Tag, resource, date, and meta terms are unaffected.

  • Nudge Line Labels Off the Line

    LineLabelLine labels can now be nudged off the line itself. Select a label and press βŒ₯ (Option) plus any arrow key to offset the label by 1 point in that direction; hold βŒ₯⇧ for 10 point jumps. The offset is capped at Β±50 points. Rotates with the line so the label tracks along as the line rotates, and is cleared when you drag the label to a new position on the line.

    Plain arrow keys still slide the label along the line as before, hold ⇧ plus any arrow key for 10 point jumps.

  • Galleries and the Shelf Mini Galleries

    You can now right-click in the style inspector mini galleries in the shelf and toggle the display of titles (which are enabled by default) and zoom with a slider. Plus the context menu in all style galleries now includes a Rename Style menu item so you can rename your personal styles.

    GalleryTitles GallerySlider

  • Archive Personal Templates and Stencils
    The templates and stencils galleries now ignore any items that are in the Archive section in those respective project files, which allows you to tidy up your personal idea space templates and figure stencils. When viewing your templates/stencils gallery, right-click on an item to edit it and it will open the item in its repository project. You can then drag it to the project's Archive section to hide it away.
  • Figure Helpers

    When a single figure is selected, Curio can now show contextual floating helper controls such as a stack add button and collapse/expand button, mind map add sibling/child buttons, and synced collection jump icons. You can enable or disable helper modules via View > Allow Figure Helpers.

    FigureHelpers

  • Text Figure Overlay Icons and Adornments

    Text figures that are either file-backed or have a sync file can now optionally display a small overlay icon in the corner so you can tell at a glance what kind of external file is associated with the figure.

    Rich text files show a rich text page icon, plain text files show a text page icon, and sync files show an arrow icon indicating the sync direction: export, import, or bidirectional.

    RichTextPage TextPage ArrowUpSquare ArrowDownSquare ArrowUpDownSquare

    An example file-backed text figure with overlay:

    IconOverlay

    You can also choose to enable the icon as an adornment alongside the file-backed or sync file figure. Here are some examples with sync files. Note this works for any type of figure, not just text figures.

    IconSyncAdornment1 IconSyncAdornment2

    These are all disabled by default but can be enabled for file-backed figures and sync file figures.

  • Sync File Context Menu Open Options

    The figure context menu's Sync File submenu now includes direct Open and Open With commands.

    SyncFileOpen

  • Text Inspector Cleanup

    Given all the new text controls, we've cleaned up the text inspector to better group related items. The text inspector detachable popover in the inspector bar has also been improved with Text and Options tabs.

    TextInspector TextInspector2

  • Inspector Bar Cleanup

    The inspector bar's Layers control now uses a compact icon-only button when an idea space has only one layer, reducing wasted space on smaller displays. As soon as additional layers exist, the control automatically expands to show the active layer name.

    LayersCompact  β†’ LayersExpanded

    The inspector bar also gets a new pen and fill color well so you can change those colors without diving into the shelf. You can turn this off if you'd like.

    InspectorBarPenFillColor

    Plus new popups so you can more easily choose the horizontal and vertical alignment.

    InspectorBarAlign β†’ InspectorBarAlignHorizontal InspectorBarAlignVertical

  • Expanded Figure Mini Meta Popover

    The figure mini meta popover (select a figure and press M) has been expanded to include percent complete, priority, and rating. With this mini inspector and the dates mini inspector (press D) there are now only 2 mini inspectors for quick meta changes.

    MiniMetaPopover

  • Default Start and Due Date Times

    The date inspector action menus now provide matching default-time preferences for start and due dates. Start dates can begin at midnight, the current time, or the project workday start. Initial due dates can retain Curio's normal behavior or use the project workday end.

  • Numeric Inspector Keyboard Stepping
    Many numeric inspector fields now support keyboard stepping with Up/Down arrow keys (Β±1), and Shift+Up/Down for larger Β±10 increments.
  • Table Context Menu Conversions

    TableConvertTable cell context menus now include quick conversion actions so you can convert a selected row or column to Header, Body, or Footer.

  • Tabloid and Matrix Titles
    The tabloid and matrix composition collections now support a title which you can toggle on in their inspectors.
  • Tabloid Composition Column Resizing
    Tabloid compositions now support dragging the divider between adjacent columns in a row to quickly resize both columns in one motion, instead of having to type in a specific width.
  • List and Mind Map Level Styles
    Curio once again detects when sibling figures on a list or mind map level share the same style and automatically uses that as the level default, while mixed checkmark visibility now keeps the level default unchecked so task checkmarks don't unexpectedly propagate.
  • List Prefix and Checkbox Spacing
    Improved list row spacing so disclosure triangles, bullet or numbered prefixes, and left checkbox adornments line up more consistently across parent and child items.
  • List Title Gap Preference
    Lists now include a configurable global preference for the gap between a visible list title and the first item, with a default spacing of 5 pixels.
  • Mindmap Gaps and Offsets
    Updated the Mindmap Gaps and Offsets section of the advanced settings with a few additional mind map gap overrides.
  • Idea Space Dots Grid
    The idea space dots grid has been updated with more circular dots and it's now possible to hide the dots while the grid snapping is still active.
  • Change Meta Across Multiple Organizer Items
    You can now use the Meta inspector to change label and tag information across multiple selected Organizer items. Note that undo across all items isn't supported since each has its own independent undo stack.
  • Faster Bulk Organizer Creation
    Improved performance when adding many Organizer items, including large Spread PDF imports created through Curio automation.
  • Paste Organizer Items as Aliases
    After copying Organizer items within a project, you can now right-click a destination in the Organizer and choose Paste As Alias. This may be easier than using the drag-and-drop method for creating aliases.
  • Organizer Label Color Menus

    Organizer and section label colors now use palette menus for easier access. The label name is temporarily displayed directly beneath the palette as you hover over the colors.

    OrganizerLabelColors

  • Section Sorting
    The Sections outline context menu now includes Sort Siblings By commands so sibling sections can be sorted by title, date modified, date created, or date added.
  • Rename Master Templates with Return
    You can now press Return with a selected item in the Masters sidebar to rename the selected master idea space template or stencil.
  • Per-Project Backup Folder

    Curio Professional already lets you override automatic backup settings for an individual project. You can now also override the backup folder for a project via the Advanced tab of its project properties inspector.

    Click the Choose button alongside the backup folder to pick a dedicated destination for that project's backups, such as a synced Dropbox folder or an external drive. When no folder is chosen the project continues to use the global Backups folder specified in Settings.

  • πŸ“£ Markdown Headings Now Trimming Blank Lines
    Markdown heading rendering now trims extra blank lines before and after headings to better match most markdown renderers, then automatically uses dynamically computed heading paragraph spacing to preserve visual rhythm. You can turn this off if you'd like to keep the blank lines. Note that Obsidian generally keeps before/after blank lines.
  • Markdown Inline Math Autodetection
    If markdown autodetection is enabled then it will now detect the \(..\) MathJax inline equation syntax and automatically enable markdown rendering for the text figure.
  • Markdown List Space-Indent Parsing
    When importing or pasting markdown lists as a list or mind map collection, nested list indentation now correctly handles leading spaces (such as 2-space indents), not just tabs. This improves LLM compatibility so you can easily use Paste Markdown As > List with a list copied from your favorite AI service.
  • Smarter Base Font for Mixed Markdown Figures
    When a text figure mixes fonts β€” for example a stylized title above a markdown list in a regular body font β€” markdown blocks now base their styling on the font at that block's own location rather than always on the font at the very start of the figure. If you've defined a 'body' markdown style, it's also now applied per paragraph, so a bold title stays bold (just resized) while body text keeps its own font. You can turn this off to restore the previous behavior.
  • Markdown Image Retina @2x Rendering
    Rendered markdown images whose filename ends with @2x now display at 50% size by default (for example Image@2x.png), with a preference to toggle this behavior.
  • Markdown Image Size Attributes
    Rendered markdown image links now support the DEVONthink-style image size specifier:
    ![title](image.png width="30")
    ![title](image.png height="60")
    ![title](image.png width="30" height="60")
    In addition to our existing support for:
    β€’ Obsidian-style: ![title|30](image.png), ![title|x30](image.png), ![title|30x60](image.png)
    β€’ Marked-style: ![title](image.png =30x), ![title](image.png =x60), ![title](image.png =30x60)
  • Markdown Image Export Size Attribute
    When exporting images as markdown Curio now supports a new setting for the DEVONthink-style image size format, ![title](image.png width="30"), in addition to our existing settings.
  • Smarter Table Sync from Markdown
    When a native table is synced with a markdown file, Curio now performs a smart differential sync that preserves user-tweaked column widths across reloads. Columns are matched by header text, body content signature, and positional fallback, so widths are maintained even when columns or rows are added, removed, or reordered.
  • Bundled HTML Local Rendering Resources

    Curio now bundles the HTML Local resources used by MathJax, Mermaid, and Highlight (syntax coloring), so rendering works fully offline without internet access (the latter two require Curio Pro).

    You can still customize or extend any of these by creating your own HTML Local folder in your personal repository. Curio overlays your personal files on top of the bundled set, file by file, so your customizations take precedence while you automatically inherit everything else β€” including new resources added by future Curio updates.

  • Idea Space Split View
    The idea space split bar has been tweaked with a new default focus bar width and several advanced settings to override the overall divider width, show focus state, focus bar width, focus bar color, and more.
  • Show Custom Data Figure Adornment
    You can now globally disable showing the custom data adornment via the Custom Data panel's actions button menu.
  • Adornment Click Drag Handling
    Clicking and dragging non-checkbox figure adornments (tags, dates, priority, etc.) will now drag the figure itself. If you click and release on the adornment, it still handles the click as usual. The checkbox adornment still handles the click on the initial mouse down or touchpad tap.
  • Modernized Figure Tooltips
    Figure tooltips were completely rewritten to be more robust and less intrusive, with cleaner modern styling, improved sizing for enclosed text, and predictable width-based wrapping for longer content.
  • Immediate Hover Status Bar Updates
    Hover text now appears immediately in the status bar while figure tooltips continue to honor their configured display delay.
  • Insert Popover Window Level
    Insert popovers now use the same window level as other inspector popovers, so they appear above detached inspector windows while remaining below modal alerts.
  • Smarter URL Detection
    Curio now uses Apple's data detector for link detection (instead of the less reliable NSURL default) when pasting, importing, or parsing text.
  • Refreshed Note Card Text Styles
    All bundled figure styles, including the colored note card text styles, have been modified so those that used Chalkboard now use Helvetica. Chalkboard is getting a bit dated and doesn't support italics. If you previously used one of the old Chalkboard styles, just select one of your existing figures and save it as a personal style.
  • Refreshed Appearance Themes
    Curio's bundled appearance themes have been refreshed with more refined color palettes and more distinct light and dark theme choices.
  • Status Shelf Open Project in New Window
    The Status Shelf projects list context menu now includes an Open Project in New Window command at the top, making it easy to open any right-clicked project in a separate window without changing your current selection. Double-clicking or Option-clicking a project in the list will also do this.
  • Independent Status Shelf Task Views
    Each open Status Shelf now keeps its own task scope, grouping, and sorting selections during the current session, so refreshing one project window or tab won't unexpectedly rearrange the task list in another.
  • Modern HTML Export

    HTML export now includes a Modern HTML (SVG overlays) checkbox. When enabled, Curio replaces the classic HTML image map with an SVG overlay, where clickable figures are highlighted with a subtle hover effect making them easily discoverable. Asset figures also display native browser tooltips with the figure title. The classic image map mode remains the default for maximum compatibility.

    HTMLExportModern

  • HTML Export Figure Metadata
    HTML exports now include a per-slide allFigures array with figure geometry and metadata so custom templates can add richer interactions such as click-to-inspect metadata panels.
  • Trial Notification Moved to Status Bar
    Trial and license notifications have moved from the window title bar to a dedicated status bar module, freeing up space in macOS Tahoe's more compact title bar area. The notification appears as a clickable button alongside the word count and meta modules.
  • Manage Authorized Folders

    The Mac App Store edition of Curio now includes a File > Manage Authorized Folders menu item so you can view and manage the folders Curio has been authorized to access. You can add new folders or remove existing ones. Your Projects folder and Backups folder are tracked separately via Curio > Settings.

    AuthorizedFolders

  • Mac App Store Trials
    Mac App Store users can now download Curio and begin a free 14-day trial without purchasing a subscription first.
  • Mac App Store Subscription Dialog

    The Mac App Store subscription dialog now uses a richer web-based pricing page with localized RevenueCat pricing, active-plan highlighting, integrated subscription fine print, and links for terms, privacy, and subscription management.

  • Organizer Recovery
    Improved project loading so Curio can detect and repair inconsistent Organizer parent-child links, such as after the same project package was modified by multiple Curio instances.
  • Newer-Version Project Warning
    Curio now warns you when you open a project that was last edited with a newer major version of Curio, since saving could remove data that this older version doesn't understand.
  • Idea Space Rulers
    Idea space rulers now support Curio theme colors and look better in light mode when no theme coloring is active.

Fixes

  • Regenerating Idea Space Previews
    Reduced memory usage when regenerating previews or thumbnails for many idea spaces.
  • Idea Space Figure Preview Updates
    Fixed an issue where idea space link figures wouldn't update their displayed preview when the referenced idea space's content changed, such as when dragging items around.
  • Markdown Export with Assets
    Fixed an issue where exporting figures as markdown with their assets could fail or produce incorrect asset output.
  • Rotated Figure Clipping
    Fixed an issue where a rotated image figure may appear clipped.
  • OCR Language Menu
    Fixed a potential crash and brief pause when opening the OCR language menu in the Info inspector.
  • List Prefix Font Sizes
    Fixed an issue where list prefixes could render at the wrong size when individual list item fonts were changed.
  • Collection Underline and Text Color
    Fixed issues where setting underline or text color on an entire collection wasn't remembered for newly added items: underline was mistakenly recorded as strikethrough in the collection's level styles, and text color wasn't recorded at all.
  • Matrix Row Insertion
    Fixed an issue where adding a partially filled row to a matrix could unexpectedly make the entire matrix wider.
  • Deeply Nested Lists
    Fixed a potential crash when a list hierarchy was nested more than 31 levels deep.
  • Sorting Collection Items by Title
    Fixed a potential crash when sorting collection items by title if some items had no text.
  • MindManager and iThoughts Exports
    Fixed MindManager (MMAP) exports so task durations reflect each exported topic instead of the collection itself, fixed iThoughts (ITMZ) exports of hyperlinks containing special characters, and both exports now report an error instead of producing an invalid file if writing fails.
  • Toggling Rendered Markdown Checkbox to Sync File
    Fixed an issue where clicking a checkbox in a rendered markdown list backed by a sync file showed the checkbox toggle, but didn't sync that change to the external sync file.
  • Escaped Markdown Headers
    Fixed an issue where escaping a markdown header with a backslash (such as # = ..., useful when documenting Curio's master markdown styles file format) was incorrectly stripped before the markdown renderer could handle it, causing the line to be rendered as a heading anyway. The inline tag/resource escape (#Tag, code>\@Name</code) now only unescapes when the next character is actually part of a tag or resource name.
  • Single-Line Markdown Lists
    Curio no longer treats a single-line text figure that starts with a bullet or number prefix as a markdown list, avoiding accidental list rendering in table cells and mind map nodes, while single-line markdown task lists such as - [ ] Task still render as checkboxes. You can turn this back on if you'd like Curio to render generic single-line markdown lists.
  • Table Header Resize
    Fixed an issue where resizing a table or changing a table's style could instantly make the header row its minimum height if the table was set to autoresize rows to fit cell contents.
  • Text Inspector Popup Selection
    Fixed an issue where the Text Formatter and Text Capitalization popups in the figure text inspector could fail to refresh when switching between selected figures.
  • Text Highlight Color Shortcut
    Fixed an issue where holding Shift over the text background color well could fail to preview and apply the last-used highlight color.
  • Custom Data Value Double-Click Editing
    Fixed an issue in the figure metadata custom data table where double-clicking a value could open key editing instead of immediately editing the selected value.
  • Alias Badge Icon
    Fixed an issue on macOS 26 where the alias badge icon overlaid on alias figures appeared oversized.
  • SearchKit Indexing Hang
    Fixed an issue where SearchKit indexing of PDFs and Office documents could block the main thread for extended periods, causing the app to hang. Indexing now runs on a background serial queue.
  • Search Shelf Deep Text Matches
    Fixed an issue where Search shelf results could show only the beginning of a figure's text instead of the matching text when the match was deeper in the figure.
  • Search Autocomplete
    Fixed issues where Search and Quick Find tag autocompletion could reapply a completion while deleting text, wouldn't complete tag names after a tag set slash, or couldn't match through tag emoji.
  • Smart Kanban Organizer Results
    Fixed an issue where query-backed Kanban boards could repeatedly add duplicate Organizer item results when a section-scoped query matched folders or idea spaces.
  • Sleuth Shelf ChatGPT Sign In
    Fixed an issue where signing into ChatGPT for the first time within the Sleuth shelf could fail before the email verification code step.
  • Tag Matching with Emoji
    Fixed tag matching in search queries and automation so tag names now ignore emoji in addition to case and spaces, making emoji-decorated tags easier to find and set.
  • Extracted Tag Set Menus
    Fixed issues where extracted tag sets could be missing from Status and Kanban tag set menus or route query-backed Kanban results into the untagged stack. Grouped figure tag menus and query typing menus now separate project, extracted, and global tag sets, and extracted tag sets can now be deleted from the figure and Organizer item meta inspectors.
  • Reordering Master Templates
    Fixed an issue where dragging a master idea space template to a new location in the Masters sidebar could unexpectedly switch the sidebar back to the Organizer.
  • Master Stencil and Template Propagation
    Fixed several issues with master propagation: stencil changes now detect the correct instance layer instead of always defaulting to the top layer; switching templates now preserves edited text inside grouped figures; new figures added to a master group are now correctly placed inside the group on instances; figures moved between layers on the master are now relocated on instances; duplicate figure identifiers no longer silently misroute content during template switches; and instance figures whose content differs from the master now refit their bounds to that content immediately after master changes are reapplied, instead of staying clipped at the master's bounds until you double-click to edit and stop editing.
  • Edit Figure on Master Template
    Fixed an issue where the figure context menu's Edit Master Figure command silently did nothing when invoked on a figure inherited from a master idea space template. The command (now renamed Edit Figure on Master Template) jumps to the master template and selects the corresponding figure.
  • Master Template Inheritance
    Six improvements to how master idea space templates propagate to inheriting idea spaces: (1) figures now honor their auto-layout springs and struts when the inheriting idea space has been resized differently than the master, so a full-width header or footer (left strut, right strut, springy width) on the master will expand or shrink to remain full-width on each instance, and multi-point lines are scaled proportionally to fit the instance's bounds; (2) when a new figure is added to a master template, it now lands behind any figures you've added directly to the inheriting idea space so new master content doesn't overlap your existing work; (3) when switching an idea space to a different master template, autosizing text figures that inherit your previously-edited content now refit their bounds to that content immediately instead of waiting until you navigate away and back; (4) undoing a change-to-master or disconnect-from-master action now also restores the idea space's master template association, not just its layers and figures; (5) switching an idea space to a master template with different dimensions no longer causes auto-spacing to collapse the gaps between figures on the resized idea space β€” the idea space's auto-layout springs and struts are now the authoritative layout pass when the canvas resizes, instead of competing with auto-spacing; (6) when switching to a master with different dimensions, top-level figures inherited from the new master now apply their auto-layout springs and struts immediately, so a full-width header reaches the inheriting idea space's actual width right away instead of needing to be clicked first.
  • Fit-to-Page Printing and PDF Export Bounds
    Fixed an issue where fit-to-page scaling could consider idea space content that wasn't actually allowed to print or export to PDF, causing the output to be scaled down more than necessary. Using the Info panel's Printing and Exporting permissions checkboxes, you can specify that specific figures or an entire layer shouldn't be printed, printed to PDF, or exported to PDF.
  • Embedded Document Save Hang
    Fixed an issue where saving or autosaving a project could hang after inserting embedded documents such as Word or Excel files into an idea space.
  • iCloud Drive File Coordination

    Added safe file coordination for projects and assets hosted on iCloud Drive. Curio now coordinates with iCloud's file provider daemon when reading or writing external alias-linked files on background threads, preventing conflicts with iCloud sync operations.

    Specific cases now handled: loading PDF documents from iCloud Drive aliases; loading images and Quick Look thumbnails from iCloud Drive aliases; importing and exporting sync file content to and from iCloud Drive; saving file-backed text figures that reference files on iCloud Drive; copying or moving source files from iCloud Drive during asset embedding; and backing up alias-linked files on iCloud Drive during file swap operations.

    Coordination is automatically skipped on the main thread to prevent deadlocks, and skipped for local (non-iCloud) files where it isn't needed. A diagnostic kill switch is available via the DisableFileCoordination defaults key.

  • Opening Older Projects with Legacy Alias Data
    Fixed a crash that could occur when opening some older projects containing legacy alias-linked assets whose archived alias metadata could no longer be decoded safely on newer macOS releases.
  • Project Center Status Loading
    Made Project Center status loading more robust by always reading live project data on the main thread and discarding stale background scans, fixing a crash that could occur while opening a project as its status items were being refreshed.
  • Status Shelf Project Tasks
    Fixed several Status Shelf and Project Center edge cases involving project task refreshes, live status exports, tag-set edits, duplicate project URLs, and opening projects in a separate window from the Status Shelf projects list.
  • Project Tag Set Status Refreshes
    Fixed issues where adding or editing project or global tag sets could trigger expensive Status Shelf refreshes for all tracked projects, and where figures tagged only with a project tag-set tag could be missing from Status Shelf tag-set groupings.
  • Stale Security-Scoped Bookmark Refresh
    Fixed an issue where security-scoped bookmarks that became stale (typically after a file was moved, renamed, or restored) could continue to resolve but weren't rewritten to disk, requiring repeated re-resolution. Curio now refreshes and persists updated bookmark data for authorized folders (MAS edition), Project Center tracked project aliases, and the last-opened projects list used during app launch.
  • Oversized Customize Toolbar Icons
    Fixed an issue on macOS 26 where the Group, Ungroup, Follow, and Bundle icons appeared dramatically oversized in the Customize Toolbar sheet.
  • Figure Position at Idea Space Corner
    Fixed an issue where arrow keys couldn't nudge a figure below position (1, 1) even though the Geometry inspector accepted (0, 0) and negative values, and a figure saved at (0, 0) could be silently pushed back to (1, 1) after an idea space auto-layout resize.
  • Saved Figure Style Typography
    Fixed an issue where saving a figure's style didn't capture its full typography — minimum and maximum line height (when different), line height multiple, line spacing, paragraph spacing before and after, and kerning were silently dropped on save and not restored when the style was later applied to another figure.
  • Updated Style Detection on Other Figures
    Fixed an issue where updating a saved style via one figure left other figures still pointing at the prior definition of that style without offering Reapply or Update options in the context menu. Curio now detects when a figure's attributes have drifted from its associated style and shows both choices, so you can either snap the figure to the current definition or push its (older) attributes back into the style.
  • Theme Switching Toolbar Contrast
    Fixed an issue on macOS Tahoe where switching between Curio themes or light and dark appearances could leave titlebar and toolbar controls with incorrect black or white contrast until the project window was reopened.

Technical

  • Building with Xcode 26 for macOS Tahoe 26 API
    We're now building Curio with Xcode 26, which supports the macOS Tahoe 26 API. We then had to make a number of UI adjustments — in the inspectors, Curio > Settings UI, popovers, and toolbar — to tackle layout issues on Tahoe, allowing some adoption of Liquid Glass, while still supporting the traditional macOS look on macOS 15.
  • Evernote Deprecated
    We've removed Evernote support from Curio, as we first warned about in the Curio 31 release notes. Evernote isn't nearly as popular as it was over a decade ago and the old API code that Curio's Evernote shelf used to talk directly to the Evernote cloud has long had issues. Of course you can always use Evernote's native macOS app to copy notes into Curio.
  • Vimeo Deprecated
    We've removed Vimeo as an option from the Insert popover. You can still technically drag Vimeo video URLs into your idea space to get an embedded web view, but this functionality may stop working as they go through their corporate reshuffling.
  • Sparkle
    For Curio distributed via our website, our app updating framework is now Sparkle 2.9.3 (up from 2.8).
  • RevenueCat
    For Curio distributed via the Mac App Store, our subscription validation framework is now RevenueCat 5.81.3 (up from 4.44.2), with the new universal App Store API key while still using StoreKit 1 for maximum compatibility for existing subscriptions.
  • ZipArchive
    For all builds of Curio, our zip/unzip support framework is now ZipArchive 2.6.0 (up from 2.3.0). The more recent releases fixed a number of important bugs and security issues and rely on the updated zlib library bundled with macOS 10.15+, with a newer internal format of ZIP64. I tried to do this back in Curio 26 but it broke some mind map exports, like iThoughts. There's a workaround for non-MAS builds of Curio that still bump into this issue with old 3rd party apps that still rely on less-secure zip libraries.
  • Mail Composition Cleanup
    We've removed Curio's old bundled AppleScripts for creating email messages in legacy mail clients. Curio now relies on the system's standard macOS email compose sharing service for subjects, recipients, message bodies, and attachments.
  • Project Identifier Sync Fallback
    Curio now stores project identifiers in an additional iCloud-synced metadata field so project links can still locate projects if the standard macOS identifier metadata isn't synced correctly due to a bug in macOS 26, as described in this Eclectic Light article.
  • Unified Toolbar Style
    Curio now always uses the unified toolbar style. The old pre-Big Sur toolbar style no longer renders correctly when compiled with the latest frameworks.
  • Software License Agreement
    Curio's software license agreement has been updated to explicitly cover the Curio CLI, its runtime, and bundled skills, along with an explicit permission for sustainers to modify bundled skills for personal or internal use. Existing users will be prompted to review and accept the updated agreement on next launch.