> ## Documentation index
> Fetch the complete documentation index at: https://tgcloud.docs7.io/llms.txt
> Ask it with GET https://tgcloud.docs7.io/ask?q=<keywords or question>. Short keywords rank best.
> Use these to discover all available pages before exploring further.

# Quickstart

> From zero to a live bot in five minutes of dialogue

# Quickstart

## 1. Token

@BotFather → your bot → **Serverless → CLI Access → Access token**.
Format `app<id>:<secret>` — NOT the Bot API token (`123456:AA…`).
Turn Serverless on for the bot before this step.

## 2. Talk to the agent

```
You:   create a bot in ~/bots/echo
Agent: create_project → asks for the CLI access token → login_bot
       → edits tgcloud/handlers/message.js → push → webhook_sync
```

The bot is live. Test the logic without a real chat:

```
Agent: run_handler { module: 'handlers/message', args: '{ chat: { id: 1 }, text: "hi" }' }
```

`run_handler` also runs endpoints. Pass init data in `ctx`.

## 3. What's next

- [Tools](tools.en) — all 16 commands
- [Security](security.en) — guardrails and tokens
- [Cookbook](cookbook.en) — a bot with a database, buttons, and a Mini App

After front-end edits, the agent should call `deploy` (build, then push).
A plain `push` uploads the build folder as it is and does not run the bundler.
A schema change is `push`, then `migrate` (preview), then `migrate` with
`confirm: true`. Prefer `apply: "safe"` when the preview has no drops.
