Skip to Content
ReferenceUI map (every button)

UI Map — every button in CodeNow

A complete tour of the IDE. Each region is documented top-to-bottom with screenshot, button list, keyboard shortcuts, and what each action calls under the hood.

Screenshots: Image placeholders below reference files in public/screenshots/. Drop a PNG with the matching filename and the image renders automatically — no markup changes needed. See the screenshots README  for the full list.

The layout at a glance

┌─ Topbar ──────────────────────────────────────────────────────────┐ │ [+] [Project A] [Project B] [Project C] [Developer|Business] │ ├──────┬────────────────────────────────────┬──────────────────────┤ │ │ │ │ │ Side │ Editor (Monaco) │ Right rail │ │ tabs │ │ (collapsible) │ │ 5x │ │ │ │ ├────────────────────────────────────┴──────────────────────┤ │ │ Bottom panel: Terminal · Claude Code · Output · Debug │ │ │ │ ├──────┴────────────────────────────────────────────────────────────┤ │ Status bar: ⚠ 0 Format · Format-on-save · Autofix · Theme · Knowledge · Migrate · Share │ └────────────────────────────────────────────────────────────────────┘

1. Topbar

Topbar

The strip across the top of the window. From left to right:

ElementWhat it doesSource
+ buttonOpens native folder picker → adds a new project tabsrc/main.js IPC pick-folder
Project tabsOne tab per opened project. Click to switch (or Cmd+1Cmd+9). Right-click for close/rename/colorswitchProject()
Developer / Business mode toggleSwitches the entire sidebar between dev tools (Files/Connections/Extensions/Git/Agents) and business tools (Catalog/Skillify/Guardrails/Workforce/Output)switchMode('developer'|'business')

Multi-project tabs are CodeNow’s core differentiator. Every project lives in one window — switch with Cmd+1/Cmd+2/etc. No separate Electron processes, no separate workspaces. State persists per project: terminal sessions, AI model choice, MCP connections.

2. Left sidebar — Developer mode

Five tabs, top to bottom. Click any tab icon to open that panel.

2a. Files

Files panel
ElementWhat it does
File treeClick a file to open in Monaco. Arrow keys navigate. Right-click for new file/folder, rename, delete.
Search bar (Cmd+P)Quick-open by file name
Cross-project search (Cmd+Shift+F)Search regex across all open projects

2b. Connections

Connections panel

Per-project MCP integrations — different projects see different connectors.

ElementWhat it does
SlackOAuth connect → Slack MCP read access
GitHubInstall GitHub App → repo/issue/PR context
JiraAtlassian OAuth → ticket context
Notion / Linear / Confluence(When detected)
+ Add Custom MCP ServerManual MCP config for any HTTP or stdin server
Disconnect (per row)Removes the connection from this project

2c. Extensions

Extensions panel

Open VSX marketplace + your own dev-tool registry.

ElementWhat it does
Search barFilter extensions by name/keyword
Category filters: All · Mine · Formatters · Linters · AI · Build · GitPre-canned filter buttons
+ Add (top right)Register a custom tool: name, install command, detect-binary, category, docs URL. Saved to ~/.codenow/extensions.json
Save / Cancel (in form)Persist or dismiss the new tool entry
Install (per extension card)Runs the install command in the bottom terminal

2d. Git

Git panel
ElementWhat it does
Branch dropdownSwitch / create branch
Changes listModified / added / deleted files. Click to diff in Monaco
Stage all / Stage selectedStandard git stage flow
Commit message + Commit buttonCreates a commit
Push / PullStandard git remote ops
Recent commitsLast 10 commits with git log --oneline style

2e. Agents

Agents panel

The big one. Ten sub-tabs covering the agent lifecycle. See §5 Agents panel deep-dive below.

3. Left sidebar — Business mode

Toggle the topbar mode switcher to Business to swap the entire sidebar.

3a. Catalog

Business Catalog
ElementWhat it does
+ Import AgentWizard: import from Agent21 marketplace, HTTP endpoint, or your dev team
Function filter (HR · Finance · Legal · Sales · Marketing · Ops · IT · CX)Filters imported agents by business function
Agent cardShows provenance (built-by, runs-at, data access, price). Click to skill / guardrail

3b. Skillify

Business Skillify

3-step training UX for non-coders.

ElementWhat it does
Step 1: Pick agentDropdown of imported agents
Step 2: Trigger description”When this agent should activate” (e.g. “A resume from an internal employee”)
Step 3: Skill bodyFree-text knowledge / examples / counter-examples
Save This SkillPersists to <project>/.codenow/skills.json (project-global)
Test input + SendRuns the agent inline with the skill applied

3c. Guardrails

