Skip to main content
Qualia is a complete Jupyter-compatible notebook IDE. Everything you create is saved as standard .ipynb files that work in JupyterLab, VS Code, or any other notebook tool. Notebook-mode agents work directly with the open notebook’s cells and kernel. For standalone scripts, batch jobs, or long-running training, set the default agent execution mode to Script in Settings > Agents before creating the agent.

Creating and managing notebooks

  • Click New Notebook in the Files sidebar to create a notebook
  • Open existing .ipynb files by clicking them in the file browser
  • Open multiple notebooks in tabs and switch between them
  • Rename, duplicate, or delete files by right-clicking in the sidebar

Uploading and downloading files

Use File actions → Upload files or Upload folder, or drag files onto the Files sidebar. Right-click a remote file to Download it; for local files, use Reveal in Finder/File Explorer. If a file is too large for the editor, download it or work with it from a notebook or terminal. See File Explorer for upload limits and progress controls.

Shared files and notebook working copies

In cloud compute, /project contains the shared workspace. Read inputs and save outputs there to make them available across notebooks and agents. For example, read /project/data/input.csv or save /project/results.csv. Use /project for shared files. Whether /local shares those files depends on your compute environment.

Exporting and importing workspaces

A whole workspace — its sessions, tasks, knowledge, notebooks, and images (chat attachments and figure evidence) — can be exported as a single .qualia archive from the workspace menu in the Files sidebar. Choosing Export .qualia opens a dialog where you confirm what goes in the archive. In the desktop app, the system save dialog then lets you choose both its name and location; local exports default to the workspace folder’s name. In a browser, you name the archive in the export dialog instead. The archive carries every notebook the workspace’s history refers to, not just the ones a chat currently has open, so knowledge captured on an earlier notebook keeps its link to that notebook after an import; the dialog lists them before you export, marking the ones no chat has open. Imports are additive: their contents are added to the active workspace without changing its settings. If some notebooks or images can’t be read at export time, the export still completes and warns you how many were left out. On cloud workspaces, imported sessions start out idle instead of resuming where they left off. Cloud workspace exports and imports may omit images; review the warnings for any missing assets.

Including the whole workspace

The export dialog’s Include workspace files switch adds every other file in the workspace — data files, scripts, and modules your notebooks read — to the same archive, so the imported workspace can actually run. It is not a byte-for-byte copy of the folder. Qualia leaves out things that are rebuildable or private: package caches, virtual environments (.venv, venv), version-control folders (.git, .hg, .svn), node_modules, __pycache__, notebook checkpoints, credential folders such as .ssh and .aws, credential files such as .netrc, .npmrc, and .git-credentials, and OS clutter like .DS_Store. It does keep output folders such as out/, build/, and dist/, and it keeps .log files, because those are often where your results actually are. It also keeps .env files, since the imported workspace usually needs them to run. Symlinks are never followed. Be careful who you share one of these with — it carries everything else in the folder, not just Qualia’s workspace data. The Include workspace files option is available when using the desktop app with a local workspace. Choose the archive’s name and location in the save dialog. Browser and remote-workspace exports include Qualia workspace data without the additional files. On import, workspace files are written only where nothing exists yet — a file already in the destination workspace is left exactly as it is and reported as skipped. Move or rename anything you want replaced before importing. If a file cannot be written into the destination at all — a name that this operating system does not allow, or a file too large for a cloud workspace — the rest of the import still completes and the file is named in a warning. If Qualia cannot import an archive from a newer version, update the app and try again.

Cell types

  • Code cells: Python, R, or Julia with syntax highlighting, bracket matching, and auto-indentation
  • Markdown cells: Rich text with LaTeX math support via KaTeX
  • Raw cells: Unformatted text passed through as-is (e.g., for nbconvert)
For equations, use $x^2$ inline in notebook Markdown, or $$x^2$$ for inline math that also works in chat and writeups. Put $$ on separate lines around a display equation.

Adding cells

There are several ways to add new cells:
  • Click the + button between cells or at the bottom of the notebook
  • Press A (in command mode) to insert a cell above the current cell
  • Press B (in command mode) to insert a cell below the current cell
  • Press Alt+Enter to run the current cell and insert a new cell below
  • Click the cell type buttons (Code, Markdown, Raw) in the toolbar to add that type
New cells are code cells by default. Convert them with M (markdown), Y (code), or R (raw) in command mode.

Running cells

Plotly charts

Qualia-managed Python environments include the packages needed to display Plotly charts inline. If you use your own environment, install both plotly and nbformat there before displaying a figure. When a chart receives several updates before it finishes drawing, you may briefly see intermediate figures before the newest one appears. Ask Qualia to capture a Plotly chart for use in a writeup or dashboard.

Take turns editing a shared notebook

In a shared cloud workspace, the first Owner or Editor to open an available notebook gets editing control. The notebook toolbar shows You’re editing or the current editor’s name, beside the presence avatars. Click that status to Request control, Hand over, Not now, or Cancel request. Release control is available when someone else has the notebook open. Viewers and Commenters see the toolbar with editing and execution disabled. The last remaining editor automatically takes control. A disconnected editor has a 60-second grace period. Handoff synchronizes pending typing without waiting for agents or running cells to finish, and keeps the kernel and widgets alive. If local text cannot synchronize, Recover local edits downloads a separate notebook. Download recovery copies before clearing browser site data. Switching browser tabs does not release control. Taking control lets you answer any pending input prompt from a running cell. Cells the agent is still writing become editable once it finishes.

