# The interface

> The panels of the Compositing workspace and how keys reach them.

The default layout is the **Compositing** workspace:

| Where | Panel | What it does |
|---|---|---|
| top left | **Viewer** | shows the image of the node connected to the Viewer node, with the timeline underneath |
| bottom left | **Node Graph** | the comp: nodes and the pipes between them |
| right | **Properties** | the knobs (controls) of the nodes you open |
| far left | node toolbar | one button per node group (Image, Draw, Time, Channel, Color, Filter, Keyer, Merge, Transform, 3D, …, AIR, OFX); click one for its nodes |
| top | menu bar | File, Edit, Workspace, Viewer, Render, Cache, Help |

**Workspace › Jobs** opens the Jobs panel: one line for every background job (renders, AI nodes, importing a `.blend`), with an All / AI / Renders / Imports filter. Click a line to open that node. It was called AI Jobs in older versions.

**Cache › Background Processes...** opens the same panel on its **Services** view. A row at the top of the panel switches between **This session** (what this window started), **All Oink sessions** (every running copy of the app, with their jobs; double-clicking a comp opens a new copy each time) and **Services** (the long-running helpers: the AI worker, ComfyUI, llama-swap, the Blender bridge, Karma). Each helper row says what it is in plain words and shows its GPU memory and RAM. **Unload models** frees its GPU memory and leaves it running; **Stop** shuts it down (it starts again when a node needs it). **Free all idle GPU memory** at the top unloads every idle model at once. The panel only lists, and only stops, programs Oink started itself; your other apps are never touched.

More panels open as tabs: **Curve Editor** and **Dope Sheet** (animation), **Script Editor** (Python, *Workspace › Script Editor*), **Assistant** (AI help that can read and edit the comp) and **Conform** (edit decision lists to shots). Every pane has a menu in its tab bar to show any panel there.

## Keys go to the panel under the mouse

A key press goes to the panel the mouse is over. **G** over the Node Graph adds a Grade node; **G** over the Viewer shows the green channel. The full list is in [Keyboard shortcuts](/docs/reference/shortcuts). A few to start with:

| Key | Where | Does |
|---|---|---|
| Tab | Node Graph | search and add any node by name |
| R, W, G, B, M, T, C | Node Graph | add Read, Write, Grade, Blur, Merge, Transform, ColorCorrect |
| 1 … 9 | Node Graph | show the selected node in the Viewer (input 1 … 9) |
| F | Node Graph / Viewer | fit the graph / fit the image |
| Space | any panel | tap: play / pause. Hold: pan the Node Graph. *Preferences > Behaviors > Keyboard > space bar* switches a tap to Maximize Panel |
| J / K / L | Viewer | play backward / stop / play forward |
| Ctrl+S | anywhere | save the comp |
| F5 | Node Graph | render all Write nodes |
| Ctrl+Z / Ctrl+Shift+Z | anywhere | undo / redo |

A key for a feature that is not built yet shows "Not available yet: …" in the status bar at the bottom. *Help › Keyboard Shortcuts* lists every key in the app.

## Files

Double-clicking a `.oink` file opens it in a **new copy** of the app (one script per window). On Linux, the installer (`./install.sh`) registers the file type, so `.oink` files get an icon on the desktop and in the file manager; review sessions (`*.review-session.json`) open in Oink Review. `.nk` files are not claimed unless you ask for it: run `./install.sh --nk`. `uninstall.sh` in the app folder removes the app and its file types.

Comps are saved as `.oink` files (plain text, *File › Save Comp*). Nuke scripts open with *File › Open Nuke Script…* and are written with *File › Export Nuke Script…*; see [.nk import and export](/docs/nuke-users/nk-import). The app autosaves and offers to recover your work after a crash.


---
Sources: opencomp_electron/src/components/dockview/DockviewLayout.tsx, opencomp_electron/src/components/Toolbar.tsx, opencomp_electron/src/components/NodeLibrary.tsx, opencomp_electron/src/shortcuts/index.ts, docs/notes/file-associations.md, docs/notes/bg-processes.md
