Skip to content

Latest commit

 

History

242 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ShellCanvas. Your machines. One canvas. A graphical desktop for your SSH servers.

Turn the servers you reach over SSH into a real desktop.
Files, terminals, an editor and apps, in windows you arrange, running on your computer.
Nothing to install on the server.

Download for Windows shellcanvas.com Documentation

Latest release Platform: Windows License: MPL-2.0 Built with Tauri 2, Rust and React

Join the ShellCanvas Discord server
Ask questions, share feedback and help shape ShellCanvas.


The ShellCanvas desktop connected to a server: a Files window, a terminal showing docker compose ps and git log, and compose.yaml open in the editor.

Files, Terminal and the editor on one connected server. Screenshots use sample hosts and data.

Why ShellCanvas

SSH gives you a shell. ShellCanvas gives you the rest of a computer: a file manager that feels local, an editor that saves safely, terminals side by side and apps that know which host they are working on. It all runs on your machine and talks to your server over plain SSH, the connection you already use.

  • A desktop, not a dashboard. Move, resize, tile and minimize real windows between a top bar and a dock. Open several Files and Terminal windows per host.
  • Nothing to install on the server. ShellCanvas uses the SSH server your machine already runs, with SFTP for files. No agent, no daemon, only SSH.
  • Trust you can see. A new host's key is shown for review before you sign in, and a changed key is refused. Saving an SSH host stores its password or passphrase in this PC's system credential store, separate from profile files, ready for the next connection.
  • Room to grow. Install apps straight from GitHub, switch themes, or build your own apps and connection adapters with the public SDKs.
How it works: ShellCanvas runs on your computer and connects to your servers over an encrypted SSH connection. The host key is checked first; SFTP carries files and a PTY carries terminals. Nothing is installed on the servers.

Quick links

Download · Website · Documentation · Get started · Build apps and adapters · AI development skills · Contribute · Discord Server

Related public repositories:

Project What it adds
Canvas Assistant An optional AI assistant with conversations, attachments and remote workspace tools that require your approval.
Drive Bridge An optional free app for attaching remote folders as local drives, with WinFsp and FUSE backends. Development preview.

A quick tour

Files that feel local

The Files window browsing a workspace folder, with a transfer queue uploading a photos folder and two queued archives.

Browse with places, a path bar and a filter. Select many items at once, and reach everyday actions from a context menu with the shortcuts you expect: rename with F2, cut and paste between Files windows with Ctrl+X and Ctrl+V, move or copy to another folder, delete. Upload and download files or whole folders through a queue that shows progress and can be cancelled. ShellCanvas never overwrites something that already exists.

On Windows, copy files and folders from ShellCanvas and paste them into File Explorer, or the other way round.

Terminal and editor, side by side

A terminal showing docker compose ps and git log output next to the editor with compose.yaml open.

Terminals are real shells over SSH. Open several at once, each with its own session, a right-click menu, and Ctrl+Shift+C / V for the clipboard while Ctrl+C still interrupts.

The editor opens UTF-8 text files up to 256 KiB, with find, undo, word wrap and Save As. Before it saves, ShellCanvas checks that nobody changed the file on the server in the meantime, then replaces it atomically on servers that support it, such as OpenSSH.

Every host gets its own space

The workspace switcher open in the top bar, listing three connected hosts, with a Raspberry Pi workspace in front.

Connect to several machines at once and switch between them from the top bar. Each workspace keeps its own windows, folders and terminal output. If a connection drops, reconnect in place: your windows, folders and unsaved drafts are still there, and terminals start fresh shells.

Connect with confidence

Left: the connect dialog with four saved hosts. Right: the host verification dialog showing a new host's SHA-256 fingerprint.

Pick a saved host or import one from ~/.ssh/config, then sign in with a key or a password. Host keys are checked against your OpenSSH known_hosts and ShellCanvas's own trust store before authentication. A new server shows its fingerprint for you to confirm, and a server whose key changed is blocked.

Apps, whenever you want them

The app launcher showing Text editor, Files, Terminal, Host details, App Manager and three installed apps.

Open everything from the launcher, and add more with App Manager. Install from a public GitHub repository or a package file, review exactly what each app may access, and check for updates later. On Windows, installed apps run in an isolated frame and get only the access you approve.

