Embedded terminal. WASM extension sandbox. Tauri 2 + Rust. No Electron.
cat /usr/share/doc/dotdir/features.md
Two independent panels, each with tabs and breadcrumbs. Orthodox bindings: F5 copy, F6 move, F7 mkdir, F8 delete. Drag between panels.
PTY-based terminal with multiple sessions. Auto-syncs CWD with the active panel. Detects bash, zsh, fish, nu.
Extensions run sandboxed in a WebAssembly runtime. package.json manifest, JS/TS SDK. Publish with `dotdir ext publish`. Install with `dotdir ext install publisher.name`.
FSS: CSS-like syntax to style files per directory. Apply colors, icons, and badges by language, extension, or metadata — e.g., `file[lang='rust'] { color: #ff8c00 }`.
Command palette. Configurable F-key action bar. Rebind anything in `~/.config/dotdir/keybindings.toml`. No mouse required.
Tauri 2 + Rust backend, React frontend. Targets macOS (arm64 + x86_64), Linux, Windows. No Electron.
~/.config/dotdir/styles.fss
Style files like you style HTML. CSS-inspired syntax scoped to directories, extensions, or file metadata.
file[lang='rust'] { color: #ff8c00;
icon: url(./icons/rust.svg); }
file[lang='md'] { icon: url(./icons/markdown.svg); }
file[name='*.test.*'] { color: #34d399; badge: test; }
dir[name='node_modules'] { opacity: 0.4; }
file[modified < '1h'] { badge: recent; }dotdir ext publish
Extensions run in a WASM sandbox with explicit permission grants. Build with TypeScript, publish to the registry.
{
"name": "my-viewer",
"version": "1.0.0",
"main": "dist/index.js",
"dotdir": {
"permissions": {
"fs": ["read"],
"ui": ["panel", "statusbar"],
"shell": false
}
}
}Tauri 2.x
Runtime
Rust
Backend
React + TS
Frontend
WASM
Extensions