Requirements: macOS (Apple Silicon or Intel), Windows 10/11, or Linux with Git installed
Installation
- macOS
- Windows
- Linux
Quick Install (Homebrew)
Manual Installation
Download the application
Go to the Releases page and download
Schaltwerk-<version>-macos-universal.app.tar.gzFirst Launch Setup
Attempt first launch
Try launching Schaltwerk from your terminal or by double-clicking the app. You’ll see a security warning.
Approve the application
- Scroll down to find: “Schaltwerk was blocked from use because it is not from an identified developer”
- Click Open Anyway beside the warning
- Enter your password if prompted
After approving once, Schaltwerk will launch normally on future runs.
Automatic Updates
Schaltwerk checks for updates on startup and applies them automatically by default. You can:- Toggle automatic installs in Settings → Version
- Trigger a manual check at any time with the “Check for updates” button
Troubleshooting update failures
Troubleshooting update failures
macOS: If an update fails because the system cannot replace the existing bundle, reopen Schaltwerk directly from
/Applications or reinstall from the latest tarball.Windows: If an update fails, try running the installer again as Administrator, or download the latest installer from the releases page.Where Schaltwerk Stores Data
App Settings
App Settings
macOS:
~/Library/Application Support/schaltwerk/settings.jsonWindows: %APPDATA%\schaltwerk\settings.jsonLinux: ~/.config/schaltwerk/settings.jsonStores agent binaries, CLI args, and personal defaultsProject State
Project State
macOS:
~/Library/Application Support/schaltwerk/<project-name>/database.dbWindows: %APPDATA%\schaltwerk\<project-name>\database.dbLinux: ~/.local/share/schaltwerk/<project-name>/database.dbStores sessions, specs, and project-level environment variablesGit Worktrees
Git Worktrees
Location:
<repo>/.schaltwerk/worktrees/<session-name>/Created for each running session and removed when you cancel (same on all platforms)Logs
Logs
macOS: Retention: Adjust retention window (default 72 hours) using the
~/Library/Application Support/schaltwerk/logs/Windows: %APPDATA%\schaltwerk\logs\Linux: ~/.local/share/schaltwerk/logs/Development builds: Keep 3 days of logs (cleaned on startup)Production builds: File logging disabled by default. Enable with:SCHALTWERK_LOG_RETENTION_HOURS environment variable.Development Setup (Optional)
If you plan to build or extend Schaltwerk from source:bun run test (or npm run test) to run the full validation suite (TypeScript linting, cargo clippy, cargo test, and a release build check).
Troubleshooting
- macOS
- Windows
- Linux
Schaltwerk is damaged and can't be opened
Schaltwerk is damaged and can't be opened
Remove the quarantine attribute:
The application Schaltwerk can't be opened
The application Schaltwerk can't be opened
Re-sign the application:
App doesn't appear in Applications after Homebrew install
App doesn't appear in Applications after Homebrew install
Check if it was installed to the Homebrew prefix:
Terminal permissions issues
Terminal permissions issues
- Go to System Settings → Privacy & Security → Developer Tools
- Add Terminal.app or your preferred terminal
- Restart Schaltwerk
Port 8547 already in use
Port 8547 already in use
Schaltwerk runs an API server on port 8547. Find and kill the conflicting process:
Uninstallation
- macOS (Homebrew)
- macOS (Manual)
- Windows
- Linux
Security Considerations
Schaltwerk is distributed without code signing certificates (Apple Developer on macOS, EV certificate on Windows) to keep it free and open. Ad-hoc signing provides basic code integrity verification.
What Permissions Does Schaltwerk Need?
- File System Access: To read and write session files
- Process Spawning: To create terminal sessions (PTY)
- Network Access: Local API server on port 8547
- No Special Entitlements: No camera, microphone, or contacts access
Is It Safe?
All code is open source and auditable
No external network connections (only localhost)
No telemetry or data collection
Built and signed via GitHub Actions for transparency

