Billing
Understanding Vibengine pricing and billing
Billing
Vibengine uses a simple, transparent pricing model based on sandbox usage time.
Pricing Model
Vibengine charges per second of sandbox running time. You only pay for the time a sandbox is actively running — from the moment it starts to the moment it is killed or times out.
| Plan | Included Hours | Price per Additional Hour |
|---|---|---|
| Free | 100 hours/month | — |
| Pro | 500 hours/month | $0.10/hour |
| Enterprise | Custom | Custom pricing |
Free Tier
Every Vibengine account includes 100 sandbox hours per month at no cost. This is enough for:
- Development and testing
- Small-scale production applications
- Evaluating the platform before committing
The free tier resets on the first day of each calendar month.
No credit card required. You can start using Vibengine immediately with the free tier. You will only be asked for payment information if you exceed the free allowance.
What Counts as Usage
Usage is measured as the wall-clock time a sandbox is running, rounded up to the nearest second.
| Counts as usage | Does NOT count as usage |
|---|---|
| Sandbox is running (idle or active) | Time before Sandbox.create() returns |
| Sandbox waiting for your next call | Time after sandbox.kill() completes |
| Sandbox running code | API calls to list/manage sandboxes |
| Sandbox with open file watchers | Template builds |
Idle sandboxes still count. A sandbox that is running but not executing any code is still billed. Always kill sandboxes when you are done with them.
Viewing Usage
Monitor your sandbox usage in real time:
- Go to the Vibengine Dashboard
- Navigate to Billing → Usage
- View usage breakdown by day, week, or month
- See per-sandbox usage for debugging high-consumption runs
Managing Your Plan
Upgrading
- Go to Settings → Billing in the dashboard
- Click Upgrade Plan
- Select your plan and enter payment details
- Changes take effect immediately
Downgrading
- Go to Settings → Billing
- Click Change Plan
- Select the lower tier
- The change takes effect at the start of the next billing cycle
Tips for Reducing Costs
1. Kill Sandboxes When Done
Always call sandbox.kill() when your work is complete. Do not rely solely on timeouts.
const sandbox = await Sandbox.create()
try {
const result = await sandbox.runCode("print(hello)")
console.log(result.stdout)
} finally {
await sandbox.kill() // Always clean up
}2. Set Reasonable Timeouts
Use the shortest timeout that makes sense for your use case. This prevents forgotten sandboxes from running indefinitely.
// Short timeout for quick code execution
const sandbox = await Sandbox.create({ timeoutMs: 30 * 1000 }) // 30 seconds
// Longer timeout for agent sessions
const agentSandbox = await Sandbox.create({ timeoutMs: 5 * 60 * 1000 }) // 5 minutes3. Use Custom Templates
Custom templates with pre-installed dependencies start faster, meaning less idle time waiting for package installations.
4. Reuse Sandboxes
For batch operations, reuse a single sandbox instead of creating a new one for each task.
const sandbox = await Sandbox.create()
for (const task of tasks) {
await sandbox.runCode(task.code) // Reuse the same sandbox
}
await sandbox.kill()5. Monitor and Set Alerts
Set up budget alerts in the dashboard to get notified before unexpected usage spikes become expensive.
Billing FAQ
When does billing start?
Billing starts the moment Sandbox.create() returns a running sandbox.
What happens if I exceed the free tier? Sandbox creation will fail with a quota error. Upgrade to a paid plan to continue.
Can I get a refund for unused time? Pre-paid plan hours do not roll over. Additional usage is billed at the per-hour rate.
Is there a maximum number of concurrent sandboxes? Free tier: 5 concurrent sandboxes. Pro: 50. Enterprise: custom limits.