FRACTAL Documentation
Quick Start
# Clone and run git clone https://github.com/TizTech/Fractal.git cd Fractal swift run FRACTAL # Landing page development cd landing-page npm install npm run dev
Requires macOS 14+ and Xcode Command Line Tools. The app runs as a native SwiftUI application with no Electron or web wrappers.
Terminal Workspace
The default workspace. A spatial canvas of terminal panes that you split, resize, and navigate without ever touching a mouse.
Pane Management
Terminal Sessions
forkpty. Supports zsh, bash, fish, and any POSIX shell.Visual Design
IDE Workspace
A full code editor environment with file management, syntax highlighting, LSP completions, and integrated terminal. Open with Shift+Cmd+O.
Code Editor
{}.LSP Auto-Completion
File Management
Workspace Sessions
Panels & Layout
Command Palette
Open with Shift+Cmd+P from any workspace. Type to filter commands, press Enter to execute.
Available commands: Switch to Terminal, Switch to IDE, Split Pane, Split Vertical, Split Horizontal, Close Pane, Equalize Layout, Quarter Layout, Toggle Sidebar, Toggle Bottom Panel, Sync Editor, Save File, Open Folder, Search Files.
Architecture
Language: Swift 5.10, SwiftPM, no Xcode project required.
UI: SwiftUI with AppKit bridging for NSTextView, WKWebView (terminal + Monaco editor).
Terminal: Real PTY via forkpty (C bridge), rendered with xterm.js in WKWebView.
Editor: Monaco Editor loaded from CDN in a WKWebView, with native Swift <-> JS messaging.
LSP: Native LSP client over stdio, supporting sourcekit-lsp, typescript-language-server, and pyright.
State: @Observable pattern with AppModel as root, PaneTreeStore for the pane tree, EditorWorkspaceModel for the IDE.
Pane tree: Recursive PaneNode enum (leaf or split) with functional transformations for split, close, resize, and balance operations.