Skip to content

Contributor Apps And Routes

github-actions[bot] edited this page Sep 9, 2026 · 7 revisions

Minnow apps

Minnow Shell (Electron + SPA) is a workspace-first stage: menubar, workspace picker, left app rail, and full-stage apps in #osAppsLayer. Chat lives inside Code at #/app/code/chat, not on a separate home surface. Default boot hash is #/workspaces; legacy #/desktop and #/app/chat rewrite in resolveLegacyHash.

Official product help opens from the menubar ? button (user manual, not this page). See Wiki and Brain.

Shell internals: src/os/. Exhaustive reference: Minnow Shell in ../context.md.

What ships

Code is the primary surface; the rest support work done there. All are core (always installed, always on):

App Route Presentation
Code #/app/code (+ overview, chat, dev-server) fullscreen
Research #/app/research fullscreen
Models #/app/models/<section> fullscreen
Brain #/app/brain/<section> fullscreen
Issues #/app/issues (+ optional /<issueId>) fullscreen
Scheduler #/app/scheduler side panel overlay (stays over Code)
Settings #/app/settings menubar gear (not on app rail)

Settings opens from the menubar; the left rail lists the other six released apps (RAIL_PRIMARY_APP_IDS).

No optional app is released today, so onboarding Choose your apps and Settings → Apps show core “Always included” plus Coming soon. See Behind the release gate.

Workspace gate and Code

Cold boot lands on #/workspaces until the user picks a folder (workspace-gate.ts, welcome UI in welcome-page.ts). After pick, routing goes to #/app/code (overview or chat depending on hash).

Code reparents the chat stack into the main column: file tree, CodeMirror, terminal, git, dev servers, browser preview, and the session rail. File and git tools resolve under the open workspace root.

The browser preview pane (Electron only) renders workspace HTML and localhost URLs in a Chromium guest. F12 (or Ctrl+Shift+I / Cmd+Opt+I, or the </> toolbar button) toggles DevTools for the previewed page.

Models

Everything model-related in one place (#/app/models/<section>). Nine sections, labels from SECTION_LABELS in src/ui/models-page.ts:

Section id Label Contents
recommend Recommendations Hardware-aware suggestions (probe via /api/system/hardware, fit scoring)
installed Installed Downloaded artifacts under ~/.minnow/models/
settings Library Hugging Face search/download; Serve locally via llama-server (auto-registers a provider)
voice Voice Local Whisper (STT) / Qwen3-TTS (TTS) downloads + provider settings
providers Providers Endpoint config; Ollama / LM Studio register existing endpoints when reachable
routing Routing Per-role model routing
sampler Sampler Sampler presets
thinking Thinking Reasoning controls
usage Usage & cost Token usage totals

The last five are reparented Settings panelsreparentSettingsSectionIntoModels in src/ui/models-sections.ts moves the providers / model-routing / sampler / thinking / usage section nodes out of the Settings page and into Models. They keep their Settings section ids for search and deep links but do not appear in the Settings sidebar.

Research

Deep, multi-step web research. A sub-agent gathers and synthesizes sources behind a progress stepper. Reports save to a Library and can be reopened or discussed. Extracted source text is wrapped in untrusted-data fences before reaching the model.

Brain

Knowledge surface backed by the Brain wiki (CORTEX) at ~/.minnow/brain/: nested markdown pages with YAML frontmatter, hybrid keyword/vector retrieval, code-symbol indexing, ingest, and lint. Agent tools: brain_search, brain_read_page, brain_list, brain_write_page, brain_append_log, brain_ingest_source, plus code tools repo_map, find_symbol, who_calls, read_symbol. save_memory writes facts here.

Sections: Graph (home), Edit, Log, Schema, Proposals, Memories, Ingest, Lint, Code, Settings (embeddings, synthesis cadence, code index). Legacy #/settings/memory opens Memories.

Issues

Linear-style issue tracking (#/app/issues), fullscreen. List and board views, quick capture, taxonomy in Settings, and issue_* agent tools. Debug mode routes here (MIN-261). Code can embed the Issues view in the chat column without changing the hash to fullscreen Issues.

Scheduler

Local recurring agent jobs (~/.minnow/scheduler.json) as a full-stage app. Interval (60s minimum) or cron, chosen workspace/model, headless minnow run. Jobs only run while Minnow is open (npm start or the packaged shell).

Settings

Full-page sections at #/app/settings (legacy #/settings/<section> redirects). Sidebar groups from SETTINGS_NAV_GROUPS in src/ui/settings-page-types.ts:

Group Sections
App General (leads with App updates), Notifications, Appearance, Audio, About
Apps Apps, Issues
Agents Agents, Rules, Agent packs, Autopilot, Watchdog
Tools & integrations Search, Deep Research, Servers, Tools, Skills, Skills Library, Browser, MCP servers, Language servers, Editor, Webhooks
Advanced Health & diagnostics, Board testing

SettingsSectionId also defines providers, usage, model-routing, sampler, thinking, prompting, modes, work-agents, and sub-agents. These are not in every nav group: the first five reparent into Models; the rest are reachable via search or direct hash. Memory settings live in Brain. Search indexes every section and deep-links across apps.


Behind the release gate

Each app has developer releaseState (released | hidden) and core / optional availability (src/os/app-registry.ts). Hidden apps stay in the tree and tests, but are omitted from onboarding, Settings, the app rail, menubar switcher, shortcuts, notifications, and launch_minnow_app. parseOsHash still recognizes #/app/<appId> for every registry id; applyRoute blocks developer-hidden apps (redirect to #/workspaces, no toast) or user-disabled optional apps (toast + redirect).

Currently hidden (MIN-471):

App Status
Compare Blind A/B across 2–6 models, win-rate history under ~/.minnow/compare/.
Benchmarking (bench) In-app benchmark battery + run history.
Experts Experts' Lab roster of specialist sandbox chats.

No catalog entries carry an appId. Email and Calendar apps were removed (not gated).

Removed, not gated: Reef mini-app and mode (MIN-473); Email and Calendar apps.


Operating modes

Modes change system prompt and tool policy (src/chat/modes/registry.ts). Four appear in the composer strip:

Mode Behavior
General Everyday Q&A; all enabled tools with approval.
Build Default development mode; broad tool access.
Plan Plan and analyze; destructive file/git tools denied (plan-write guard).
Debug Investigate; file/triage via Issues and issue_* tools.

Entered elsewhere (not in the strip):

Mode Entered from
Orchestrate Orchestrate hub in Code sidebar / boards.
Super Plan Caret under Plan, or Orchestrate plan screen.
Onboarding First-run wizard only.

Persisted 'desktop' and 'email' remaps to General (normalizeModeId); they are not live registry entries.

Reef mode was removed in MIN-473.

Clone this wiki locally