Business Guardrails
ElementWhat it does
+ Add data scopeRestrict what data the agent can read
+ Add actionAllow/deny specific tool calls
Compliance toggles (PII · PHI · financial · custom)One-click compliance presets
TrustScore threshold sliderMin score to allow the agent’s output
Save GuardrailsPersists. Sent as system prompt on every invocation

3d. Workforce

Business Workforce

Humans + agents side-by-side. Each row shows: name, role, function, last active, owner.

3e. Output

Agent activity log with TrustScores. Real run history from ~/.codenow/exec-agent-runs.json (capped 100/agent, 500 total).

4. Editor area

Editor

Monaco Editor  — the same engine VS Code uses.

ShortcutAction
Cmd+SSave
Cmd+/Toggle line comment
Cmd+DAdd next match to multi-cursor
Cmd+Shift+LSelect all matches
Cmd+PQuick-open file
Cmd+Shift+PCommand palette
Cmd+BToggle sidebar
Cmd+JToggle terminal panel
⇧⌥FFormat document (uses formatActiveFile())

Editor tabs at the top: file name + close ×. Drag to reorder. Right-click for “Close others” / “Close to right” / “Close all”.

5. Agents panel deep-dive

The core of CodeNow’s agent IDE story. Ten sub-tabs in lifecycle order, grouped into Define · Run · Observe · Ship.

Agents panel overview

Progressive disclosure (v0.1.61). The left-rail tab groups declutter until you actually have an agent: the Run / Observe / Ship groups stay hidden until the project has its first agent. The group formerly labeled “Build” is now “Define.” And the four overlapping run tabs — Ask / Run / Threads / Test — collapse so Run is the single primary, with Ask / Threads / Test tucked under a “More ways to run” disclosure.

Sub-tab navigation strip

Sub-tabPurpose
AnatomyVisual agent card — identity, skills rail, conversation, connectors, status, drawers
RunMulti-model studio — the single primary run tab (Ask / Threads / Test live under “More ways to run”). Defaults to CodeNow-served SMART-Code, no key needed
TestSingle-agent live test (start process, send messages, see trace)
RunsRecorded runs list (local JSONL + Agent21 prod). Click any → Replay viewer
TraceStudio multi-model run history with cost roll-ups
EvalsJSON eval suites with 6 assertion types + Run-all + diff vs last
ToolsVisual Tool Builder + project tool scan
PromptsVersioned system prompts with {{variables}}
SkillsPer-project skill library
PublishAgent21 OAuth (one-click, no client secret) + pre-flight + 1-click monetize + marketplace browse

Anatomy sub-tab

Agent Card — Anatomy view

Models the Anthropic 2026 Agent mockup. Auto-promoted into the main editor area when there’s a single agent (toggle Card / Code in the topbar to swap back to file editing).

RegionWhat it does
Lifecycle bar (top, full-width)Build → Test → Skillify → Guardrails → Publish → Deploy. Each step shows ✓ when its precondition is met; click any step to jump to its sub-tab
Identity tile (top-left)Color-hashed icon + name + workspace breadcrumb + model badge (click to switch model). Multi-agent dropdown when project has >1 manifest
Subagents pill (top-right)Click → drawer listing every tool with usage stats
Skills rail (left vertical)Color tiles per skill. Click → edit modal (name + description + prompt). + tile → New skill modal. Drop target for skill drags from the Skills tab
Conversation pane (center)Chat thread of last 10 recorder runs. Type → spawn agent → response appears with cost/duration/replay link
Composes calls panelTool_use events from latest run as code
Connectors stripPer-project MCPs. Click → Connections sidebar
Status bar (bottom)Pulsing live dot during runs · “Ready · N runs” otherwise · connector count · orange + Tool button → Visual Tool Builder · Publish & Monetize ↗ → Agent21 wizard
Tasks drawer (click status pill)Running runs + recent runs (clickable to Replay)

Anatomy element close-ups

Lifecycle bar Lifecycle bar — Build · Test · Skillify · Guardrails · Publish · Deploy. Each step is a clickable shortcut. Identity tile Identity tile — agent name (click to rename), workspace breadcrumb, “trained by” line, model badge (click to switch), subagents counter. Skills rail Skills rail — one rounded-square tile per skill (color-hashed by name). Click a tile to edit (name / description / prompt template). Click + to create a new skill. Conversation pane Conversation pane — last ten recorder runs as a chat thread. Each turn shows the user input, the assistant text, inline tool calls (hubspot.lists.get(...)), and a replay → link to open the full event timeline.

Run sub-tab (multi-model studio)

Defaults to CodeNow-served SMART-Code — Run and Test work with no API key (served inference, metered against a free pool). Ask / Threads / Test are collapsed under the “More ways to run” disclosure. Adding your own keys is optional and only needed for side-by-side model comparison.