App Manager listing installed apps as tiles: Canvas Assistant, Device Services and Field Notes.

Want an assistant on the desktop? Canvas Assistant is an optional app that talks to an OpenAI-compatible model you configure. It can look through files in your workspace, and every file change or terminal command it proposes waits for your approval.

Make it yours

The same desktop split diagonally between the dark and light Canvas theme.

Canvas, the built-in theme, comes in light and dark and can follow your system. Choose a wallpaper or use your own photo, scale the interface from 80 to 150 percent and size the dock to taste. Themes are plain data files you can install from disk or GitHub, so anyone can make one; start from Canvas Study.

Get started

  1. Download the latest release: the .exe setup installs for your user account, or use the .msi package. Preview builds are not code-signed yet, so Windows may warn about an unknown publisher. Each release lists SHA-256 checksums in SHA256SUMS.txt.
  2. Add a host. Enter its address, your user name and a private key or password, or choose an entry from ~/.ssh/config.
  3. Verify and connect. Compare the fingerprint, confirm it, and your workspace opens with Files and a terminal.

You need Windows (x64) with the Microsoft Edge WebView2 runtime, which Windows 11 includes, and a server running SSH. Files, the editor and transfers also need SFTP, which OpenSSH provides.

Where things stand

ShellCanvas is young and says so. Support claims come from tests on real systems, and this table lists only what has been checked.

Area Status
Windows client Released as NSIS and MSI installers (x64, not yet code-signed).
macOS client Intel and Apple Silicon builds are attached to releases. Native installed-app isolation passed CI; SSH and app workflows on a user's Mac still need manual validation.
Linux client x86_64 AppImage, DEB and RPM builds are attached to releases. Native installed-app isolation passed CI; SSH and app workflows on a user's Linux desktop still need manual validation.
Linux servers Files, terminal, editing and transfers are verified on an Ubuntu test server. Other distributions use the same SSH and SFTP path but have not been tested.
macOS servers Browsing files and a live shell are confirmed; writes and transfers are not validated yet.
Windows OpenSSH servers Not validated yet.

Also on the way: validated macOS and Linux client workflows and Drive Bridge, a separate free app in preview that attaches a remote folder as a local drive. The connection model is ready for more than SSH (for example serial, Telnet, FTP or a device API per workspace), but those adapters are not built yet. See the roadmap.

Build for ShellCanvas

Apps. The app SDK generates a project, type-checks it and builds a single installable package. No desktop rebuild or restart is needed.

npx --package @techartdev/shellcanvas-app-sdk shellcanvas-app init my-notes --id org.example.notes --title "My Notes"
cd my-notes
npm install
npm run build   # writes dist/app.shellcanvas.json

In App Manager, choose Add apps → Choose package… and pick the result. To share it, run npx shellcanvas-app repository . --description "What it does" and commit the generated shellcanvas.repo.json so others can install it from GitHub.

Connection adapters. The Rust shellcanvas-adapter-sdk and its shellcanvas-adapter CLI create, build and validate native adapters that add file, console, settings or custom services to a workspace. See the adapter SDK guide and the filesystem SDK.

Both SDKs are at 0.1 and still provisional. The repository's AI development skills help coding agents build apps and adapters against them.

Build from source

You need Node.js 22+, Rust 1.93+ and the Tauri prerequisites for your platform.

npm ci
npm run desktop           # run the desktop app with live reload
npm run dev               # browser design preview with sample data, no SSH
npm run verify            # formatting, tests and lint; add -- --native to also build the app
npm run release:windows   # NSIS and MSI installers

The engineering documentation covers the architecture, contracts and verification records.

Contributing

Bug reports, compatibility reports from new systems and focused pull requests are all welcome. Start with the contributing guide. Report security issues privately as described in the security policy, and follow the code of conduct. Changes are tracked in the changelog.

License

ShellCanvas is licensed under the Mozilla Public License 2.0. Modified MPL-covered files stay under the MPL when distributed; separate apps, themes and adapters may use their own licenses.


Made with Tauri, Rust and React · shellcanvas.com

About

A beautiful, extensible desktop for remote devices. SSH first, composable connections by design.

Resources

Code of conduct

Contributing

Security policy

Stars

16 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages