# Repos

Repos need no outside account or token. Every push saves a full snapshot as commit 1, 2, 3 …; deploying an older number is a rollback. An assistant connected over MCP can create a repo, push what it wrote and put a commit live in one conversation (create_repo, push_files, get_repo_files, deploy_repo, list_repos).

## Limits

- A push over REST: up to 500 files, 10 MB per file, 25 MB in total. One push_files tool call is smaller (300 files of about 600 KB), so large projects push over REST or in parts.
- Text files up to 512 KB read back one by one; larger and binary files are listed with their size. Binary files are pushed base64-encoded (`"base64": true`).
- Environment files (.env and friends) are never readable back through the API. Do not commit secrets.
- Repos are workspace-wide: project keys cannot use them.
- Through the API and the AI connector only: there is no dashboard page, git push or SDK method for repos yet.

## Reference

**SDK**

```js
// Repos are reached over REST or the AI connector; the SDK has no repo methods yet.
```

**REST**

```http
GET    /api/repos                    # every repo, with commit counts
POST   /api/repos                    { "name": "school-site", "description"? }
GET    /api/repos/:id                # the repo and its commit history
POST   /api/repos/:id/commits        { "message": "…", "files": [{ "path": "index.html", "content": "…" }] }
GET    /api/repos/:id/files?commit=2                  # file tree at a commit (default: latest)
GET    /api/repos/:id/files?commit=2&path=index.html  # one file
POST   /api/repos/:id/deploy         { "projectId": 12, "commit": 1 }   # an older commit is a rollback
DELETE /api/repos/:id
```
