/docs/Development/Ide
back to app →

IDE

The IDE is where you write and test your tool. Open it from the Edit in IDE tab of any draft version. The IDE is only available on draft versions — published and under-review versions are read-only.

Layout

The IDE has five panels: top bar, file explorer (left), editor with tabs (center), preview (right), and log panel (bottom). All panels are resizable via the 4px handles between them. The explorer and preview can be toggled off entirely.

Top bar

  • Version picker — switch between any version of this tool. Only the latest draft is editable.
  • Sandbox badge — live status of the sandbox that runs your code (running, starting, stopped, error). Click for actions.
  • Save — commits all pending changes to your draft. Shows a counter of pending changes. Disabled when there's nothing to save.

File explorer

  • Create file or folder+ button next to any folder, or the New file button at the bottom of the explorer.
  • Rename — right-click an item.
  • Delete — right-click. Folders delete recursively after confirmation.
  • Move — drag and drop between folders.
  • Navigate — click a file to open it; click a folder to expand it. The breadcrumb above the editor mirrors the active file's path.

Tabs

Each open file gets a tab. A dot indicates unsaved local edits. Close one with the × icon, or all tabs from the tab-bar menu. Cycle with ⌘Tab / ⌘⇧Tab.

Editor

The editor is Monaco. Syntax highlighting works for Python, JSON, Markdown, and YAML. Standard Monaco shortcuts are wired up:

ActionShortcut
Find⌘F
Find & Replace⌘H
Go to line⌘G
Toggle line comment⌘/
Duplicate line⌘⇧D

Edits are buffered locally. They reach the sandbox automatically (debounced ~1s) so the preview stays live, but they only reach your draft repository when you press Save.

Preview panel

A live instance of your tool runs in the right panel. It uses the current code and configuration from the sandbox, not your last save — so as you type, the preview updates.

  • Fill inputs, run, see outputs.
  • Re-execute button to re-run without changing anything.
  • Editing artifuncs.json re-renders the preview immediately (no debounce).
  • ⌘Enter re-executes the tool with the current input.

Log panel

The bottom panel captures everything your tool prints (console.log, print, etc.) plus runtime errors from the sandbox. Each entry has a timestamp and severity (ERROR / WARNING / INFO / DEBUG). Use the Clear button to wipe the buffer.

Command palette — ⌘K

A searchable list of every action the IDE can perform: save, open file, toggle panels, start/restart sandbox, show shortcuts. Type to filter; arrow keys + enter to run.

Quick open file — ⌘P

Fuzzy file finder. Type any part of a file name or path; arrow keys + enter to open. Returns up to 15 files (folders are not listed).

Status bar

The bar at the bottom always shows:

  • Sandbox status and sync status (left)
  • Active file name (center)
  • Language, encoding, line:column (right) — click line:column to jump to a line.

artifuncs.json

This file defines the contract of your tool — its type, layout, input/output fields, and settings. See the artifuncs.json reference for the full schema.

Invalid JSON blocks Save; the editor highlights the parse error.

Sandbox behavior

  • The sandbox starts automatically the first time you open the IDE.
  • requirements.txt changes trigger dependency installation on next preview run.
  • The sandbox is yours alone — anonymous visitors use a separate pool, and other authors can't see or hit yours.
  • If the sandbox stops or errors out, restart it from the sandbox badge menu or the command palette.

Keyboard shortcuts

Open the full list any time with ⌘KShow keyboard shortcuts, or via the shortcut hint in the status bar.

Command palette⌘K
Quick open file⌘P
Save⌘S
Close current tab⌘W
Toggle explorer⌘B
Focus explorer⌘⇧E
Toggle preview⌘⇧P
Next / previous tab⌘Tab / ⌘⇧Tab
Re-execute tool⌘Enter

On Windows / Linux, swap for Ctrl.

Saving and publishing

Saving in the IDE commits your pending changes to your draft repository — it does not publish. To release a version, return to the tool's General page and use Publish (see Publishing a tool).