How goatty-dev/goatty works
goatty is a GPU-rendered desktop terminal with managed local or daemon-backed sessions, including SSH connections and session reattachment. The main user path is opening a window, connecting to or starting a session, then interacting with terminal panes; settings, host selection, and the command palette provide adjacent workflows. Separate product branches manage host shell configuration and plugins. The README and source index establish several crate-level relationships, but unsampled implementation details are not inferred beyond those references.
Main entry points: app.rs App bootstrap · connection.rs Daemon client · mod.rs Tabs and panes · server.rs Daemon server
Components 22
Desktop terminal
- App bootstrap
crates/goatty-app/src/app.rs - Tabs and panes
crates/goatty-app/src/workspace/mod.rs - Command palette
crates/goatty-app/src/command_palette/mod.rs - Terminal view
crates/goatty-app/src/terminal/view.rs - Terminal engine
crates/goatty-term/src/terminal.rs
Session connectivity
- Connect screen
crates/goatty-app/src/connect.rs - Host selection
crates/goatty-app/src/hosts.rs - Session backend
crates/goatty-app/src/session.rs - Daemon client
crates/goatty-client/src/connection.rs - Daemon server
crates/goatty-daemon/src/server.rs - Daemon sessions
crates/goatty-daemon/src/session.rs - Wire protocol
crates/goatty-proto/src/msg.rs
Configuration
- Settings window
crates/goatty-app/src/settings_window/mod.rs - Client settings
crates/goatty-app/src/settings.rs - Config storage
crates/goatty-config/src/store.rs
Managed shell
- Host shell service
crates/goatty-shell/src/service.rs - Shell commands
crates/goatty-shell/src/cmd.rs
Plugin system
- Plugin operations
crates/goatty-shell/src/plugins/mod.rs - Plugin manifests
crates/goatty-plugin/src/manifest.rs - Plugin registry
crates/goatty-plugin/src/index.rs
Other components
- User
- Remote host
Connections 22
- User → App bootstrap: launches
README.md - App bootstrap → Tabs and panes: opens
crates/goatty-app/src/app.rs - App bootstrap → Client settings: initializes
crates/goatty-app/src/app.rs - Tabs and panes → Terminal view: shows panes
crates/goatty-app/src/workspace/mod.rs - Tabs and panes → Command palette: shows overlay
crates/goatty-app/src/workspace/mod.rs - Command palette → Host selection: opens host
crates/goatty-app/src/command_palette/mod.rs - App bootstrap → Connect screen: opens connect flow
README.md - Connect screen → Session backend: hands off session
crates/goatty-app/src/connect.rs - Session backend → Daemon client: uses connection
crates/goatty-app/src/session.rs - Daemon client → Daemon server: exchanges protocol
README.md - Daemon server → Daemon sessions: manages sessions
crates/goatty-daemon/src/server.rs - Daemon client → Wire protocol: encodes messages
README.md - Daemon server → Wire protocol: uses messages
README.md - Remote host → Daemon client: accepts connection
- Terminal view → Terminal engine: renders terminal
README.md - User → Settings window: edits settings
README.md - Settings window → Client settings: edits live
crates/goatty-app/src/settings_window/mod.rs - Client settings → Config storage: loads and saves
crates/goatty-app/src/settings.rs - Shell commands → Host shell service: dispatches operations
crates/goatty-shell/src/cmd.rs - Host shell service → Plugin operations: handles plugin requests
crates/goatty-shell/src/service.rs - Plugin operations → Plugin manifests: validates metadata
crates/goatty-plugin/src/manifest.rs - Plugin registry → Plugin manifests: indexes manifests
crates/goatty-plugin/src/index.rs