StoryCode User Guide

Applies to: StoryCode Desktop v1.0 (Windows / macOS) · Last updated: 2026-09-23

1. Introduction

StoryCode is a local-first AI coding agent for the desktop. Its interface is built with Tauri 2 + React/Vite, while the agent core, session management and local services are written in Rust. Through MCP (Model Context Protocol) extensions, the agent can connect to a wide range of external tools.

1.1 Capabilities at a Glance

AreaDescription
AI chat & codingA multi-session Agent workspace with streaming output, visible thinking, file attachments, voice input and tool-call approvals
Multi-model support30+ cloud LLM providers (Anthropic, OpenAI, Google, DeepSeek, Kimi, Zhipu AI, Aliyun Bailian, Volcengine Ark, MiniMax, OpenRouter and more), plus local llama.cpp inference (CUDA / Metal / Vulkan backends)
Workspace & GitBuilt-in file browser, code editor and multi-format previews, plus a full Git panel (commit, branches, stash, conflict resolution)
AutomationYAML/JSON workflows, cron schedules, Skills, Subagents and plugin bundles
MemoryStories (project memory / checkpoints), knowledge bases (full-text + vector semantic search) and user memory
Media CenterAudio recording and transcription, AI image/video generation, screenshots, screen recording and a timeline video editor
Developer toolsEmbedded terminal (split panes, recording/playback), SSH/SFTP/tunnels, database tools (SQLite/PostgreSQL/MySQL with an AI SQL assistant) and remote Agent deployment
IM channels9 channels — Weixin, QQ, Feishu, DingTalk, WeCom, WhatsApp, Telegram, Discord and Linq — so you can use the Agent remotely from your chat app
SecurityA six-layer tool inspection pipeline (prompt injection detection, exec policy, protected paths, shell preflight, permission rules, repetition guard), sandboxed execution, an approval audit log, a credential Vault and system keyring integration
SpeechLocal speech recognition (Whisper / Qwen3 ASR) and speech synthesis (Kokoro / Qwen3 TTS, with voice cloning)

1.2 Architecture Overview

2. Installation & First Launch

2.1 System Requirements

PlatformRequirements
WindowsWindows 10/11 (64-bit)
macOSmacOS 14.0 (Sonoma) or later, Apple Silicon / Intel
Recommended hardwareFor local LLM inference, 16 GB of RAM or more is recommended; optional GPU acceleration via CUDA (NVIDIA), Metal (Apple) or Vulkan

The installer is available in English and Simplified Chinese (the Windows NSIS installer lets you pick the language).

2.2 First-Launch Setup

The first time you launch StoryCode, you go through the following steps:

  1. Language: choose the interface language (中文 / English). Your choice is saved and can be changed later in Settings → Appearance.
  2. User agreement: read and accept 7 terms (covering AI output risks, your duty to review output, local data access, third-party services, sensitive data, disclaimer of warranty and prohibited illegal use). Declining the agreement exits the app.
  3. Model source: choose between a cloud model (configure a provider API key) and a local model (download a GGUF model and run it on this machine).
    • Cloud → opens provider configuration, where you pick a provider and enter an API key (see Chapter 6).
    • Local → opens the local model onboarding, which recommends a model based on your hardware (RAM/VRAM) and installs it in one click.
Note
A configured model is required before you can reach the main interface; if no provider is configured, the app opens the setup wizard automatically. You can change or add providers any time in Settings → Models.
The default tool access mode is “Autonomous”
After installation, the Agent's tool access mode defaults to Autonomous: routine file reads/writes and commands run without asking, and only high-risk operations that trip a security policy prompt for approval (see 5.3 and Chapter 18). If you prefer to confirm every step yourself, switch to Manual from the mode menu at the bottom of the composer, or in Settings → Agent → Modes.

2.3 App Updates

StoryCode has a built-in auto-updater that checks storycode.cc for new versions. On Windows, updates install in passive mode automatically after downloading. In Settings → About you can check for updates and see the current app version and Agent Runtime version.

3. Interface Overview

3.1 Main Window Layout