ElementWhat it does
System prompt textareaOptional system prompt prepended to every model call
User prompt textareaThe prompt fanned out to all selected models
Model picker (multi-select)Toggle SMART-Code (served, keyless) / Claude Opus / GPT-5 / Gemini / etc.
Manage keys linkOpens Connections tab to add optional BYOK keys for model comparison
Run buttonFans out to every selected model in parallel
Snapshot as eval buttonSaves the most recent successful run as a new eval case

Test sub-tab

Test (same layout)

ElementWhat it does
Framework dropdownClaude Agent SDK · MCP · LangChain · CrewAI · OpenAI · ADK · n8n · HTTP · Custom
Mode dropdownstdin (CLI) or HTTP (POST)
Start command inpute.g. npx tsx src/agent.ts
HTTP URL input (when mode=http)e.g. http://localhost:5678/webhook/agent
Start Agent (⌘R)Spawns the process via startAgentProcess IPC; switches to chat focus
StopKills the process
TrustModel API Key inputSaves to env; activates TrustModel guardrail enforcement on every test
Generate API Key / Open Control Plane linksOpen trustmodel.ai in browser
Chat input + SendMulti-turn conversation with the running agent
Skillify buttonSave the last exchange as a skill
Trace sidebarReal-time tool calls + LLM messages

Runs sub-tab

Runs
ElementWhat it does
RefreshRe-reads .codenow/runs/ + Agent21 prod runs
Run rowStatus dot (success/error/running) · slug · source badge (local/prod) · input preview · duration · tokens · cost. Click → Replay viewer

Replay viewer (opens when you click a run)

Replay
ControlAction
← Back to runsReturn to the list
Copy inputCopy the run’s input to clipboard
Fork to current code →Re-runs original input through current local agent (only for local runs)
DeleteDelete the JSONL file
j / ↓Step forward
k / ↑Step back
SpaceToggle expand/collapse the current step’s <details>
EscClose back to list

Fork-to-current-code diff

Fork diff
RegionWhat it shows
Banner (top)✓ Green “Output matches” or ⚠ amber “Output differs” + cost/duration/step deltas
Original column (left)Past run’s timeline
Fork column (right)New run’s timeline (from spawning current code)
stderr (collapsible)If the spawn produced stderr, it’s preserved

Evals sub-tab

ElementWhat it does
RefreshRe-scan .codenow/agent-studio/evals/
Run allFan every case across every selected model
Create seed fileDrop a starter eval JSON
Eval rowClick to expand cases. Each cell shows pass/fail/skipped. Click → see actual output

Tools sub-tab

Tools
ElementWhat it does
+ New ToolOpens Visual Tool Builder modal
Scan projectFinds Python @tool / @function_tool decorators + TS/JS objects with {name, inputSchema}
Tool rowname · lang · file:line · Open (in Monaco) · Test (modal with JSON args)

Each row is draggable — drag onto the Anatomy card to add to manifest.tools.

Prompts sub-tab

ElementWhat it does
RefreshRe-scan .codenow/agent-studio/prompts/
+ New promptCreate a new versioned prompt MD file
Prompt rowname · description · last modified. Click → opens in Monaco

Skills sub-tab

ElementWhat it does
+ New SkillModal: name, description, prompt body, tags, expected behavior
Skill rowClick to edit. Drag onto Anatomy card → adds to manifest.primarySkills

Publish sub-tab

Publish
ElementWhat it does
RefreshRe-load manifests from disk
+ Build newOpens the Foundry — Describe → Build by default, or the Advanced: build step by step scaffold wizard (kit picker → fields → scaffold)
+ ImportManifest editor for advanced cases
Browse marketplaceOpens Agent21 catalog inline with Subscribe + Fork actions
Connect Agent21One-click browser OAuth — no client secret / env var (credential lives on CodeNow’s backend)
OAuth status bannerShows connection state
Manifest rowShows pre-flight status. Click Publish ↗ for 6-point checklist + 1-click monetize

6. Bottom panel

Bottom panel — Terminal

Five tabs at the top.

TabWhat it does
TerminalReal shell via node-pty. Drag files from Finder → paste path
Claude Codexterm running claude CLI in this project (or run any other AI model)
OutputBuild / lint / format output
ProblemsStatic analysis errors with click-to-jump
DebugDAP debug session

Terminal toolbar buttons (top right of panel)

ElementWhat it does
Start AI (zap icon)Spawn claude (or your selected AI CLI) in the active terminal
Switch Model (▾)Dropdown: Claude Code · OpenAI Codex · Gemini · Aider · Copilot
Toggle terminal (_)Collapse/expand the bottom panel

