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.

What an agent is in OpenSail
An agent in OpenSail is a runningtesslate-agent instance, bound to a project workspace, that drives an LLM in a streaming tool-use loop. Every agent is a composition of four things:
A system prompt
The personality, role, and rules of engagement. Co-authored by the creator.
A tool registry
The built-in tool set (33 tools across 8 categories) plus any MCP connectors and view-scoped tools.
A skill catalog
Lightweight skill descriptions injected at session start. Full bodies fetched on demand.
A model preference
A LiteLLM-routed model for each session, with BYOK support and per-tier defaults.
packages/tesslate-agent submodule and is invoked by the orchestrator worker through tesslate_agent_adapter.py. The agent is model-agnostic, stateless between calls, and streams every step back to the UI as it happens.
For the authoritative, per-tool reference of all 33 built-in tools (parameters, edit-mode gating, return shape, quirks), see the tesslate-agent reference: https://github.com/TesslateAI/tesslate-agent/blob/main/docs/DOCS.md.
Starting a session
Open a project
Open any project from your dashboard. The chat panel opens on the right and the agent picks up the project workspace, open files, and git state automatically.
Pick an agent
The agent selector at the top of the chat shows every agent installed on your account plus the project’s default. Any agent published to the marketplace that you have installed is available here.
Pick an edit mode
The edit-mode toggle controls how much autonomy the agent has: Ask Before Edit (default), Allow All Edits, or Plan Mode. Mode is enforced at the tool registry level, not the system prompt, so every agent respects it.
Describe the task
Type in natural language. Reference files by path. Drop in screenshots, error messages, or attached files. The agent reads the project tree, the git status, any
TESSLATE.md, and the skill catalog before its first model call.The conversation pattern
The agent runs an iteration loop until the model stops asking for tool calls:complete event and the chat is ready for your next message.
Approval modes
Dangerous tools (file writes, shell commands, web fetch) are gated at the registry level by the active edit mode:- Ask Before Edit
- Allow All Edits
- Plan Mode
Default and safest. Reads proceed silently. Writes and shell commands pause the agent and show an approval card with Allow Once, Allow All, and Stop. Allow All for write tools flips the session into Allow All Edits; Allow All for shell/web tools persists per tool category only.
Attaching files and context
- Drag and drop files into the chat input to attach them. Images are viewable by the agent via
view_image(supported on vision-capable models). - The architecture panel is shared state: nodes and edges you add show up to the agent on its next iteration, and the agent’s graph edits show up on your canvas in real time.
- Long-running sessions compact older messages automatically when the token estimate crosses 80% of the model’s window. Multi-hour runs do not hit a wall.
Running, interrupting, resuming
Cancel a running task
Cancel a running task
Click Stop in the chat input while the agent is working. A cancellation signal is published to the worker, which checks between iterations and stops on the next loop boundary. Partial work is preserved in the transcript.
Resume after a disconnect
Resume after a disconnect
Agent steps persist to the database as they happen. Close the tab, lose network, or have the worker pod restart: on reconnect the transcript rehydrates from the stored trajectory and the WebSocket resubscribes to the Redis event stream. Any events you missed replay before live streaming picks up.
Rollback a change
Rollback a change
Every file write is recorded with a prior snapshot. Use
file_undo to revert individual files, or use the workspace snapshot timeline to roll the entire project back to any point in the session. Up to 5 snapshots are retained per project.Refine iteratively
Refine iteratively
Agents work best when steered. After a tool card lands, you can interject with a short correction (“use Tailwind, not CSS modules”) without waiting for the iteration to end. The correction lands in the next model turn.
Writing prompts that work
- Be specific
- Reference existing code
- Break up big tasks
- Paste errors verbatim
Include the file path, the framework, the expected behavior, and any constraints. “Create
src/components/Button.tsx as a React TS component with variant, size, and loading props, using Tailwind” beats “add a button”.Tool categories at a glance
| Category | What the agent uses it for |
|---|---|
| File operations | Read, write, patch, multi-edit, and undo files in the workspace |
| Shell commands | One-off bash_exec, persistent shell_open/shell_exec sessions, background processes, Python REPL |
| Navigation | glob, grep, and list_dir for fast codebase traversal |
| Git | git_log, git_blame, git_status, git_diff inside the container |
| Memory | Cross-session scratchpad the agent can read and write |
| Web | web_fetch, web_search via Tavily, Brave, or DuckDuckGo |
| Planning | Todos, plan documents, structured updates |
| Delegation | Spawn subagents, wait on them, send messages, close them |
Troubleshooting
Agent is stuck waiting
Agent is stuck waiting
If you are in Ask Before Edit mode, the agent pauses for approval on the first dangerous tool. Check the chat for a pending approval card. You can also widen the approval scope with Allow All for the tool type.
Tool calls are blocked
Tool calls are blocked
Plan Mode blocks writes and shell commands at the registry. Switch modes with the toggle next to the input. API-key scoping can also restrict tools: see
/guides/api-keys for scope details.Agent is looping
Agent is looping
The loop terminates when the model stops asking for tools. If it keeps going, cancel, clarify the success criteria, and restart. Consider Plan Mode to force the agent to commit to an approach before executing.
Credit or budget errors
Credit or budget errors
If you hit a credit ceiling mid-task, purchase a credit pack or upgrade your tier. See
/guides/billing. BYOK keys (Pro and Ultra) bypass the credit system entirely.Next steps
Customizing Agents
Build your own agent with a custom system prompt, skills, and MCP bindings
Skills
Package a reusable capability and attach it to any agent
Connectors (MCP)
Wire Slack, Gmail, Linear, and more into your agent’s tool registry
Model Management
Pick the right model, BYOK, or self-host with Ollama or vLLM