The main window has four areas:

AreaDescription
Left sidebarMain navigation: core entries, collapsible groups (Media, DevTools), pinned favorites and a fixed footer (Vault, local model status, Settings). Can be collapsed to icons only (Ctrl/⌘+B)
Tab barMulti-tab management with drag-to-reorder, mouse-wheel horizontal scrolling, rename and close. Tab types include Agent sessions, Terminal, SSH, Database, Git and more
Content areaThe current page. Some pages (such as Workspace and Screen Recording) keep their state when you switch tabs, so nothing reloads when you come back
Playback barPlayback controls shown while local TTS is reading aloud

The window title updates with the current page/session, and the window size and position are remembered automatically.

3.2 Sidebar Navigation

Tip
Hold Ctrl/⌘ while clicking a sidebar item to open that page in a new tab.

3.3 Tabs

StoryCode works with multiple tabs:

3.4 Standalone Windows

Besides the main window, StoryCode uses several dedicated windows:

WindowPurpose
New Agent WindowOpens another independent main window, via File → New Agent Window (Ctrl/⌘+N) or the tray's New Agent Window
Welcome / provider configurationFirst-launch onboarding and standalone model provider configuration
Remote Agent session windowConnects to an Agent session on a remote server (automatic token refresh, 45-second keep-alive heartbeat, reconnect prompts)
Recording source pickerChoose which display/window to record
Region selectorSelect a region for screen recording or screenshots

3.5 Menus & System Tray

Application menu

MenuMain items
FileNew Agent Session (Ctrl/⌘+T), New Agent Window (Ctrl/⌘+N), Open Directory (Ctrl/⌘+O), Preferences (Ctrl+,, Windows only; on macOS it is in the app menu), Close Window (Ctrl/⌘+W)
EditUndo / Redo / Cut / Copy / Paste / Select All; Find submenu (Find, Find Next / Find Previous, Use Selection for Find)
ViewZoom In / Zoom Out / Actual Size, Toggle Full Screen (F11)
WindowMinimize, Always on Top (Ctrl/⌘+Shift+T), Focus Agent Window (Ctrl/⌘+Alt+Shift+G)
HelpKeyboard Shortcuts (Ctrl/⌘+/), User Guide, Report Issue, About StoryCode

macOS also has the standard app menu (About StoryCode, Preferences… +,, Hide, Quit, etc.); on Windows, About StoryCode is in the Help menu. Menu labels follow the interface language.

System tray

The tray menu has three items: Show Window / New Agent Window / Quit. On Windows, left-clicking the tray icon shows the main window; on macOS a template icon adapts to light and dark menu bars. The tray (menu bar) icon and the macOS Dock icon can be shown or hidden in Settings → System.

3.6 Theme & Language

4. Quick Start

After first-launch setup, follow these steps to run your first Agent task:

  1. Choose a workspace: use the workspace switcher at the top of Home to pick or open a project folder (or File → Open Directory, Ctrl/⌘+O). The Agent's file operations use the workspace as their root by default.
  2. Describe the task: type the task in plain language in the Home input box, for example “Add a dark mode toggle to this React project”.
  3. (Optional) Configure tools: click Tool Center on Home to pick a capability preset and enable/disable tools in bulk; missing extensions can be enabled in one click.
  4. Send and approve: once you send the message, the Agent starts working. Whether you are asked to confirm depends on the current tool access mode (see 5.3): in the default Autonomous mode, routine operations run directly and only high-risk ones show an approval bar; in Manual mode, every tool call that doesn't match a permission rule needs your confirmation.
  5. Review the results: every tool call, the file changes made in each turn, plan updates and Todo lists appear as cards in the conversation.
More on Home
Home also offers task launcher cards (drag to reorder, customizable), a Recent panel for jumping back into earlier sessions (entries can be deleted), a work mode bar and the Tool Center.

5. Agent Workspace

The Agent page (/agent) is StoryCode's core workspace. Each session has its own tab, and multiple sessions can run in parallel.

5.1 Composer & Messages

The composer at the bottom of the page offers:

