The fastest clipboard workflow has three moments. You find an item. You confirm what it contains. You send it somewhere.
The distance between those moments determines whether history feels useful. Syzygy treats preview as a decision surface. It treats the command palette as a navigation surface. It treats the popup as a focused window.
Each surface has one job. They share the same content plan. They do not copy each other's business rules.
The workflow in one minute
Press Command + K on macOS. Press Ctrl + K on Windows or Linux. Type a page name.
Type a command.
Type > to enter command mode. Move with the arrow keys. Press Enter. The selected
destination opens.
The selected clipboard item stays the selected item. Open the preview when the content needs a closer look. Open a popup when the preview needs more space. Return to the list when the decision is complete.
This flow avoids a context switch for common actions. It also gives the content time to explain itself before you paste it.
Why a preview needs a contract
A preview cannot infer content from a filename alone. The same .html wrapper can hold
Markdown. It can hold source code. It can hold an SVG.
It can hold a Figma marker. It can hold a bitmap and visible text. Syzygy uses a content plan that describes the document family.
It has a text representation when one exists. It has a renderer. It has a layout. It has capabilities.
The preview resolver reads that plan. It checks the loaded payload. It emits a preview descriptor. The card consumes the descriptor.
The inspector consumes the descriptor. The popup consumes the descriptor. No surface rebuilds the MIME table. No surface decides that a button creates a capability.
No surface replaces a semantic source with a transport wrapper.
Renderer choices users can see
Plain text opens as readable text. Markdown opens with Markdown formatting. Source code opens with syntax highlighting. SVG opens as a graphic.
SVG source remains available when the payload contains source text. Excalidraw opens as a canvas. Excalidraw JSON remains available for source operations. Figma clipboard source keeps its markers.
Binary Figma files open as visual files. Bitmaps open as images. PDFs open as documents. Office files open as documents.
Archives open as listings. Rich HTML opens through a safe HTML surface. Mixed HTML shows the text and media it can prove. Collections open as a file grid.
Unknown binary content receives a safe placeholder. The user sees a consistent list. The renderer changes with the payload.
Card, inspector, and popup
The card gives the list a compact preview. The inspector gives one item more room. The popup gives one item a focused window. The item identity stays the same.
The content plan stays the same. The action capability stays the same. Only the layout changes. One shared preview layer owns content presentation.
One modal layer owns the dialog shell. The popup validates the selected item and loads its current snapshot.
It loads the content. It reports timeout. It reports an invalid snapshot. It reports a materialization error.
The popup never silently turns an error into an empty preview. The close path remains available. The keyboard focus returns to the caller.
Command + K starts from intent
The command palette contains page entries. It contains section entries. It contains command entries. Each entry has an id.
Each entry has a label. Each entry has a description. Each entry has aliases. The search function compares translated labels.
It compares descriptions. It compares aliases. The query is case-insensitive. Whitespace around a query does not change the result.
An empty query returns the full list. Command mode narrows the same list. The list stays keyboard reachable. The selected row stays visible.
Enter executes the selected entry. Escape closes the palette. The page owns the resulting navigation. The palette owns the intent.
The last command appears first
The palette remembers the last successfully executed real entry and places it first the next time it opens. The memory belongs to the current device's interface state; it is not clipboard history and is not synchronized to another device. Before showing it, the palette checks that the destination still exists and that the current user can access it. If storage is disabled, malformed, or stale, the palette falls back to the normal list. Only a completed action updates the memory, so a failed navigation or blocked clipboard write cannot poison the next launch.
A shortcut is not an action permission
The palette can expose a route. The page can expose a button. The capability plan still decides what the item can do. The runtime still checks local content.
The runtime still checks provider configuration. The runtime still checks feature gates. The runtime still checks the platform clipboard. Pressing Enter cannot bypass those checks.
The UI reports a missing prerequisite. It does not promise a result before the backend completes. This boundary matters during a large download. The download can run in the background.
Copy can remain available for a local item. Open External can remain available for a local file. The command palette remains responsive.
Remote images in preview
Markdown uses the standard image form.

