Skip to content
Tanveer Hoque
All projects
Open source2025 to presentAuthor

Portal Desktop

A desktop client for the agent platform: terminal, repositories and agent workspace in one window.

Problem

An agent platform with an HTTP API is a thing you talk to with curl. The work it is meant to support, reading a repository, running a command, watching an agent take its turns, happens in a terminal, an editor and a browser tab, and moving between the three is where the context goes.

Approach

A Tauri shell around a SvelteKit front end, so one codebase ships as a native application on Windows, macOS and Linux and the download is an installer rather than a clone. It is a client, not a second server: the models, the keys and the orchestration stay on agent-platform, and the app points at it. Terminal emulation is xterm.js over node-pty; the Coder workspace shows agent turns, git changes and sub-agents beside the terminal they are working in.

Outcome

  • One codebase, seven installers: an .exe and an .msi for Windows, a .dmg for Apple Silicon and another for Intel, a .deb, an .rpm and an AppImage for Linux.
  • Auto-update is built in: a signed Tauri update manifest ships with every release, so an installed copy updates itself instead of being redownloaded.
  • Thirteen releases since the first one, the newest at 0.12.1.
  • No provider credentials on the desktop: the app holds a base URL and a workspace token, and nothing else.
3
Platforms from one codebase
7
Installers per release
13
Releases shipped

Stack

Svelte 5SvelteKitTauriRustTypeScriptxterm.jsTailwind CSS