See the sample code
```python
# main.py
from html import escape
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
app = FastAPI()
@app.get("/", response_class=HTMLResponse)
def index(request: Request):
email = escape(request.headers.get("X-Keelson-User-Email") or "Guest")
return f"""
Hello, {email}
This app is running on Keelson.
"""
```
```text
# requirements.txt
fastapi
uvicorn
```
```yaml
# keelson.yaml
slug: hello
runtime: python-slim
command: "uvicorn main:app --host 0.0.0.0 --port $PORT"
db:
mode: none
```
The app reads the signed-in user's email address from a header supplied by Keelson and displays it. It contains no authentication code.
## 3. Install the Agent Skill
The Agent Skill gives your AI agent Keelson configuration and deployment instructions. It comes with the Keelson CLI. Open a terminal in the extracted `keelson-hello` folder, select your agent, and run the command.
**Claude Code**
```bash
keelson install-agent claude-code --global
```
With `--global`, the skill is available in your other projects too. Without it, the skill is installed only in the current project.
**Codex**
```bash
keelson install-agent codex
```
Installs the skill in the current project.
**Cursor**
```bash
keelson install-agent cursor
```
Installs the skill in the current project.