FeatureDescription
Text inputEnter sends; Shift+Enter / Alt+Enter / Ctrl+J insert a new line; Ctrl/⌘+/ browse input history
AttachmentsAttach files/images for the Agent to use, including pasted images, with preview
@ mentionsType @ to reference a file or folder in the workspace, or pick a subagent to invoke/dispatch (see 5.6)
/ slash commandsType / to run a built-in command or workflow: /compact compacts the conversation history, /clear clears it, /prompts lists prompt templates provided by extensions, and /prompt runs a prompt template (add --info to see its description). Saved workflows also appear in the command list
Voice inputDictation with a live waveform, using cloud or local ASR
Message queueMessages sent while the Agent is running are queued and processed in order
Model menuSwitch the current model and configure Lead / Worker models (see 6.3)
Mode selectorSwitch the tool access mode (Autonomous / Manual / Chat, see 5.3)
Story memory toggleTurn Story memory recall on or off for this session

In the conversation, Agent replies stream in and can show the model's thinking. Both your messages and AI messages can be copied or read aloud, and selecting text brings up quick actions. The bottom of each reply offers actions such as knowledge trace (the sources and Stories it used) and copy link.

5.2 Tool Calls & Approvals

5.3 Tool Access Modes

The tool access mode controls how the Agent's tool calls are approved. Switch it any time from the mode menu at the bottom of the composer, or set it in Settings → Agent → Modes:

ModeBehaviorBest for
Autonomous (auto, default)Routine tool calls are approved automatically, and exec policy prompt rules are escalated to deny. Note: security checks, protected paths (e.g. writing to .git, accessing the global ~/.storycode, git reset --hard) and the repetition guard can still ask for approval or deny outrightTasks you trust; scheduled tasks
Manual (manual)User permission rules are checked first; any call that doesn't match a rule requires your confirmationEveryday interactive work where you want to review each step (recommended for new users)
Chat (chat)Pure conversation: all tool calls are skipped and the model only replies with textAsking questions without executing anything

