Overview
Reminix Cloud provides fully managed hosting for your agents. Push to GitHub, and Reminix Cloud handles the rest - building, deploying, scaling, and monitoring.
Deployment Options
Reminix offers two ways to deploy your agents:
| Feature | Reminix Cloud | Self-Hosting |
|---|
| Setup | Push to GitHub | Deploy anywhere |
| Infrastructure | Fully managed | You manage |
| Scaling | Automatic | Manual |
| Monitoring | Built-in dashboard | Your own tools |
| Cost | Usage-based | Infrastructure costs |
| Best for | Fast deployment, zero DevOps | Full control, compliance needs |
Both options use the same open source Reminix Runtime, so you can switch between them anytime. No vendor lock-in.
Deploy to Reminix Cloud
1. Create a Project
- Go to the Reminix Dashboard
- Click New Project
- Select Import from GitHub
- Authorize and select your repository
2. Project Structure
Your repository should include:
# main.py
from reminix_runtime import agent, serve, Message
import os
@agent
async def my_agent(prompt: str) -> str:
"""My production agent."""
return f"Hello from Reminix: {prompt}"
@agent(template="chat")
async def assistant(messages: list[Message]) -> str:
"""A chat assistant."""
return "Hello!"
if __name__ == "__main__":
port = int(os.environ.get("PORT", 8080))
serve(agents=[my_agent, assistant], port=port)
# pyproject.toml
[project]
name = "my-agent"
requires-python = ">=3.10"
dependencies = [
"reminix-runtime",
]
// src/index.ts
import { agent, serve } from '@reminix/runtime';
const myAgent = agent('my-agent', {
description: 'My production agent',
handler: async ({ prompt }) => `Hello from Reminix: ${prompt}`
});
const assistant = agent('assistant', {
template: 'chat',
description: 'A chat assistant',
handler: async () => 'Hello!'
});
const port = parseInt(process.env.PORT || '8080');
serve({ agents: [myAgent, assistant], port });
{
"name": "my-agent",
"type": "module",
"scripts": {
"build": "tsc",
"start": "node dist/index.js"
},
"dependencies": {
"@reminix/runtime": "latest"
}
}
Reminix auto-detects your entrypoint, package manager, and build step. See Project Configuration for details.
3. Deploy
Push to your repository - Reminix Cloud automatically builds and deploys:
git add .
git commit -m "Update agent"
git push
Every push to your main branch triggers a new deployment.
Secrets
Set secrets in the dashboard under Project Settings → Secrets. They’re available as environment variables in your agent.
Common secrets:
OPENAI_API_KEY
ANTHROPIC_API_KEY
DATABASE_URL
import os
api_key = os.environ.get("OPENAI_API_KEY")
const apiKey = process.env.OPENAI_API_KEY;
Never commit secrets to your repository. Always use the Secrets dashboard.
Monitoring
The dashboard provides:
- Deployment status: Build logs and deployment history
- Logs: Real-time and historical logs
- Metrics: Request count, response times, error rates
Health Checks
Reminix Cloud automatically monitors your agent using the /health endpoint exposed by the runtime. Failed instances are automatically restarted.
Multiple Agents
You can serve multiple agents from a single project:
from reminix_runtime import agent, serve
@agent
async def summarizer(text: str) -> str:
"""Summarize text."""
return f"Summary: {text[:100]}..."
@agent
async def translator(text: str, target: str = "es") -> str:
"""Translate text."""
return f"Translated: {text}"
serve(agents=[summarizer, translator], port=8080)
import { agent, serve } from '@reminix/runtime';
const summarizer = agent('summarizer', {
description: 'Summarize text',
handler: async ({ text }) => `Summary: ${(text as string).slice(0, 100)}...`
});
const translator = agent('translator', {
description: 'Translate text',
handler: async ({ text, target }) => `Translated: ${text}`
});
serve({ agents: [summarizer, translator], port: 8080 });
Call specific agents by name:
client.agents.invoke("summarizer", text="...")
client.agents.invoke("translator", text="...", target="es")
Connecting to Your Agent
Once deployed, use the SDK to interact with your agent:
from reminix import Reminix
client = Reminix() # Uses REMINIX_API_KEY from environment
response = client.agents.invoke("my-agent", prompt="Hello!")
print(response["content"])
import Reminix from '@reminix/sdk';
const client = new Reminix(); // Uses REMINIX_API_KEY from environment
const response = await client.agents.invoke('my-agent', {
prompt: 'Hello!'
});
console.log(response.content);
Next Steps