ExoAtlas: Catalog Discovery and Data Browser

ExoAtlas Logo

1. Defining ExoAtlas

ExoAtlas is ExoHub’s catalog discovery and data browsing interface. It lets teams search, browse, and download artifacts from a multi-tenant ArtifactDB catalog instance through a rich interactive experience available in two modes:

Both modes share the same codebase and provide identical functionality – search, filtering, document viewing, and file downloads. The web mode makes catalog discovery accessible to data consumers, collaborators, and stakeholders who may not have the exo CLI installed.

Key Capabilities

2. Role in the ExoHub Architecture

ExoAtlas serves as the discovery and access layer for ExoHub’s catalog infrastructure, bridging the gap between data producers who publish datasets and data consumers who need to find and retrieve them.

Two Access Modes, One Experience

ExoAtlas is designed so that the same interactive experience is available regardless of how you access it:

TUI (Terminal)Web (Browser)
Launchexo atlasNavigate to the Atlas URL
Authenticationexo login (cached credentials)Device-flow OAuth in-browser
DownloadsFiles saved to local filesystemBrowser downloads via presigned S3 URLs
SharingCopy artifact IDCopy URL with ?doc= parameter
Requirementsexo CLI installedWeb browser only

Integration with ExoHub Components

ExoAtlas operates in coordination with other ExoHub components:

ExoCLI Foundation: ExoAtlas is built into ExoCLI as the exo atlas command. The web mode runs the same TUI binary, ensuring feature parity between terminal and browser interfaces.

ExoGit Metadata: ExoAtlas queries the catalog built from ExoGit data repositories, displaying bundle and artifact metadata generated by exo bundle.

Authentication: ExoAtlas uses the same device-flow OAuth as ExoCLI , with server-side token management and automatic refresh in web mode.

3. Technical Implementation

TUI Mode

The terminal interface is built with BubbleTea and runs directly in the user’s terminal:

# Browse the catalog
exo atlas

# Open a specific document
exo atlas "myproject:file.txt@v1"

# Use a specific catalog
exo atlas --url https://charon.example.com/v1/mydb
FlagDescriptionDefault
--urlArtifactDB catalog URLAuto-resolved
-o, --output-dirOutput directory for downloads.

The catalog URL is resolved from: --url flag, then EXOHUB_CATALOG_URL env var, then catalog_url in the active exo context.

Web Mode

The web mode runs as an HTTP server (exo serve) that bridges browsers to the TUI through a PTY-WebSocket architecture:

  1. Browser connects via WebSocket to the ExoAtlas server
  2. Server spawns exo atlas in a PTY (pseudo-terminal) for each session
  3. Terminal I/O is streamed bidirectionally: keystrokes from browser to PTY, screen output from PTY to browser
  4. xterm.js renders the terminal output in the browser with full keyboard and mouse support

This architecture means there is no separate web frontend to maintain – improvements to the TUI are immediately available in the browser.

Authentication

In web mode, authentication is handled server-side:

Browser-Side Downloads

File downloads in web mode bypass the server entirely:

Deployment

ExoAtlas web mode is designed for container deployment:

# Run locally
exo serve --addr :8080 --url https://charon.example.com/v1/mydb

# Behind a reverse proxy at /atlas
exo serve --addr :8080 --base-path /atlas
FlagDescriptionDefault
--addrListen address:8080
--urlArtifactDB catalog URLAuto-resolved
--base-pathBase URL path for reverse proxy deployment/

The Docker image bundles the exo binary with xterm.js assets and can be deployed as a standalone service or behind a reverse proxy.