Subagents also accept inherit (use the parent session's mode), always_ask (ask every time) and never_allow (deny everything). You can set these per task in a subagent definition or when dispatching.

Tool-level permission rules (allow/deny lists) are managed in Settings → Agent → Modes by clicking the configure button next to Manual. See Chapter 18 for details.

5.4 Voice Input & Read-Aloud

5.5 In-Session Search

On a session page, press Ctrl/⌘+F to search within the session, Ctrl/⌘+G for the next match, Ctrl/⌘+Shift+G for the previous match, and Ctrl/⌘+E to search for the selected text.

5.6 Dispatching Subagents

Type @ in the composer and choose a subagent from the list to hand a task to a predefined subagent:

5.7 Work Modes & Capability Presets

6. Model Configuration

6.1 Cloud Model Providers

StoryCode supports 30+ cloud LLM providers through a unified interface. Add and configure them in Settings → Models → Configure providers. Most providers need an API key (stored in the system keyring by default), and some allow a custom base URL and model list.

CategoryProviders
InternationalAnthropic (Claude), OpenAI, Google (Gemini), xAI (Grok), Mistral AI, Groq, Inception, Venice
China-basedDeepSeek, Kimi / Kimi Code Plan, Zhipu AI / Zhipu Coding Plan, Aliyun Bailian (incl. Token Plan), Volcengine Ark, MiniMax (Mainland / Global), Xiaomi MiMo (incl. Token Plan), Meituan LongCat
Aggregators / gatewaysOpenRouter, LiteLLM, Tetrate
Cloud platforms / enterpriseAzure OpenAI, AWS Bedrock, GCP Vertex AI, SageMaker TGI, Snowflake, Databricks, GitHub Copilot
Local CLI agentsClaude Code, Codex, Cursor Agent, Gemini CLI (uses the corresponding command-line tool installed and signed in on this machine)
Local / self-hostedOllama; the built-in local model service registers itself as the “Local Model” provider once started (see 6.2)
Custom providers
In addition to the built-in providers, you can declare custom OpenAI-compatible providers: specify a display name, API key, base URL and model list to connect any compatible service.

Once configured, switch models per task with Settings → Models → Switch models or from the model menu at the bottom of the composer. Settings → Models → Reasoning Settings sets the thinking mode (Default / Enabled / Disabled) and reasoning effort (Default / Minimal / Low / Medium / High / Extra high; available levels depend on the model) for supported models.

6.2 Local Model Service

StoryCode includes a local inference service based on llama.cpp (the /local-model page), so you can run open-source models without an internet connection:

Options such as the inference backend policy for local language models are in Settings → Models → Local inference. Local inference also supports image and video generation models (see 14.2); their model cards and runtime are managed in Settings → Image & Video.

6.3 Lead / Worker Models

Enable Lead / Worker models from the model menu at the bottom of the composer. A more capable Lead model handles the first few turns of a session (3 by default), after which a faster or cheaper Worker model (the currently selected model) takes over. If the Worker fails a set number of times in a row (2 by default), the session falls back to the Lead model for a few turns (2 by default) before handing back to the Worker.

You can configure the Lead provider and model, the number of Lead turns, the failure threshold and the number of fallback turns. For example, you could use a cloud Claude model as Lead and a local model as Worker to balance cost and quality.

7. Session History

The Session History page (/sessions) manages all past Agent sessions:

Tip
The Recent panel on Home is a quick way back into sessions. Session messages are refreshed by polling, so content stays in sync across windows and devices.

8. Stories (Project Memory)

Stories are StoryCode's project memory: important information from your sessions (decisions, checkpoints, summaries, notes) is saved as structured documents that later sessions can recall automatically, so the Agent “remembers” the project's history.

8.1 Interface (/stories)

8.2 Typical Usage

9. Knowledge Bases

Knowledge (/knowledge) is your private document search center. It combines full-text search and vector semantic search, so you can look things up yourself and the Agent can cite them through its knowledge tools.

9.1 Managing Knowledge Bases

9.2 Semantic Search

The search panel on the right supports natural-language semantic search (using a local embedding model) and shows the embedding model's status. The embedding model ships with the app and works without extra setup; embedding options are in Settings → Advanced → Vector retrieval.

Working with the Agent
The Agent can search and read your knowledge bases through its knowledge tools, and it can save session results as knowledge notes. This lets you build a project documentation library that the Agent cites automatically when answering.

10. Workspace & File Browser

The Workspace page (/workspace) is the hub for your project files. It keeps its editor state when you switch tabs, so you don't need to reopen files when you come back.

10.1 Browsing Files

10.2 Preview & Editing

File typePreview / editing
Code / textBuilt-in code editor (syntax highlighting, selectable editor themes, adjustable auto-save delay)
MarkdownToggle between source and preview
HTMLLive preview panel
ImagesImage viewer
Audio / videoBuilt-in media player (chunked streaming)
PDFPDF reader; Office documents can be converted to PDF for preview
FoldersFolder content preview

10.3 File Operations

Create, rename, copy, move and delete (to the trash), open in the system file manager, folder picker dialogs and more. File tree shortcuts: arrow keys to navigate, Enter to open, Delete to delete, Ctrl/⌘+A to select all, Ctrl/⌘+C to copy, Esc to cancel.

Workspaces and .gitignore
When you set a folder as a workspace, the app offers to complete its .gitignore rules (so the Agent doesn't read build artifacts, etc.); in Windows sandbox mode it also walks you through workspace protection setup. The artifact output folder (where AI-generated files are saved) can be overridden in settings.

11. Git

The Git panel (/git) provides graphical Git operations and supports multiple repositories:

GroupOperations
Changes & commitsView working tree / staged diffs, stage/unstage (per file or selected lines), discard changes, commit (with commit templates and saved drafts)
BranchesList, create, rename, delete and switch branches; set the upstream branch
HistoryBrowse the commit log, view any commit's diff, cherry-pick, revert, reset
StashSave, apply, pop and drop stashes; view a stash's diff
Remotesfetch / pull / push, view remotes and remote branches, push tags (use the command line to add or remove remotes)
TagsList, create, delete and push tags
Merges & conflictsContinue or abort merges/rebases, view conflict versions, resolve by version (ours/theirs)
OtherRepository initialization (empty folders are initialized automatically), progress display for async operations, auto-refresh, context menus

Git shortcuts: Ctrl/⌘+Enter to commit, Ctrl/⌘+Shift+S to stage the selection, Ctrl/⌘+Shift+U to unstage, Ctrl/⌘+Shift+D to discard changes.

12. Automation

StoryCode offers five layers of automation that can be combined: Workflows → Schedules → Skills → Subagents → Plugins.

12.1 Workflows

Workflows are reusable task templates defined in YAML/JSON and managed on the /workflows page.

Workflow file format

version: "1.0"
title: "Code review"
description: "Review all changes on the current branch"
instructions: "You are a senior code reviewer..."   # system prompt
prompt: "Please review all changes on {{branch}}"   # initial user message; supports {{parameter}} substitution
parameters:                            # configurable input parameters
  - key: branch
    input_type: string                 # string / number / boolean / date / file / select
    requirement: required              # required / optional / user_prompt
    description: "Branch to review"
    default: "main"                    # optional; not allowed for the file type
extensions: []                         # MCP extensions to enable
settings:                              # model/provider overrides (all optional)
  agent_provider: "anthropic"
  agent_model: "<model name>"
  temperature: 0.2
response:                              # optional: require structured output constrained by a JSON Schema
  json_schema: {}
sub_workflows: []                      # nested sub-workflows
activities: []                         # activity pills shown while loading
retry: {}                              # retry configuration
tags: ["review"]
category: "Quality"
Field rules
title and description are required (version falls back to a default if omitted), and at least one of instructions or prompt must be set. requirement: user_prompt means the Agent asks the user for the value at run time; for the select type, list the allowed values under options.

Using the interface

12.2 Schedules

Schedules run workflows automatically on a cron schedule (managed from the scheduling panel on the /workflows page):

12.3 Skills

Skills are reusable instruction packs written in Markdown (with YAML frontmatter metadata) that teach the Agent a specific skill, such as “write the weekly report” or “operate an internal system”.

12.4 Subagents

Subagents are independent Agents with predefined roles. Each has its own instructions, tool set and runtime configuration, and the main session can dispatch tasks to them.

12.5 Plugins

Plugins are capability bundles that package skills, workflows, slash commands, subagents, work modes, policies and knowledge bases for one-click installation. Plugins are managed on the /plugins page (Plugins in the sidebar).

13. MCP Extensions

Extensions are based on MCP (Model Context Protocol) and connect the Agent to external tools and data sources. The extensions page (/extensions) provides:

Built-in extensions
StoryCode ships with several built-in extensions: Developer (code editing / terminal), Memory (user memory), Knowledge (knowledge bases), Web Search, Computer Use (automation / web scraping), DevTools DB/SSH, Media (audio / screenshots / screen recording / generation), Visualizer (charts) and Tutorial; plus platform extensions such as Story (project memory), Todo, conversation recall, Skills and the extension manager. Disabled extensions can be turned on from the extensions page.

Workflows and plugins can also declare the extensions they depend on, which are then enabled automatically when needed.

14. Media Center

The Media Center (/media) brings together five media tools. Generated files are saved under .storycode/media/ in the workspace.

14.1 Audio Recording & Transcription (/media/audio)

14.2 Image & Video Generation (/media/image)

14.3 Screenshots & Camera (/media/screenshots)

14.4 Screen Recording (/media/screen-recording)

macOS permissions
Screen recording and the microphone require permission in System Settings → Privacy & Security. The app can check the permission status and open System Settings for you.

14.5 Media Editor (/media/editor)

A timeline video editor for post-processing screen recordings and video clips:

FFmpeg dependency
Video processing requires FFmpeg. If it isn't installed, the app shows a setup guide; you can also point it to a custom FFmpeg path. Separate panels are available for trimming audio/video and for combining video with audio.

15. Developer Tools

15.1 Terminal (/devtools/terminal)

15.2 SSH & SFTP (/devtools/ssh)

15.3 Database Tools (/devtools/database)

Manage SQLite / PostgreSQL / MySQL databases in one place:

Agent integration
Database connections are also available to the Agent's DevTools DB tools, so you can ask the Agent to query data or analyze table structures in a conversation. Write operations (INSERT/UPDATE/DELETE/DDL) require approval.

15.4 Remote Agents (/devtools/remote-agents)

Deploy the StoryCode Agent to a remote server, operate it over SSH, and use remote compute from the local UI:

TabFunction
OverviewRemote Agent status overview and health checks
DeployDeploy/upgrade the remote Agent over SSH (upload and install the headless package) with live progress
CodingStart a remote Agent session (in a separate window, with automatic token refresh and keep-alive heartbeat)
DataBrowse remote data and secrets
WorkspaceBrowse remote folders, preview/read/write/upload/download files, recent paths
LogsTail remote logs; view and download output, summaries and log files
Settings / HistorySync remote configuration (preview the diff before applying), API access policy, session and workflow history

All remote operations are recorded in a searchable audit log, and the remote API access policy can be finely controlled.

16. IM Channels

StoryCode can connect the Agent to popular messaging apps so you can use the Agent remotely from a chat window: sending a message starts or continues a session, and results are pushed back to the chat. Configure channels in Settings → Remote Channel:

ChannelDescription
Weixin (WeChat)Weixin channel, connected by scanning a QR code to log in
WeComWeCom bot
QQQQ bot
FeishuFeishu Open Platform app (there is also an integration page at /integrations/feishu)
DingTalkDingTalk bot
TelegramTelegram bot
DiscordDiscord bot
WhatsAppWhatsApp Cloud API
LinqLinq webhook

17. Settings Reference

The Settings center (/settings; supports ?section=&subsection= deep links and has a settings search at the top) is organized into the following sections, in this order:

SectionContents
ModelsCurrent model, Switch models, Configure providers, Reasoning Settings (thinking mode / reasoning effort), local inference backend policy, Reset Provider and Model
AgentModes (Autonomous / Manual / Chat, plus permission rules for Manual), Conversation Limits, Response styles, Agent hints, Story memory, Tool context, Work Modes
SecurityShell sandbox (including the enhanced Windows sandbox), Exec policy rules editor, Prompt injection detection toggle and threshold
SpeechDictation: cloud/local ASR engines (Whisper/Qwen3) and model downloads, TTS engines (Kokoro/Qwen3) and voice list, reference-audio recording for voice cloning, read-aloud settings
Image & VideoCloud media generation providers, local image/video model cards and runtime
AdvancedFive sub-pages: Network proxy (URL / username / password / no_proxy / ignore SSL), Web search, Vector retrieval (knowledge base embeddings), Runtime (timeouts, etc.), Developer tools (language servers, configuration editor)
AppearanceTheme (Light / Dark / OLED / System), language, left sidebar default state, reduce motion
Remote ChannelThe nine IM channels: Weixin, QQ, Feishu, DingTalk, WeCom, WhatsApp, Linq, Discord and Telegram
PrivacyPrivacy-first (blocks silent background network access and usage data uploads unless you explicitly configure or allow them), OSV malware check (checks for known malicious packages before running npx / uvx installs)
SystemNotifications, auto-initialize Git for empty workspaces, use system keyring, menu bar / tray icon, Dock icon (macOS), prevent sleep, Screenshot Settings (format / quality / delay / global shortcuts), CLI tool
AboutVersion and Agent Runtime version, Updates, Help & feedback, third-party notices (English and Chinese)

Other settings

18. Security, Sandbox & Permissions

18.0 Tool Inspection Pipeline (why Autonomous mode can still ask for approval)

In every mode except Chat, each tool call passes through six inspection layers. If any layer denies, the call is denied; if any layer asks for confirmation, an approval prompt appears:

LayerPurposeIn Autonomous mode
① Prompt injection detectionDetects prompt injection risks in tool arguments/context (toggle and threshold in Settings → Security)Active
② Exec policyEvaluates shell commands against exec policy rules (see 18.2)Active; prompt rules are escalated to deny
③ Protected pathsProtects the workspace's .git and .storycode, and the global ~/.storycode (see 18.4)Active
④ Shell preflightStatic checks before a command runsActive
⑤ Permission rulesTool-level allow/deny lists (see 18.3)Allowed by default
⑥ Repetition guardAsks for confirmation when it detects repeated or runaway call loopsActive

18.1 Sandboxed Execution

Shell commands and file writes run by the Agent can execute inside a sandbox (macOS Seatbelt, the enhanced Windows sandbox, a Linux sandbox or an external isolated runtime) that limits file system and network access and protects data outside the workspace. Enabling the enhanced Windows sandbox walks you through workspace protection setup. Sandbox settings are in Settings → Security → Shell sandbox.

18.2 Exec Policy

The exec policy is a rule engine for shell commands. Each rule makes one of three decisions: allow, prompt (ask for confirmation) or forbidden (deny). Settings → Security → Exec policy rules provides an editor with built-in default rules and validation.

18.3 Tool Permission Rules

In Settings → Agent → Modes, click the configure button next to Manual to manage tool-level allow/deny lists. In Manual mode, your rules are checked first and only unmatched calls need manual confirmation. Choosing Always allow (save rule) during an approval also writes a rule.

18.4 Protected Paths

18.5 Approval Audit Log

The start and final outcome of every approval are appended, one line per event, to ~/.storycode/state/audit/tool-approvals.jsonl, so you can review afterwards which operations the Agent needed confirmation for. The log is redacted: it records only the tool name, the category of the approval reason and your decision — never the tool arguments or the reason text.

18.6 Keys & Credentials

18.7 Interface Security

19. Keyboard Shortcuts

Press Ctrl/⌘+/ or just ? at any time to open the in-app keyboard shortcuts dialog (it highlights shortcuts relevant to the current page; ? doesn't work inside input fields).

19.1 Global

macOSWindows/LinuxAction
+TCtrl+TNew Agent session
+NCtrl+NNew window
+OCtrl+OOpen directory (as workspace)
+WCtrl+WClose window
+,Ctrl+,Open settings
+/ or ?Ctrl+/ or ?Keyboard shortcuts help
+BCtrl+BCollapse/expand sidebar
⌘⇧+TCtrl+Shift+TToggle always on top
⌘⇧+XCtrl+Shift+XRegion capture (in-app shortcut; window must be in front)
⌘⌥⇧+GCtrl+Alt+Shift+GFocus Agent window
++ / - / 0Ctrl++ / - / 0Zoom in / zoom out / actual size
System defaultF11Full screen

19.2 In-Session Search

KeysAction
Ctrl/⌘+FFind in session
Ctrl/⌘+GFind next
Ctrl/⌘+Shift+GFind previous
Ctrl/⌘+EUse selection for find

19.3 Agent Composer

KeysAction
EnterSend message
Shift+Enter / Alt(⌥)+Enter / Ctrl(⌃)+JInsert new line
@ / /Mention a file, folder or subagent / run a slash command
Ctrl/⌘+ / Previous / next input from history

19.4 Terminal

KeysAction
Ctrl+FSearch in terminal
Ctrl+LClear terminal
Ctrl+Shift+C / VCopy / paste

19.5 Git Panel

KeysAction
Ctrl/⌘+EnterCommit
Ctrl/⌘+Shift+SStage selected file
Ctrl/⌘+Shift+UUnstage
Ctrl/⌘+Shift+DDiscard changes

19.6 Workspace File Tree & Other

KeysAction
Ctrl/⌘+PQuick Open
Delete / BackspaceDelete selection
/ EnterNavigate / open
Ctrl/⌘+A / CSelect all / copy
EscCancel
System-wide global shortcuts
The Capture Screen and Capture Windows shortcuts are registered with the operating system (they work even when the app isn't in front). They are unset by default and can be defined in Settings → System → Screenshot Settings. There is currently no global shortcut for screen recording.

20. Appendix

20.1 Local ASR / TTS Configuration

Local speech recognition and synthesis can also be configured manually through configuration keys (advanced use: put them in ~/.storycode/config/config.yaml or provide environment variables with the same names; most users can simply use Settings → Speech):

KeyDescriptionDefault
LOCAL_ASR_ENGINELocal recognition engine: whisper / qwen3whisper
LOCAL_WHISPER_MODEL_PATHPath to the Whisper model filenone
LOCAL_WHISPER_LANGUAGERecognition language (en / zh / auto)auto
LOCAL_WHISPER_THREADSNumber of inference threads4
LOCAL_QWEN3_MODEL_PATHPath to the Qwen3 ASR modelnone
LOCAL_QWEN3_MAX_TOKENSMaximum tokens generated by Qwen31024
LOCAL_TTS_ENGINELocal TTS engine: kokoro / qwen3kokoro
LOCAL_KOKORO_MODEL_PATH / LOCAL_KOKORO_VOICES_PATHPaths to the Kokoro model and voices filenone
LOCAL_QWEN3_TTS_SPEECH_MODEL_PATH / LOCAL_QWEN3_TTS_TOKENIZER_MODEL_PATHPaths to the Qwen3 TTS speech model and tokenizer GGUF filesnone
LOCAL_QWEN3_TTS_TEMPERATURE / TOP_P / TOP_K / REPETITION_PENALTYQwen3 TTS sampling parameters0.9 / 1.0 / 50 / 1.05
LOCAL_QWEN3_TTS_REFERENCE_AUDIO_PATHReference audio for voice cloning (optional)none

20.2 Data Locations

DataLocation
Global data root~/.storycode/ (can be changed with the AGENT_PATH_ROOT environment variable), containing config/, data/, state/ and cache/
App & Agent configuration~/.storycode/config/: settings.json (desktop settings), config.yaml (Agent configuration), secrets.yaml (only used when the system keyring is off), permission.yaml (permission rules), execpolicy/ (exec policy rules)
Approval audit log~/.storycode/state/audit/tool-approvals.jsonl
Workspace data<workspace>/.storycode/: cache, media files (audio / captures / video / generated), memory, subagent sessions, temp files, workspace exec policy and protected-path grants
User memory~/.storycode/memory (global memory) and <workspace>/.storycode/memory (workspace memory)
Local modelsModel and llama.cpp runtime folders under the app data folder
Artifacts<workspace>/artifacts/ by default; can be overridden in settings
Local API serviceThe desktop app uses a random port on 127.0.0.1; a standalone Agent service (such as a remote Agent) defaults to 127.0.0.1:3000, configurable with AGENT_HOST / AGENT_PORT

20.3 FAQ

Q1: The app keeps asking me to configure a model provider.

This is expected — a configured model is required before you can reach the main interface. Follow the wizard to pick a cloud provider (enter an API key) or a local model (download a recommended model). You can change it later in Settings → Models.

Q2: Local model downloads are slow or fail.

Downloads are resumable from the download manager. You can also configure a proxy in Settings → Advanced → Network proxy. If you're low on disk space, remove old models or runtime versions first (the model page has cleanup options).

Q3: The Agent's commands are blocked, or it keeps asking for confirmation.

Check the reason shown on the approval bar, then:

Q4: On macOS, screen recording shows nothing or the microphone has no sound.

Grant StoryCode access in System Settings → Privacy & Security → Screen Recording / Microphone. The app's media permission panel can check the status and open System Settings for you.

Q5: Video export fails with an FFmpeg error.

Media processing requires FFmpeg. Install it using the setup guide in the Media Center, or set a custom FFmpeg path and refresh the status.

Q6: How do I make the Agent remember my project's background?

Three ways: ① save conclusions from a session as a Story (Save result), which later sessions recall automatically; ② add project documents to a knowledge base so the Agent can find and cite them with semantic search; ③ put project-level instructions in Settings → Agent → Agent hints.

Q7: How do I report a problem?

Help → Report Issue opens storycode.cc/issues. The built-in User Guide (the /help page) provides full-text searchable documentation.