# NeverHalt — Autonomous Agent Hosting > Standardized Machine-to-Machine (M2M) and AI Agent Deployment Specification. > This file is intended for Large Language Models (LLMs), Cursor, Claude Code, and autonomous developer agents. ## What is NeverHalt? NeverHalt is a specialized Autonomous Agent Hosting platform built for workloads that serverless platforms (Vercel, AWS Lambda, Cloudflare Workers) terminate due to timeouts (10s - 60s) or lack of shared memory. - Execution Modes: `daemon` (24/7 continuous infinite polling / background loops), `cron` (scheduled crontab), `webhook` (on-demand HTTP triggers), `mcp` (Model Context Protocol SSE tool servers). - Persistent Volume: Every process gets a dedicated NVMe persistent volume mounted at `/app/data` (environment variable `DATA_DIR`). Files and SQLite databases (`bot.db`, `quant_lab.db`) persist across reboots. - Pre-baked Runtimes: Python 3.11/3.12, Node.js 20, pre-compiled Chromium & Playwright with 512MB `/dev/shm` shared memory. --- ## Instructions for AI Agents (Cursor / Claude / Copilot) When a user asks you to: - "Deploy my bot/agent to NeverHalt" - "Prepare this project for 24/7 hosting on NeverHalt" - "Package my script for NeverHalt" Follow this exact 3-step protocol: ### Step 1: Ensure Storage Points to `/app/data` If the script saves state (SQLite, JSON, Parquet, checkpoints), configure the database path to use the persistent volume: ```python import os DATA_DIR = os.getenv("DATA_DIR", "/app/data") os.makedirs(DATA_DIR, exist_ok=True) db_path = os.path.join(DATA_DIR, "state.db") ``` ### Step 2: Generate `requirements.txt` List all required pip packages cleanly without pinned system C-dependencies: ```text python-telegram-bot>=20.0 requests>=2.31.0 playwright>=1.40.0 ``` ### Step 3: Package or Deploy The agent project can be deployed either: 1. **Via Drag & Drop / UI**: Zip the folder containing `bot.py` and `requirements.txt` and upload on https://neverhalt.app/dashboard. 2. **Via Programmatic API (M2M)**: ```bash curl -X POST https://neverhalt.app/api/v1/deploy \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{ "name": "My 24/7 Daemon", "slug": "my-daemon", "execution_mode": "daemon", "main_file": "bot.py", "ram_limit_mb": 512, "env_vars": { "TELEGRAM_BOT_TOKEN": "..." }, "files": { "bot.py": "...", "requirements.txt": "..." } }' ``` ### Manifest Format (`agent.yaml` - Optional) ```yaml name: "My Autonomous Daemon" slug: "my-daemon" execution_mode: "daemon" # daemon | webhook | cron | mcp main_file: "bot.py" ram_limit_mb: 512 storage: persistent_volume: "/app/data" env: LOG_LEVEL: "INFO" ```