Debug panel buttons

Debug panel
ButtonAction
▶ DebugLaunch debug for the active file (Node, Python, etc.)
Continue (F5)
Step over (F10)
Step into (F11)
Step out (⇧F11)
Stop

7. Status bar (bottom of window)

Status bar
ElementWhat it does
⚠ 0 0Problem count — error count + warning count. Click to jump to next problem
FormatFormat the active file (⇧⌥F)
Format on save: OFF/ONToggle save-time formatting
Autofix on save: OFF/ONToggle save-time ESLint / Ruff / Biome --fix
ThemeOpen theme picker (built-in dark + import any VS Code theme JSON)
KnowledgeOpen the Knowledge Bundle modal — single source for CLAUDE.md / AGENTS.md / GEMINI.md / .aider.conf.yml
MigrateRe-run the Migration Assistant — re-scan for tools/credentials from VS Code, Cursor, Claude Code, gh, vercel, etc.
ShareOpen the Collaboration modal — invite a domain expert / business user to this project
Sign OutSupabase sign out

8. Modals

Migration modal

Migration

Opens automatically on first launch (and on demand from Migrate in the status bar).

ElementWhat it does
Source row (per detected tool)Checkbox + tool icon + what gets imported
Import all auto-detectedSingle-click sweep
Re-scanLook again for newly-installed tools
DoneClose

Sources detected: VS Code · Cursor · Claude Code · gh · vercel · gcloud · Aider · Anthropic / OpenAI / Google env vars.

Knowledge bundle modal

Knowledge
ElementWhat it does
Initialize bundleCreates the canonical project-knowledge file
Sync nowRegenerates CLAUDE.md / AGENTS.md / GEMINI.md / .aider.conf.yml from the canonical source
CloseDone

Share / Collaboration modal

Share

Invite a collaborator (developer or business user) to the project. Files stay in git, activity stream lives in Supabase.

Visual Tool Builder modal

Tool Builder
FieldPurpose
NameTool symbol (snake_case). Becomes the function name
DescriptionWhat the tool does — model uses this to decide when to call
+ Add paramParam name + type (string/number/boolean) + description
GenerateWrites tools/<name>.ts (or .py) with tool() + createSdkMcpServer() exports

Describe → Build (default entry point)

The primary way to create an agent. A single “What should your agent do?” box + one Build button — type a plain-language description, click, and CodeNow drafts the agent, auto-picks a “Recommended for you” kit from your detected keys, scaffolds it, and lands you on a running agent. No kit picker, no jargon up front. The 9-step guided builder (kit choice, sub-agents, deploy targets, harness explainers) sits behind an “Advanced: build step by step” disclosure.

Scaffold Wizard modal (Advanced path)

The opt-in step-by-step builder — reach it via Advanced: build step by step or + Build new in the Publish tab.

StepWhat it does
Step 1: Pick a kitCard grid: Claude Agent SDK (TS/Py) · Cursor SDK · Microsoft Agent Framework · Google ADK · empty · coming-soon stubs
Step 2: DetailsName + slug + description
Step 3: ResultList of files written; Read START_HERE.md first + Open agent.ts + Edit manifest buttons

Hello Agent CTA

Lives on the Anatomy card when no manifest exists in the project. The “What should your agent do?” box + Build button is the default; Advanced: build step by step underneath opens the guided kit picker.

Settings modal (Cmd+,)

SectionWhat it controls
EditorFont size, family, tab size, word wrap
AIDefault model, API keys
ThemeBuilt-in or imported VS Code themes
FormatFormat-on-save, autofix-on-save
PrivacyTelemetry opt-out

9. Welcome / first-launch

Welcome

Shown when no project is open.

ElementWhat it does
Open Project Folder (primary CTA)Native folder picker → adds the project tab
Start Claude CodeSpawns the AI agent in the new project
▾ Switch ModelPick a different AI model before starting

10. Keyboard shortcut master list

See the dedicated keyboard shortcuts page for the full list. Highlights:

ShortcutAction
Cmd+1Cmd+9Switch project tab
Cmd+PQuick file open
Cmd+Shift+FCross-project search
Cmd+\\Toggle sidebar
Ctrl+`Toggle terminal
Cmd+RStart agent → switch to Test → focus chat (Agents panel)
EscClose Replay viewer
j / k / SpaceStep / step / expand in Replay
Cmd+QQuit (full restart needed for main.js/preload.js changes)
Cmd+R (window-level)Reload renderer (renderer-only changes after a git pull)

Source

This page was generated from src/renderer/index.html in the CodeNow IDE source . 120+ clickable elements documented. PRs welcome — when CodeNow ships a new button, file an issue or open a PR against the wiki repo .

Edit this page → 

Last updated on