eve-new-project-setup
Eve New Project Setup
Use this after a developer has run eve init and needs to configure the project for Eve Horizon.
Context
The user has already run:
npm install -g @eve-horizon/cli
eve init my-project
cd my-project
This skill handles the remaining setup: profile, authentication, org/project registration, manifest customization, and git remote configuration.
Step 1: Verify CLI
eve --version
If this fails, the CLI wasn't installed. Have them run:
npm install -g @eve-horizon/cli
Step 2: Profile Setup
Create a profile for the staging environment:
eve profile create staging --api-url https://api.eh1.incept5.dev
eve profile use staging
Ask the user for their email and set defaults:
eve profile set --default-email user@example.com
Step 3: Authentication
Check current auth status:
eve auth status
If not authenticated, log in:
eve auth login
The CLI will guide them through SSH key discovery (can fetch from GitHub if needed).
We'll set harness credentials after project creation.
Step 4: Org + Project
Ask the user for:
- Organization name (e.g., "my-company")
- Project name (e.g., "My App")
- Project slug (e.g., "my-app")
- Repo URL (e.g., "git@github.com:me/my-app.git")
Create or ensure they exist:
eve org ensure my-company --slug myco
eve project ensure --name "My App" --slug my-app --repo-url git@github.com:me/my-app.git --branch main
URL impact: The org and project slugs directly form deployment URLs and K8s namespaces:
- URL:
{service}.{orgSlug}-{projectSlug}-{env}.{domain}(e.g.,api.myco-my-app-staging.eh1.incept5.dev) - Namespace:
eve-{orgSlug}-{projectSlug}-{env}(e.g.,eve-myco-my-app-staging) ${ORG_SLUG}is available for interpolation in manifest values
Slugs are immutable — choose short, meaningful values.
Set as defaults in the profile:
eve profile set --org org_xxx --project proj_xxx
Step 5: Choose Harness + Set API Keys
Ask which harness they want to target (can be more than one):
- mclaude / claude (Anthropic)
- code / codex (OpenAI)
- zai (Z.ai)
- gemini (Google)
Map harnesses to required secrets:
- mclaude/claude:
ANTHROPIC_API_KEY(preferred) or Claude OAuth viaeve auth sync - code/codex:
OPENAI_API_KEY(preferred) orCODEX_AUTH_JSON_B64 - zai:
Z_AI_API_KEY - gemini:
GEMINI_API_KEY(orGOOGLE_API_KEY)
Decide where to store secrets:
- Org (recommended) for shared keys across projects
- Project for app-specific keys
- User for personal keys
Use a secrets file for batch setup (starter repo includes secrets.env.example):
cp secrets.env.example secrets.env
eve secrets import --org org_xxx --file ./secrets.env
For Claude/Codex OAuth tokens on the host:
# Store OAuth tokens in the project scope (or add --system if admin)
eve auth sync --project proj_xxx
Step 6: Manifest Configuration
The starter template includes .eve/manifest.yaml. Update it with the project details:
schema: eve/compose/v2
project: my-app
services:
api:
build:
context: apps/api
ports: [3000]
x-eve:
ingress:
public: true
port: 3000
environments:
staging:
pipeline: deploy
pipelines:
deploy:
steps:
- name: deploy
action: { type: deploy }
Key fields to customize:
project: Match the project slugservices: Define your app's servicesx-eve.ingress: Configure public access
Step 7: Git Remote
The project starts with no remote. Help set one up:
git remote -v
git remote add origin git@github.com:user/my-app.git
git push -u origin main
Step 8: Verification
Run these checks to confirm setup:
eve system health
eve auth status
eve profile show
Next Steps
After setup is complete, suggest:
- Run locally:
docker compose up --build - Set secrets:
eve secrets set MY_KEY "value"oreve secrets import --file ./secrets.env - Deploy to staging:
eve env deploy staging --ref main --repo-dir . - Create a job:
eve job create --prompt "Review the codebase"
Note: If the environment has a pipeline configured in the manifest, eve env deploy <env> --ref <sha> will trigger that pipeline. Use --direct to bypass the pipeline and do a direct deploy. --ref must be a 40-character SHA, or a ref resolved against --repo-dir/cwd.
Troubleshooting
"eve: command not found"
npm install -g @eve-horizon/cli
"Not authenticated"
eve auth login
"No profile"
eve profile create staging --api-url https://api.eh1.incept5.dev