Skip to content

Configuration

Environment Variables

VariableDefaultDescription
PORT8000Preferred starting port for the backend. If busy, scans 8001–8099.
SILICON_AUTH_TOKEN(unset)Shared secret between Electron and backend. When set, all non-public API endpoints require Authorization: Bearer <token> (or ?token= for SSE). Unset = no auth (dev mode).
SILICON_PARENT_PID(unset)PID of the Electron parent. Backend polls every 5 s and exits if the parent is gone. Set automatically when launched by Electron.

The backend binds to 127.0.0.1 only. No external network access.

Frontend Settings

Settings are stored in the browser's localStorage and persist across sessions.

Chat Settings

Key: silicon-studio-chat-settings

FieldTypeDefaultDescription
systemPromptstring"You are a helpful AI assistant running locally on Apple Silicon."System message prepended to every conversation
temperaturenumber0.7Sampling temperature (0 = deterministic, 2 = max randomness)
maxTokensnumber2048Maximum tokens per response
maxContextnumber4096Conversation context window size
topPnumber0.9Nucleus sampling threshold
repetitionPenaltynumber1.1Penalty for repeated tokens
reasoningModestring"auto"One of: off, auto, low, high
webSearchEnabledbooleanfalseInject web search results into context

These values can be changed in the Settings page or per-conversation via the collapsible parameters sidebar.

RAG Settings

Key: silicon-studio-rag-settings

FieldTypeDefaultDescription
chunkSizenumber512Characters per chunk during ingestion
chunkOverlapnumber50Overlap between consecutive chunks

Per-Conversation Overrides

The parameters sidebar in the Chat view stores overrides in component state. These are not persisted to localStorage — they reset when switching conversations. The sidebar also controls:

SettingDescription
Show PromptDisplay the raw system prompt sent to the model
Syntax CheckAuto-validate code blocks in responses
Auto-fix SyntaxShow a "Fix" button on invalid code
Memory MapAuto-summarize context every N messages
PII RedactionReplace emails, phones, IPs with tokens before sending
RAG KnowledgeEnable and select a knowledge collection
Web SearchEnable DuckDuckGo search injection
Visible ActionsToggle which quick actions appear on responses

Backend Storage

All backend data lives in ~/.silicon-studio/. There is no database — everything is JSON files on disk.

models.json

json
{
  "model-id": {
    "id": "model-id",
    "name": "Qwen3-1.7B-MLX-8bit",
    "size": "1.7B",
    "architecture": "qwen2",
    "downloaded": true,
    "local_path": "/Users/you/.silicon-studio/models/...",
    "is_finetuned": false
  }
}

mcp_servers.json

json
{
  "server-uuid": {
    "id": "server-uuid",
    "name": "filesystem",
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
    "env": {},
    "transport": "stdio"
  }
}

Electron Configuration

Build config is in the root package.json under the "build" key. Key settings:

FieldValue
appIdcom.silicondev.app
mac.target["dmg", "zip"]
mac.hardenedRuntimetrue
mac.iconresources/icon.icns

The backend is bundled as a PyInstaller binary in backend/dist/silicon_server and included via extraResources.

Released under the MIT License.