Overview
The Hostwares AI Assistant is a context-aware DevOps agent that understands your entire infrastructure. It can deploy sites, configure domains, analyze logs, and troubleshoot issues - all through natural conversation.
Access it from Dashboard → AI Assistant or the chat sidebar on any dashboard page.
Key features
- Context-aware - Knows your sites, databases, domains, and their current status
- Action-capable - Can restart, deploy, configure, and diagnose in real-time
- Vision - Upload a screenshot of an error page, terminal, or dashboard and it reads it directly
- Cited answers - Root-cause explanations reference the actual log lines they're based on, not a paraphrase
- Autonomous on paid plans - Starter and above auto-execute most actions without a confirmation click; you can opt back into confirming everything (see below)
- Streaming - Responses stream in real-time for fast interaction
- Available 24/7 - No waiting for support tickets
How Credits Work
Billed only for what you use - no minimums. A request costs what it actually used, so a quick question or a status check is a fraction of a credit, and longer work costs more because it does more.
| Interaction type | How it is billed | Examples |
|---|---|---|
| Greeting / "who are you" | Free | "hi", "thanks" |
| Chat / advice - no tools used | Actual usage | "What does a 502 mean?", general questions |
| Read-only lookup | Actual usage | Listing sites, checking status, viewing logs, checking your balance |
| Task execution - anything mutating | Actual usage | "Restart my-site", "Deploy from GitHub", setting env vars, DNS/SSL changes |
A conversation that does several lookups AND one mutating action (e.g. reads logs, then restarts the site) is charged once for the whole turn - never per tool call. Heavier tasks (long log analysis, many tool calls) cost more because they use more.
Credit tips
- Credits are deducted once per full interaction, after the response is sent - not per tool call
- Failed requests (network errors) don't cost credits
- Billing and support messages are always free, even at 0 balance
- Every response includes the exact charge - check the
costfield via the API, or ask "how many credits did that use?"
Purchase credits from Dashboard → Credits.
Available Commands
The AI has access to these tools and can call them on your behalf:
Site Management
| Tool | Description | Example |
|---|---|---|
list_sites | List all your deployed sites | "Show my sites" |
get_site_status | Check health, uptime, resources | "What's the status of my-app?" |
restart_site | Restart a container | "Restart my-site" |
redeploy_site | Fresh deployment from source | "Redeploy my-app" |
start_site | Start a stopped container | "Start my-site" |
stop_site | Stop a running container | "Stop my-app" |
Domains & SSL
| Tool | Description | Example |
|---|---|---|
configure_domain | Add/update domain | "Add example.com to my-site" |
check_dns | Verify DNS records | "Check DNS for my-site" |
activate_ssl | Request SSL certificate | "Set up SSL for my-site" |
check_ssl_status | Certificate status | "Is my SSL active?" |
Debugging & Config
| Tool | Description | Example |
|---|---|---|
get_deployment_logs | Build/deploy logs | "Show deploy logs for my-app" |
get_runtime_logs | Application logs | "Show runtime logs for my-site" |
get_site_config | Current configuration | "Show config for my-app" |
update_env_vars | Set env variables | "Set API_KEY=abc on my-site" |
Screenshots & Vision
Attach an image (paste, drag-drop, or the file picker) instead of describing a problem in words. The AI reads it directly - this is the fastest way to report something visual.
- Error page screenshots - it identifies the framework error and correlates it with your logs
- Terminal/console output - it reads the error text straight off the image
- Dashboard or control-panel screenshots - it explains what's misconfigured
- DNS panel screenshots from another registrar - it tells you exactly what to change
- PDFs - Dockerfiles, config exports, architecture docs
Up to 5 images per message (PNG, JPEG, WebP, GIF). When the AI explains a root cause, it cites the specific log line it's based on rather than a paraphrase - click a citation to see the source.
Scheduled Jobs
A few recurring checks can be set up once, in conversation, and then run on a schedule after that. These are the only things HW does without you asking each time - everything else is on-demand.
- "Show my database's restore points" - lists them and can request a restore into a separate copy
- "Email me if my SSL is expiring" - sends a notification as your certificate approaches expiry (does not auto-renew)
- "Send me a monthly cost report" - an email breaking down what you were charged and what changed, month over month
These are opt-in and scoped to notify-or-single-action - HW never decides on its own to watch a resource and act on it.
What It Can Do
- Deploy sites from GitHub repos or Docker images
- Configure custom domains and DNS
- Set up and manage SSL certificates
- Start, stop, restart, redeploy containers
- Set and manage environment variables
- Read and analyze deployment and runtime logs
- Diagnose build failures and suggest fixes
- Run commands and read/write files inside your deployed containers - on the web, not just the CLI
- Check DNS propagation and SSL status
- Explain error messages and provide solutions
- Guide you through complex multi-step operations
What It Cannot Do
The AI assistant is scoped to hosting and DevOps tasks. It will politely decline:
- Writing application code
- General programming help
- Non-hosting questions
- Accessing other users' resources
- Modifying billing/subscription settings
- Bypassing security restrictions
Safety Rules
The AI follows strict safety protocols to protect your infrastructure:
- Deletion always requires confirmation - this is the one action that always asks, on every plan, with no opt-out
- Scoped access - Can only access YOUR sites and databases
- No credential exposure - Never reveals secrets, passwords, or server IPs
- Rate limited - messages per minute are capped based on your AI plan (higher on paid tiers) to prevent abuse; you'll get a clear "slow down" message if you hit it, and your message is preserved so you don't lose it
- Abuse detection - Refuses crypto mining, phishing, malware, or ToS-violating deployments
- Audit trail - Every AI action is logged with timestamp and user ID
Confirmation & Autonomy
Other than deletion, whether an action runs immediately or waits for your confirmation depends on your plan and your preference:
- Free tier - every mutating action (restart, deploy, env vars, DNS, SSL, scaling, etc.) asks for confirmation first
- Starter, Pro, PAYG, Business - these actions auto-execute by default, so a multi-step request completes in one turn without you clicking through each step
- Your preference overrides the default - set "always confirm everything" in Dashboard → AI Assistant Settings to review every action regardless of plan, even on Business. You can't go the other way: a free account can't opt into autonomy it isn't entitled to.
Whichever mode you're in, deleting a resource always stops and asks - that check can't be turned off by any plan or preference.
Best Practices
Be specific
✓ "Restart my-app"
✗ "Restart it"
✓ "Show runtime logs for production-api"
✗ "Show logs"
✓ "Add domain api.example.com to my-backend"
✗ "Add a domain"Provide context
✓ "My Next.js site fails to build with a TypeScript error"
✓ "I added a new domain but it's not resolving after 1 hour"
✓ "My site shows 502 errors since the last deploy"Use follow-up questions
Stay in the same conversation for context-aware follow-ups (each message is billed only for what it uses):
You: "Why did my last deploy fail?"
AI: [analyzes logs, explains the error]
You: "Fix it and redeploy"
AI: [takes corrective action]Conversation History
All conversations are saved for 30 days. Access them from the chat sidebar.
- Each conversation has a unique ID visible in the URL
- Conversations maintain context across messages
- Previous conversations can be continued
- Delete conversations from the sidebar menu
- The last 30 messages are kept as active working context; older messages are summarized rather than dropped, so long-running conversations don't lose the plot
Example Conversations
Deploy a new site
You: "Deploy my app from github.com/user/my-nextjs-app"
AI: "I'll deploy that for you. Detected: Next.js app
Branch: main | Build: npm run build | Port: 3000
✓ Deployment started. I'll let you know when it's live.
[2 minutes later]
✓ Your site is live! Accessible at: https://app-id.hostwares.app"Troubleshoot a failure
You: "Why did my last deployment fail?"
AI: "Let me check the deployment logs...
Found the issue: Your build failed at 'npm run build' with:
Error: Cannot find module '@prisma/client'
Fix: Add 'prisma generate' to your build command:
"build": "prisma generate && next build"
Want me to update the build command and redeploy?"
You: "Yes please"
AI: "✓ Build command updated. ✓ Redeployment triggered."Set up a custom domain
You: "Add domain myapp.com to my production site and set up SSL"
AI: "I'll configure that. Here's what you need to do:
1. Add this DNS record at your registrar:
Type: A | Name: @ | Value: 116.203.147.185
2. For www redirect, add:
Type: CNAME | Name: www | Value: myapp.com
Once DNS propagates (5-30 min), I'll automatically:
✓ Verify the domain
✓ Issue an SSL certificate via Let's Encrypt
✓ Enable HTTPS with HTTP redirect
Say 'check DNS for myapp.com' when you've added the records."