Documentation Index
Fetch the complete documentation index at: https://docs.tesslate.com/llms.txt
Use this file to discover all available pages before exploring further.

General
What is OpenSail?
What is OpenSail?
- Natural-language agent coding with a real IDE (Monaco, terminal, git)
- Multi-container projects with live preview
- btrfs-based workspaces with instant snapshots and forking
- 22+ deployment targets and 6+ messaging channels
- Marketplace for agents, skills, MCP connectors, and installable apps
- Runs on any model via LiteLLM
Is OpenSail free?
Is OpenSail free?
- Use it for personal or commercial projects
- Self-host on your own infrastructure
- Modify, fork, and redistribute the source
- Infrastructure (if you deploy to a cloud)
- AI API usage, or use free local models via Ollama or vLLM
- Optional credit purchases on the hosted service at tesslate.com
What is the difference between cloud, desktop, and self-hosted?
What is the difference between cloud, desktop, and self-hosted?
| Path | Who runs it | Data location | When to pick |
|---|---|---|---|
| Cloud (tesslate.com) | Tesslate | Tesslate infrastructure | Zero setup, managed updates |
| Desktop | You, on your machine | Local disk under OPENSAIL_HOME | Single user, fully offline capable |
| Self-hosted | You, on your infra | Your servers | Team deployments, data sovereignty, air-gapped |
Can I use OpenSail commercially?
Can I use OpenSail commercially?
Models and AI
What models are supported?
What models are supported?
- Anthropic (Claude Sonnet, Opus, Haiku)
- OpenAI (GPT-4, GPT-4o, reasoning models)
- Google (Gemini Pro, Flash)
- DeepSeek, Qwen, Mistral, Meta, Moonshot, MiniMax, Z.AI, xAI
- OpenRouter as a meta-provider
- Self-hosted via Ollama, vLLM, or any OpenAI-compatible endpoint
LITELLM_DEFAULT_MODELS. See the model management guide.Do I need to pay for an API key?
Do I need to pay for an API key?
- BYOK: attach your own key from OpenAI, Anthropic, OpenRouter, Groq, Together, DeepSeek, Fireworks, or anyone else. Pay your provider directly.
- Local models: run Ollama or vLLM for zero AI cost and full offline operation.
- Hosted credits on tesslate.com.
Can I run offline or air-gapped?
Can I run offline or air-gapped?
- Desktop with Ollama: the Tauri app talks to a local model server over HTTP. No network required.
- Self-hosted with a local LiteLLM pointed at vLLM, Ollama, or any OpenAI-compatible endpoint.
Deployment
Do I need Kubernetes?
Do I need Kubernetes?
DEPLOYMENT_MODE:desktop: SQLite + local subprocess or Docker runtime. Best for single users.docker: Docker Compose with Postgres, Redis, Traefik. Best for single-server installs and dev.kubernetes: per-project namespaces, btrfs CSI, Volume Hub. Best for multi-tenant production.
Where can I deploy OpenSail?
Where can I deploy OpenSail?
- Local: laptop, home server, dev box
- Cloud: AWS (EC2/EKS), GCP (GCE/GKE), Azure (VM/AKS), DigitalOcean, Hetzner, Linode
- On-prem: company datacenter, private cloud, air-gapped networks
Can I use a custom domain?
Can I use a custom domain?
APP_DOMAIN=opensail.example.com, APP_PROTOCOL=https, COOKIE_DOMAIN=.opensail.example.com. Projects become {container}.{project-slug}.opensail.example.com under Kubernetes and {container}.localhost under Docker.TLS is handled by Traefik + Let’s Encrypt (Docker) or cert-manager + Cloudflare DNS (Kubernetes).What are the system requirements?
What are the system requirements?
Storage and workspaces
How does the btrfs workspace layer work?
How does the btrfs workspace layer work?
- Fork a running workspace in seconds
- Roll back to any snapshot in the per-project timeline (up to 5)
- Hibernate and restore a full multi-container project atomically
How does hibernation work?
How does hibernation work?
K8S_HIBERNATION_IDLE_MINUTES of inactivity (default 10). The Volume Hub triggers an S3 CAS sync, then the pods are torn down. On next use, EnsureCached brings the volume back: fast path if still cached on a node, otherwise peer-transfer from another node, otherwise restore from S3.Multi-container projects hibernate and restore atomically because they share a volume and pod affinity pins them to one node.Can I export my projects?
Can I export my projects?
kubectl cp/docker cp the files out. Apps can also be exported as a CAS bundle via the publish pipeline.Privacy and security
Is my data private?
Is my data private?
Can agents access my host file system?
Can agents access my host file system?
- Docker/K8s: agents run inside the project container and can only see files in that container
- Desktop
localruntime: agents see only the project directory underOPENSAIL_HOME(or a symlinked adopted folder) - Shell commands run in the project container
- Tools gated by
.tesslate/permissions.jsonrequire approval for sensitive actions
Where are credentials stored?
Where are credentials stored?
- Passwords: bcrypt hashed in Postgres
- OAuth tokens, API keys, channel credentials, deployment credentials: Fernet encrypted at rest
- 2FA codes: Argon2 hashed, 5-attempt cap, short TTL
- Desktop
tsk_keys: Tauri Stronghold vault (encrypted on disk)
Is OpenSail SOC 2 or HIPAA compliant?
Is OpenSail SOC 2 or HIPAA compliant?
Pricing and billing
How does billing work?
How does billing work?
STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, and tier price IDs. See the billing guide.Are there usage limits?
Are there usage limits?
AGENT_MAX_COST, AGENT_MAX_COST_PER_RUN, and AGENT_MAX_ITERATIONS. Container tiers are bounded by COMPUTE_MAX_CONCURRENT_PODS. MCP installs per user cap at MCP_MAX_SERVERS_PER_USER. All are configurable.Building and publishing
How do I publish an app?
How do I publish an app?
- Serializes the workspace to a manifest and CAS bundle
- Runs the staged approval pipeline (stage0 to stage3) for public listings
- Creates an immutable
AppVersion
How do I deploy agents to Slack or Telegram?
How do I deploy agents to Slack or Telegram?
Settings -> Channels. Each channel (Slack, Telegram, Discord, WhatsApp, Signal) stores Fernet-encrypted credentials. The Gateway v2 runner maintains a persistent connection, routes messages to the right agent, and delivers responses back to the platform.Schedules can fire at cron intervals with per-schedule delivery targets. See Communication gateways.What programming languages does OpenSail support?
What programming languages does OpenSail support?
Can I import an existing project?
Can I import an existing project?
- Git import: paste a GitHub/GitLab/Bitbucket URL
- Base template: pick a pre-wired stack
- Describe: let the agent scaffold the stack
- Desktop: adopt any existing folder via symlink or marker file
Troubleshooting
Preview not updating
Preview not updating
docker compose logs <container> or kubectl logs -n proj-<uuid> <pod>). If hot reload is broken on mounted volumes, set CHOKIDAR_USEPOLLING=true.Agent not responding
Agent not responding
LITELLM_API_BASE is reachable and LITELLM_MASTER_KEY is correct. Check the model selector shows valid entries. Look at the orchestrator logs for LiteLLM errors and per-user budget rejections.Cannot reach studio.localhost (Docker)
Cannot reach studio.localhost (Docker)
docker compose ps). On systems that do not auto-resolve *.localhost, add 127.0.0.1 studio.localhost to your hosts file.Container fails to start (Kubernetes)
Container fails to start (Kubernetes)
kubectl describe pod -n proj-<uuid> and check events. Common causes: missing K8S_DEVSERVER_IMAGE, PVC still provisioning, image pull secret wrong. Verify the Volume Hub is healthy in kube-system.