HTML uses an image element.
<img src="https://your-domain.example/assets/product-image.jpg" alt="Remote product image">
The web content renderer can display both forms. An image link is a display resource. It is not a clipboard write. It is not a file download command.
It is not proof that the image bytes are local. Clipboard HTML materialization uses a different backend boundary. It normalizes the URL. It validates the scheme.
It limits redirects. It limits response size. It reports a failed materialization. It avoids injecting a partial item.
These two paths should remain separate.
Popup focus and keyboard behavior
Opening a popup moves focus into the dialog. The dialog has a label. The dialog exposes a close control. Escape closes it.
The backdrop closes it when the caller allows that action. Focus returns to the invoking control. The preview does not trap focus in an unreachable child. Long source text scrolls inside its content region.
The shell does not scroll the whole desktop window. The popup reports a loading state. The popup reports a timeout state. The popup reports an error state.
Each state has readable text. Each state has a recovery path.
A real workflow: reviewing a code snippet
Copy a code snippet from a browser. Press Command + K. Search for the copied item.
Press Enter.
Read the syntax-highlighted source. Open the popup. Use the source view. Copy the exact code.
Close the popup with Escape. Return to the destination application. Paste the source. The preview step prevents a rich HTML wrapper from entering the destination.
A real workflow: reviewing an SVG
Copy an SVG from a design tool. Open the command palette. Select the item. Confirm the graphic preview.
Open the source view. Compare the markup. Run a text operation if the source capability exists. Copy the source or the rendered image.
The choice remains explicit. The bitmap preview does not hide the SVG source.
A real workflow: a pending synced file
A peer sends a history header. The header shows the title. The header shows the file family. The blob is not local yet.
The preview shows pending content. The user chooses Download. The blob transfer runs in the background. The history event updates the read model.
The preview resolver sees local content. The renderer becomes available. The user presses Enter. The action uses the materialized source.
The foreground palette did not wait on the entire project.
Troubleshooting the command palette
The palette does not open
Check the platform shortcut. Check whether another application consumed the key event. Check AppShell event handling. Check that the WebView has focus.
Check the active window state. The page should expose a visible command entry when the shortcut is unavailable.
The last item is missing
Confirm that local interface memory is available and that the remembered destination still exists. If the browser blocks storage or the record is malformed, use the normal list and continue with the command.
Enter opens the wrong destination
Check the selected row and confirm that it still points to the intended destination. Navigation must use the current selection, even when the list is loading asynchronously.
Confirm the item did not change during async loading.
The popup is blank
Check the selected item, its current snapshot, local materialization, and renderer description.
Check the popup's reported error state. A readable error is more useful than an empty window.
An image link displays but cannot be copied
The image may still be remote. The Markdown renderer only displays it. The clipboard action needs a local rendered image. Run the explicit materialization path.
Retry after the resource passes size and protocol checks.
Troubleshooting the preview
Markdown appears as plain text
Check the content family. Check the Markdown renderer. Check whether the payload is complete. Check whether a source-preserving HTML wrapper was recognized.
The preview resolver should consume the semantic text.
Source view shows syntax spans
Syntax spans belong to HTML transport. Extract visible source text first. Extract the complete element for standalone SVG. Normalize Figma markers into one source form.
Use raw HTML only when no semantic source exists.
The selected file in a collection is wrong
Check the entry occurrence. Check the content hash. Do not locate a member by basename alone. Two files can share the same name.
Questions people ask
Does Command + K replace the clipboard list?
No. It provides a fast intent-to-destination path. The list remains the source of item selection.
Does the popup create a copy of the item?
No. It uses a snapshot projection. The history item remains the owner.
Can the popup force a pending item open?
It can show the pending state. It cannot invent missing bytes. Download or materialization must complete first.
Is recent-item memory synced between devices?
The memory is local to the current interface profile. It is not clipboard history and is not synchronized between devices.
Does a recent row become a new command?
No. The row points to the original destination and does not create a second command.
Why do image links use a separate path?
The web page needs a display URL. Clipboard writes need local bytes and a platform action. The security and lifetime rules differ.
Does preview download every remote image?
The web page may ask the browser to load its image URL. Clipboard materialization requires an explicit backend operation. The two actions remain visible to the user.
Can I open a large project while it syncs?
Yes, when the item has the required local content. Background transfer should not block unrelated commands.
Does the preview type come from the file extension?
The domain plan owns the type. The extension is one recognition signal.
Why keep card and popup as separate surfaces?
The card serves scanning. The popup serves focused inspection. Both consume the same descriptor.
What users should be able to verify
The shortcut opens the same palette from every main page. The last successful entry appears first on the next open. The preview family stays stable between card and popup. Escape closes the active overlay.
Focus returns to the control that opened it. Pending content shows a state instead of an empty surface. Remote image display and clipboard materialization remain separate actions.
A test matrix for new preview work
Test plain text. Test Markdown. Test source code. Test SVG source.
Test SVG with a bitmap preview. Test Excalidraw JSON. Test Figma source markers. Test binary Figma.
Test a bitmap. Test a PDF. Test a collection. Test a pending header.
Test an invalid snapshot. Test a renderer timeout. Test Escape. Test focus return.
Test an invalid recent-entry record. Test a storage-disabled WebView. Test a remote image URL. Test a failed materialization.
The expected result is a visible state for each case.
References
Read clipboard content types before relying on a renderer. Read indexer and OCR search before building a search shortcut. Read TextWorkbench and translation before adding an edit command. The command palette should shorten the path from intent to action.
The preview should make the action safe to choose. The popup should provide room without creating a second product.