How ryftcore/omni-fs works
omni-fs is a remote-filesystem client, currently delivered as a VS Code extension over a shared, host-independent core and protocol providers. The main workflow is to configure and test a connection, connect to a remote provider, then browse and edit remote files through VS Code; workspace mounts make them available to normal editor features. The README also documents connection management, capability-aware behavior, and transfer tracking. Some host wiring and provider implementations were not sampled, so those links are limited to documented responsibilities; upload/download execution is explicitly still planned.
Main entry points: manager.ts Connection manager · extension.ts Extension entry · index.ts Commands · connection-manager-panel.ts Connection panel
Components 24
VS Code host
- Extension entry
apps/vscode/src/extension.ts - Commands
apps/vscode/src/commands/index.ts - Filesystem adapter
apps/vscode/src/fs/omni-file-system-provider.ts - Workspace mounts
apps/vscode/src/workspace/workspace-mounts.ts - Connections tree
apps/vscode/src/views/connections-tree.ts - Transfers tree
apps/vscode/src/views/transfers-tree.ts - Connection panel
apps/vscode/src/webview/connection-manager-panel.ts
Connection UI
- Connection manager UI
packages/ui/src/components/ConnectionManagerApp.tsx - UI controller
packages/ui/src/model/use-connection-manager.ts - UI backend port
packages/ui/src/ports/connections-backend.ts
Shared core
- Connection settings
packages/core/src/ports/config-store.ts - Secret storage port
packages/core/src/model/connection.ts - Connection manager
packages/core/src/connection/manager.ts - Provider registry
packages/core/src/registry.ts - Managed filesystem
packages/core/src/fs/managed-file-system.ts - Entry cache
packages/core/src/cache/entry-cache.ts - Transfer queue
packages/core/src/transfer/queue.ts
Protocol providers
- S3 provider
packages/provider-s3/src/s3-file-system.ts - FTP provider
packages/provider-ftp/src/ftp-file-system.ts - SFTP provider
packages/provider-sftp/src/sftp-file-system.ts - WebDAV provider
packages/provider-webdav/src/webdav-file-system.ts
Other components
- User
- VS Code
- Remote storage
Connections 32
- User → Extension entry: uses
- VS Code → Extension entry: hosts
- Extension entry → Commands: registers
- Extension entry → Filesystem adapter: registers
- Extension entry → Connections tree: registers
- Extension entry → Transfers tree: registers
- Commands → Connection panel: opens
- Connection panel → Connection manager UI: renders
- Connection manager UI → UI controller: uses
- UI controller → UI backend port: requests
- Connection panel → Connection settings: reads settings
- Connection panel → Connection manager: reads state
- Connection panel → Secret storage port: reads credentials
- Commands → Connection manager: connects
- Commands → Workspace mounts: mounts
- Workspace mounts → VS Code: adds workspace
- Filesystem adapter → Connection manager: acquires filesystem
- Connection manager → Connection settings: loads config
- Connection manager → Provider registry: selects provider
- Connection manager → Secret storage port: loads credentials
- Connection manager → Managed filesystem: manages connection
- Managed filesystem → Entry cache: caches entries
- Connection manager → S3 provider: creates provider
- Connection manager → FTP provider: creates provider
- Connection manager → SFTP provider: creates provider
- Connection manager → WebDAV provider: creates provider
- S3 provider → Remote storage: reads and writes
- FTP provider → Remote storage: reads and writes
- SFTP provider → Remote storage: reads and writes
- WebDAV provider → Remote storage: reads and writes
- Transfers tree → Transfer queue: shows tasks
- Commands → Transfer queue: manages tasks