How t8y2/motty works
Motty is a native desktop SSH workspace. The main workflow is to organize or import a host, connect and verify its host key, then work in a shared session across a terminal, file transfer, tunnels, remote screens, monitoring, and an AI assistant. State and session history support that work; AI tools can also be exposed to external agents. The README documents the product branches, while the excerpts show app startup and MCP’s gate boundary; links for other unsampled subsystem implementations are therefore limited to documented behavior.
Main entry points: conn.go SSH sessions · main.go Application startup · host_catalog.go Host catalog · ai_panel.go Assistant UI
Components 24
Desktop workspace
- Application startup
cmd/motty/main.go - Tabbed workspace
internal/workspace/deck.go
Hosts and connections
- Host catalog
internal/workbench/host_catalog.go - Host import
internal/sessionimport/sessionimport.go - SSH sessions
internal/sshconn/conn.go - Host key trust
internal/knownhosts/knownhosts.go
Session tools
- Terminal
internal/term/parser.go - SFTP transfer
internal/sftpclient/worker.go - Port forwarding
internal/portforward/forward.go - Remote desktops
internal/desktop/rdp/session.go - VNC sessions
internal/desktop/vnc/session.go - Remote monitoring
internal/remotestats/worker.go
AI assistant
- Assistant UI
internal/workbench/ai_panel.go - Agent sessions
internal/ai/agent/session.go - LLM providers
internal/ai/llm/llm.go - MCP server
internal/ai/mcp/server.go - Tool approval gate
internal/ai/gate/gate.go
Persistence and sync
- Configuration store
internal/configstore/store.go - Credential vault
internal/vault/vault.go - Session logs
internal/sessionlog/store.go - Cloud sync
internal/workbench/sync_engine.go
Other components
- Desktop user
- Remote sync service
- External AI client
Connections 22
- Desktop user → Application startup: launches
- Application startup → Tabbed workspace: opens workspace
cmd/motty/main.go - Desktop user → Host catalog: organizes hosts
- Desktop user → Host import: imports sessions
- Host catalog → SSH sessions: connects host
- SSH sessions → Host key trust: verifies fingerprint
- SSH sessions → Terminal: opens login shell
- SSH sessions → SFTP transfer: transfers files
- SSH sessions → Port forwarding: owns tunnels
- SSH sessions → Remote desktops: tunnels RDP
- SSH sessions → VNC sessions: tunnels VNC
- Desktop user → Remote monitoring: views resources
- Desktop user → Assistant UI: asks assistant
- Assistant UI → Agent sessions: starts agent session
- Agent sessions → LLM providers: requests completions
- External AI client → MCP server: sends MCP requests
internal/ai/mcp/server.go - MCP server → Tool approval gate: routes tool calls
internal/ai/mcp/server.go - Desktop user → Configuration store: saves preferences
- Desktop user → Credential vault: stores passwords
- Desktop user → Session logs: reviews sessions
- Desktop user → Cloud sync: runs sync
- Cloud sync → Remote sync service: reads and writes backup
internal/workbench/sync_engine.go