Documentation
Artemis lets you build mobile apps and websites by describing them in natural language. It uses AI to generate code, sets up a live preview, and deploys to your phone from a chat interface.
Installation
Install Artemis on your machine with a single command:
curl -fsSL https://artemis-app.live/install.sh | bash
Prerequisites
- Node.js 18+
- Git for version control
- An Anthropic API key (Claude)
What the installer does
- Checks your system for prerequisites
- Installs the Artemis server
- Sets up the backend (app scaffolding, server management)
- Generates a secure auth token
- Optionally sets up a Cloudflare tunnel for remote access
- Prints connection details for the Artemis mobile app
Manual Setup
# Install the Artemis server
cd server && npm install
# Start the server
ANTHROPIC_API_KEY=sk-ant-... node bin/cli.js --port 18789
# Or with all options
artemis-server \
--api-key sk-ant-... \
--port 18789 \
--auth-token your-secret-token \
--apps-dir ~/artemis-apps
Quick Start
- Install the Artemis app on your phone
- Open the app and sign in
- Choose "Self Hosted" and enter your server URL and token
- Tap "New App" and describe what you want to build
- Watch the AI build your app in real-time
- Open the preview link on your phone
Project Files
Artemis uses .artemis.json files to define project configuration. Place this at the root of any project to make it importable.
Schema
{
"name": "My App",
"slug": "my-app",
"type": "expo | website | node",
"version": "1.0.0",
"description": "A brief description",
"deployment": {
"platform": "artemis-cloud | self-hosted",
"url": "https://...",
"env": { "API_KEY": "..." }
},
"git": {
"remote": "https://github.com/user/repo",
"branch": "main",
"autoSync": true
},
"codebase": {
"entry": "App.js",
"srcDir": "src/",
"buildCmd": "npm run build",
"startCmd": "npm start",
"testCmd": "npm test"
},
"artemis": {
"model": "claude-sonnet-4-20250514",
"agentInstructions": "Custom AI instructions...",
"context": ["README.md", "ARCHITECTURE.md"]
}
}
Fields
| Field | Type | Description |
|---|---|---|
name | string | Display name |
slug | string | URL-safe identifier |
type | enum | expo, website, or node |
deployment | object | Deployment config |
git | object | Git repository settings |
codebase | object | Build/start/test commands |
artemis | object | AI agent configuration |
Self-Hosting Guide
Running Artemis on your own machine gives you full control over your data and infrastructure.
Requirements
- CPU: 2+ cores recommended
- RAM: 4GB minimum (each app uses ~200-400MB)
- Disk: 10GB+ for app storage
- Network: Stable internet for AI API calls
Remote Access
To access your Artemis instance from your phone, set up a tunnel:
# Using Cloudflare Tunnel (recommended)
cloudflared tunnel --url http://localhost:18789
# The tunnel URL is your server URL in the app
Environment Variables
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY | Your Anthropic API key |
ARTEMIS_AUTH_TOKEN | Auth token for client connections |
ARTEMIS_APPS_DIR | Directory for built apps (default: ~/artemis-apps) |
ARTEMIS_PORT | Server port (default: 18789) |
ARTEMIS_MODEL | Claude model (default: claude-sonnet-4-20250514) |
Collaboration
Share your apps with others by inviting collaborators.
Cloud-Hosted
Use the built-in invite system. Share a link and collaborators get instant access.
Self-Hosted
Push your app to a Git repo and share the URL. Collaborators import it via the project import feature.
Architecture
Artemis is a multi-layer system connecting your phone to an AI-powered development environment.
Artemis App
Cloudflare
Artemis
Claude
Expo / Vite
Data Flow
- You describe an app in the Artemis mobile app
- The message travels via WebSocket through a tunnel to the Artemis server
- The server runs a Claude agent with tool access (file I/O, shell commands)
- The agent scaffolds the app, writes code, and starts a dev server
- A tunnel URL is returned for live preview on your phone
Components
| Component | Port | Description |
|---|---|---|
| Artemis Server | 18789 | WebSocket server, AI agent, session management |
| Artemis Manager | 3100 | App lifecycle API (create, start, stop, delete) |
| Expo Dev Servers | 8085-8099 | Live preview servers for mobile apps |
| Vite Dev Servers | 3001-3020 | Live preview servers for websites |
Manager API
The Artemis Manager runs on port 3100 and provides a REST API for app lifecycle management.
/healthHealth check
/appsList all apps with status
/appsCreate a new app. Body: {"name":"my-app","type":"expo"}
/apps/:slugGet app status
/apps/:slug/startStart an app, returns tunnel URL
/apps/:slug/stopStop a running app
/apps/:slugDelete an app
Configuration
The Artemis server accepts configuration via CLI flags or environment variables.
# Start with all options
artemis-server \
--port 18789 \
--api-key sk-ant-... \
--auth-token your-secret-token \
--apps-dir ~/artemis-apps \
--model claude-sonnet-4-20250514
Custom Agent Instructions
Place an ARTEMIS_AGENT.md file in your apps directory to customize the AI agent's behavior. The server loads it automatically on startup.
FAQ
What can I build?
Mobile apps (via Expo/React Native) and websites (via Vite/React). Anything from simple calculators to complex multi-screen apps with APIs, maps, cameras, and more.
Do I need coding experience?
No. Describe what you want in plain English. The AI handles the code. But if you do code, you can drop in your own and use Artemis as an accelerator.
Can I export my code?
Yes. Every app is a standard Expo or Vite project. Download, modify, and deploy it anywhere.
How much does the AI cost?
Cloud-hosted: included in your plan. Self-hosted: you pay Anthropic directly (typically $0.01-0.10 per app build).
Can I publish to the App Store?
Yes. Artemis generates standard Expo projects that can be built with EAS Build and submitted to the App Store or Google Play.
Troubleshooting
App build stalls
Check that your exec timeout is high enough (default 180s). Long builds need time for npm installs and Expo tunnel setup.
Can't connect from phone
Make sure your tunnel is running (cloudflared tunnel --url http://localhost:18789) and the URL in the app matches exactly.
Metro bundler stuck at 46%
If using Docker, bind mounts can cause I/O issues. Use bare processes instead.