Skip to content

Cloud/container support: full ox experience for ephemeral coding environments #102

@rsnodgrass

Description

@rsnodgrass

Summary

Cloud-based coding environments (e.g., Claude Code cloud, OpenClaw) run in ephemeral Linux containers where ox isn't installed. Currently, startup hooks fail with ox: command not found. This issue tracks the full cloud experience beyond the initial read-only team context work.

Context

Initial work (in progress on ryan/ox-session-start):

  • SAGEOX_TOKEN env var for non-interactive auth
  • HTTP-based team context fetch during ox agent prime (no git/daemon required)
  • New API endpoint: GET /api/v1/teams/{team_id}/context

Remaining Work

Phase 1: Backend API

  • Implement GET /api/v1/teams/{team_id}/context endpoint (serves team docs, AGENTS.md, CLAUDE.md, MEMORY.md as JSON)
  • Auth: require Bearer token, check team membership

Phase 2: Session Recording

  • Session recording without git (ox session start/stop via HTTP API upload)
  • LFS upload via HTTP API (currently requires git-lfs or GitLab API)

Phase 3: Container Bootstrap

  • ox cloud bootstrap command or --cloud flag on ox agent prime
  • Static binary distribution (direct download URL, no tar required)
  • Container setup documentation/scripts for common platforms

Phase 4: Broader Agent Support

  • OpenClaw session integration
  • Non-Claude agent support in cloud environments
  • Automated session capture for headless/CI coding sessions

Key Constraints

  • Containers are extremely minimal (may lack head, git, curl)
  • ox builds static binaries (CGO_ENABLED=0) — no dynamic dependencies
  • Auth must work non-interactively (env var token, no browser)
  • Team context needs to be served over HTTP (no git clone)
  • Daemon is not available in ephemeral containers

Design Principle

Keep the "secret sauce" in cloud APIs — the container just needs the ox binary and a token.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions