### Scheduled jobs

- Jobs `ample job create` runs a command in one of your services, or an HTTP request to it, on a cron schedule in any time zone or at a fixed interval, whether or not the app has traffic. Request jobs carry an `Ample-Job-Token` header that matches the app's `AMPLE_JOB_TOKEN`.
- Jobs `ample job run <name> --wait` runs a job now and exits 0 if it succeeded. A failed run says who has to act and how, like a failed deploy, and `ample job runs` keeps the history with each run's output.
- Manifest `[jobs.<name>]` in ample.toml declares jobs; `ample up` creates or updates each one after its service deploys.
- Background work Work no request waits on, such as a queue or a render, can run under `ample-awake -- <command>` inside the server so it is not treated as idle. `ample server keep-awake <server> --for 30m` does the same from outside, for a series of commands.
- MCP Every `ample job` command and `ample server keep-awake` are MCP tools (`ample_job_create`, `ample_job_run`, ...).

### CLI works behind TLS-inspecting proxies

- CLI The CLI now trusts the machine's certificate store, or SSL_CERT_FILE and SSL_CERT_DIR when set, so it works behind proxies that re-sign TLS. Verification is never disabled.
- CLI `ample auth signup` now saves its login, so later commands renew their token without extra steps. It never replaces a login that still works.
- Docs The API host serves a short agent quickstart at /docs and /v1/docs.
- Deploy If Ample briefly loses contact with the machine running your app during the health check, the deploy now waits and rechecks instead of failing.

### Browser sign-in for web agents, and long-running server commands

- MCP Hosts like ChatGPT, Claude and Codex on the web can link an Ample account through browser sign-in with an emailed 6-digit code. Agent signup is unchanged.
- MCP The remote MCP server serves an Ample panel for hosts that support MCP Apps. Tools that only call the API respond faster, and every tool has a readable title.
- CLI `ample server exec` waits for long commands (up to an hour with --timeout-secs). New `ample service start|restart|status|delete` runs a supervised process with a URL on an existing server.
- Runtime The Node, Python and Rust images now include git, so agents can clone code onto a server.
- CLI `ample plan` links services to any sibling whose <NAME>_URL the code reads, plans a static web/ folder beside an API, and names new projects after their folder.
- CLI The Linux x86-64 CLI is now a static binary, so it runs on older distributions such as Debian bookworm, Ubuntu 22.04 and Amazon Linux.
- Deploy Retrying after a failed first deploy now reuses the app's managed database instead of asking for a second one, which the free plan refused.
- Storage The S3 endpoint is s3.ample.computer and published files are served under cdn.ample.computer. `ample usage` shows bucket read and write requests.

### Failed deploys say who needs to act and how to fix it

- Deploy A failed deploy now says who acts (your app, your account, or Ample), with a diagnosis, log evidence and a suggested fix, such as a missing environment variable.
- Deploy When a failure is on Ample's side, the deploy waits while Ample fixes it and then continues. If it still fails, the error links to an incident.
- CLI `ample auth claim --email` (MCP: ample_auth_claim) emails the person a link to claim the account. The sign-in page also offers to claim an unclaimed account.
- Pricing Apps over their budget are now paused with their data kept, not deleted. They answer 503 budget_exceeded until the account is back under budget.
- CLI `ample plan` detects standard-library Python apps and explains an empty plan. Rerunning `ample deploy` while a deploy is in progress waits for it instead of failing.
- Deploy Files under node_modules, vendor, .venv, target and similar folders no longer decide an app's runtime.
- Deploy An app's own start.sh is no longer overwritten. Every runtime with an install or build step gets an 8 GiB disk, and refused boots now report the reason.
- Pricing The pricing page now lists the Free plan and a Custom plan for larger needs.

### Server resize, A2A support and the MCP 2026-07-28 spec

- MCP The remote and local MCP servers now follow the MCP 2026-07-28 specification.
- MCP Ample is also an A2A 1.0 agent: the agent card is at /.well-known/agent-card.json and the same tools are available over JSON-RPC at /a2a.
- CLI `ample server resize` changes a server's size in place.
- Runtime Runtime logs now include your app's own output.
- Deploy Capacity refusals are marked retryable with a Retry-After header.
- Runtime Streaming and long-polling responses stay open until they finish, wherever the app runs.
- Domains Apex custom domains now point at edge.ample.computer with an ALIAS record, with an A record as fallback. Domain responses name the exact record needed.
- Docs ample.computer now serves Markdown to agents, plus AGENTS.md, auth.md, an OpenAPI file, a shorter llms.txt and read-only WebMCP tools.

### Remote MCP server, recipe catalog and six new runtimes

- MCP A remote MCP server at https://api.ample.computer/mcp lets agents sign up, upload a workspace, plan and deploy without installing the CLI. Each call runs isolated.
- Runtime New runtimes: PHP 8.5 (Laravel, Symfony), Ruby 3.4 (Rails, Sinatra), JVM 21 (Spring Boot, Quarkus), .NET 10 (ASP.NET Core), Elixir 1.18 (Phoenix) and Rust (Axum).
- Docs A recipe catalog of over 2,000 tested deployment recipes and guides, searchable with `ample recipe search|get|plan`, MCP tools, and public pages at ample.computer/recipes.
- Databases Deploys detect Python and Go database drivers and provision a managed database. SQLite counts as durable only on a declared volume, set with sqlite_paths in ample.toml.
- Dashboard The dashboard shows an Ample agent report for each deployment, covering release state, runtime errors and health, and attached database readiness.
- Runtime Server-sent events and long-polling responses are no longer cut off while a connection is open.
- Deploy Failure diagnostics keep more log lines and startup errors. Build commands get a default HOME, and Git-tracked files under dependency folders are now packaged.
- Security Hardened network isolation between accounts and browser session handling.

### One command deploys the whole project

- Deploy `ample deploy` on a fresh repository plans it first. With ample.toml it creates or reuses every declared database, volume and bucket, deploys services in order, and attaches domains.
- Deploy Static sites are now published as verified files and served directly, without a VM.
- Deploy If a new release fails to start or pass its health check, the previous release is restored and keeps serving.
- Deploy Unchanged deploys skip packaging, source uploads stream from the CLI, and successful results include the operation ID.
- Runtime Node apps ship pruned production dependencies with the release, including standard Next.js apps started with next start.
- CLI A Linux ARM64 build of the CLI is published. The CLI retries rate-limited requests without repeating changes it is unsure about.
- Domains Custom domain names are validated and stay with the account that added them. Owners can reclaim a domain after deleting its app.
- Databases Attached volumes mount before an app's first start and reconnect after a restart.

### Plan limits point to the upgrade page

- Pricing Creating a server past your plan's limits now returns an upgrade-required error with a link to the billing page.
- CLI When the API names a required next step, the CLI now prints its URL with the error.

### Node 24 and larger multi-service projects

- Runtime A node-24 template is available for apps that require Node 24. Select it explicitly.
- CLI Services in ample.toml accept health_timeout_secs and target_mode, and `ample up` handles larger multi-service projects.
- Deploy Large build artifacts now stream end to end during deploys.

### Deployment guides

- Docs Published how-to guides for deploying Vite, Next.js, Node and React apps, and for getting an app from localhost onto the internet.
- Docs New guides cover custom domains, environment variables, redeploying, and apps that work locally but not in production.

### More reliable shared servers and multi-service links

- Deploy Several apps sharing one server now deploy more reliably, and each keeps its own route.
- CLI Links between services in a multi-service project resolve reliably, and `ample up` output covers only the project's own services.
- Deploy Builders now have 8 GB of disk, up from 4 GB.
- Docs The onboarding snippet stops when `ample plan` needs answers instead of continuing.

### Web apps are public by default

- CLI Web and static deploys now get a public URL by default. Use --private to keep an HTTP service private. Workers are always private.
- Pricing Reaching your budget exactly no longer stops apps. Only going over it does.
- Dashboard The billing page shows your current plan.

### ample plan, ample.toml and ample up

- CLI `ample plan` analyzes a repository, proposes services and resources, and asks structured questions you answer with --answer.
- CLI Projects are described in an ample.toml manifest. `ample init` writes one from the plan.
- CLI `ample up` deploys every service, database and bucket declared in ample.toml, including on brand-new accounts.
- Deploy Worker services (kind = "worker") run without an HTTP route, and the deploy checks that they stay running.
- MCP `ample mcp` runs a local MCP server over stdio that exposes the CLI as tools.
- Docs `ample docs agents` and `ample docs llms` print an agent playbook that matches the installed CLI version.
- Domains Custom domains now survive redeploys that recreate the app's server.

### No-op redeploys, Go support and sibling links

- Deploy Re-running `ample deploy` with no changes returns `unchanged: true` without rebuilding; --force redeploys anyway. Exit codes: 0 live, 1 failed, 2 needs input.
- Runtime Go apps now build from source on Ample.
- CLI `--link NAME=TARGET` connects an app to a sibling app, setting NAME_URL and its framework public variants. The link is saved for redeploys.
- Deploy Variables prefixed NEXT_PUBLIC_, VITE_, PUBLIC_ or NUXT_PUBLIC_ now reach the build. Public apps get forwarded-header settings, so frameworks build correct absolute URLs.
- Runtime Gatsby, Docusaurus, Angular, Eleventy and VitePress sites are served as static files. Apps whose start needs node_modules get runtime dependencies installed automatically.
- Deploy Release commands run with the app's environment, and a non-zero exit fails the deploy.
- Deploy Failed deploys include the deployment ID and an `ample logs` hint. Runtime mismatches and unknown --runtime values are refused with a clear message.
- Deploy pnpm, Yarn and Bun are detected from packageManager, monorepos get workspace-aware guidance, and Node apps that install dependencies get 1 GB when no size is set.

### Unclaimed accounts expire after 48 hours

- Pricing Accounts created by an agent and never claimed with an email are deleted with their apps after 48 hours. Deploy output shows the claim link.
- Deploy Release archives no longer include node_modules, .git or .cache, and a failed release extraction now shows its cause.
- Databases Fixed managed Postgres rejecting queries from apps on some servers.

### Object storage buckets and a CDN

- Storage S3-compatible buckets with `ample bucket create`, list, get, credentials, rotate-key and delete. Each bucket gets its own access key.
- Storage `ample bucket publish` serves a bucket's files at a public CDN URL with caching headers. `ample bucket unpublish` stops it.
- CLI `ample usage` now reports stored bytes and egress.
- Domains Custom domain responses include a next_step that spells out adding the domain, setting DNS and verifying.
- Pricing New accounts start on a Free plan with set limits. Flat-rate paid plans raise them.

### Managed databases

- Databases Managed Postgres, MySQL, Redis and MongoDB databases, created with `ample database create`.
- Databases When an app needs a database and no URL is supplied, `ample deploy` provisions a managed one and injects its connection string.
- Deploy A committed .env or .env.production is imported as encrypted deploy environment. Explicit --env and --env-file values win, and local database URLs are replaced by the managed database.
- Databases Managed databases accept connections only from your own apps.
- Pricing The free plan fits one app plus one managed database. Destroying an app's server also removes any database provisioned automatically for its apps.

### Vercel-style projects deploy as-is

- Deploy Deploys read buildCommand and outputDirectory from vercel.json.
- Deploy A static site with JavaScript handlers in a root api/ folder is served with those handlers answering /api routes.

### Database advisor before deploys

- Databases Before deploying, the CLI checks for database needs (connection URLs, Prisma, Django, Rails and Laravel migrations, docker-compose services) and lists recommended actions.

### Deploy packaging fixes

- CLI Deploys no longer flag build output folders that the server's build step regenerates.
- Deploy Generated app hostnames are always valid DNS names.
- Deploy Fixed deploy upload regressions and cleanup when destroying a paused server.

### Windows install and packaging checks

- CLI The CLI installs and updates natively on Windows through a PowerShell installer.
- CLI `ample deploy` stops when ignored files may be needed in production, and suggests --include, --env-file or --ignore-packaging-candidate.
- Dashboard Sign-in and account claim links are sent by email.