Kernel toolbar

The toolbar at the top of each notebook controls the kernel:
  • Kernel picker: Click to choose Python, R, or Julia environments
  • Interrupt: Stop running code
  • Restart: Clear kernel state and start fresh
  • Run all: Execute all cells in order
See Kernel Toolbar for the full list of actions.

Cell operations

In command mode (press Escape first): Press Enter to return to edit mode. Deleting a cell asks for confirmation because cell deletion cannot be undone.

Code navigation

When the Python language server is enabled in settings, code cells and text files support jumping around your code: Targets in the same notebook scroll to and select the right cell; targets in other files open that file at the selected location. The references popup shows a preview line for each result — click one (or use the arrow keys and Enter) to jump to it. After a jump, Go → Back (or its shortcut) returns to the position you came from, hopping across cells and files as needed.

Outputs

Qualia renders all standard Jupyter output types: text, tables (pandas DataFrames), plots (matplotlib, plotly, seaborn), images, interactive widgets (ipywidgets), and error tracebacks. A running cell keeps its output when you reload the notebook or your connection drops: Qualia shows the whole of it when you come back, not just what printed afterwards. Progress bars that redraw a line are saved as their latest state rather than every redraw. Very long text output is shortened in the notebook: Qualia keeps the first and last 2 MB of each stream and puts a note in the middle saying how much was left out. The note also names a file that holds the full output, so you and the agent can still search all of it. On the desktop app that file is under .cell-outputs/ in your workspace, ignored by git, and left out of workspace exports; in the cloud it is kept on the machine running the notebook’s kernel, where the agent reads it with a shell command. The file keeps only the first 256 MB of output, and the cell keeps running past that; on the desktop app the note then says so. That file is replaced when you re-run the cell. Files older than a week are removed automatically, as are the oldest ones once together they pass 1 GB. To keep the page responsive, a cell’s text output longer than a few thousand lines shows only its first and last 2,000 lines, with a row saying how many lines are hidden. Click Show all on that row to display the rest. Find in the notebook still searches the hidden lines and reveals them when a match lands there.

Selecting image regions in place

Plot outputs, notebook markdown images, and images sent in chat can be annotated where they are: hold Cmd on macOS or Ctrl on Windows and Linux while dragging directly on the image to highlight a region, then use Attach selection to send just that part to the chat. When no region is selected, the first click focuses the image with an outline; clicking it again while focused opens the full image viewer. Clicking elsewhere removes focus. When a region is selected, clicking the image clears it; use the expand button in the image’s top-right corner to open the viewer directly.

Image viewer

Click an image preview — a plot output, an image in a markdown cell or writeup, an image sent in chat, or a figure in the knowledge graph — to focus it, then click it again while focused to open the image viewer tab. You can also focus an image with Tab and press Enter or Space to open it. Image files opened from the Explorer go directly to the viewer. From there you can:
  • Zoom and pan — use the toolbar buttons or presets, Cmd/Ctrl+scroll, or Cmd/Ctrl +/−/0. Hold Cmd/Ctrl and drag to pan while zoomed in.
  • Select a region — drag to highlight part of the image. Press Escape or use Clear to deselect.
  • Copy, download, or attach — right-click (or use the toolbar) to copy the image or selection to the clipboard, download it, or attach it to a chat. Images from a notebook attach to that notebook’s agent; images from a chat return to that conversation.

Saving and autosave

Press Cmd/Ctrl+S to save the notebook to its .ipynb file. Unsaved work is also kept in a durable draft that survives app restarts, so closing or crashing never loses edits — saving controls when changes land in the file itself. In Cloud workspaces, saving checks for changes made by a notebook kernel or another editor too. If the underlying file changed after you opened it, your draft stays intact and saving reports a conflict. Choose to overwrite only when you intend to replace the other version, or discard your draft to reload it. Turn on Notebook autosave (a beta feature) in Settings → Notebooks to save the file automatically a couple of seconds after you stop editing. While autosave is on:
  • The toolbar shows a Saving… / Saved status, or File changed on disk while a conflict with the file is waiting on your decision
  • Closing a notebook with unsaved changes saves it silently instead of prompting
  • If the file was changed outside Qualia (for example by an external editor or git checkout), autosave pauses and asks whether to overwrite the file or discard your draft — it never overwrites external changes silently
  • If you open the same notebook in two windows and edit in both, autosave from one window is treated as an external change by the other, which pauses and prompts the same way — edit a notebook in one window at a time to avoid this
Autosave is off by default.

Find in notebook

Press Cmd/Ctrl+F to search within the current notebook. Supports case-sensitive matching, whole-word matching, and regular expressions. See Search for details.

File export

Export notebooks as standalone files with all variable references resolved. When you export, qualia evidence reads (qualia.get(...) and the R/Julia equivalents) are replaced with actual values, making the notebook fully self-contained and runnable without Qualia.