eve-bootstrap
Eve Bootstrap
One skill that handles everything from zero to a working Eve project. It detects whether you're already authenticated and adapts:
- Already authenticated → skips to project setup
- Not authenticated → creates profile, requests access, waits for admin approval, auto-logs in, then sets up project
Step 1: Check CLI
eve --version
If this fails, install the CLI first:
npm install -g @anthropic/eve-cli
Step 2: Create Profile
Check if a profile already exists:
eve profile list
If no staging profile exists, create one:
eve profile create staging --api-url https://api.eh1.incept5.dev
eve profile use staging
Step 3: Check Auth Status
eve auth status
This calls the API — not a local file check. Two outcomes:
Already authenticated → go to Step 5
If eve auth status shows you're logged in, skip ahead to Step 5: Project Setup.
Not authenticated → continue to Step 4
Step 4: Request Access (New Users Only)
Find an SSH public key to use:
ls ~/.ssh/*.pub
Default: ~/.ssh/id_ed25519.pub. If no key exists, generate one:
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519
Ask the user for:
- Org name — what they want to call their organisation
- Email — optional, for their user account
Submit the access request and wait for approval:
eve auth request-access \
--ssh-key ~/.ssh/id_ed25519.pub \
--org "My Company" \
--email user@example.com \
--wait
The --wait flag:
- Submits the request (unauthenticated)
- Prints the request ID (
areq_xxx) - Polls every 5 seconds until an admin approves or rejects
- On approval: auto-completes SSH challenge login
- Stores token in
~/.eve/credentials.json
Tell the user: "An admin needs to run eve admin access-requests approve <id> to approve your request."
Once approved, you're logged in with your own org (as admin).
Step 5: Project Setup
Set profile defaults if org/project IDs are known:
eve profile set --org <org_id> --project <proj_id>
If no project exists yet, ask the user for:
- Project name and slug (slug is immutable, keep it short)
- Repo URL (e.g.,
git@github.com:org/repo.git)
# Option A: Ensure project exists
eve project ensure --name "My App" --slug myapp \
--repo-url git@github.com:org/repo.git --branch main
# Option B: Bootstrap project + environments in one call
eve project bootstrap --name "My App" --repo-url git@github.com:org/repo.git \
--environments staging,production
URL impact: Slugs determine deployment URLs:
{service}.{orgSlug}-{projectSlug}-{env}.{domain}
Step 6: Manifest
If .eve/manifest.yaml doesn't exist, create a minimal one:
schema: eve/compose/v2
project: myapp
registry: "eve"
services:
web:
build:
context: .
dockerfile: Dockerfile
# image is optional; Eve derives it from the service name when managed registry is used
ports: [3000]
x-eve:
ingress:
public: true
port: 3000
environments:
staging:
pipeline: deploy
pipelines:
deploy:
steps:
- name: build
action: { type: build }
- name: release
depends_on: [build]
action: { type: release }
- name: deploy
depends_on: [release]
action: { type: deploy }
Use the eve-manifest-authoring skill for detailed manifest guidance.
Step 7: Learn the Platform
Read the Eve platform reference to understand all capabilities:
https://web.incept5-evshow-staging.eh1.incept5.dev/llms
This covers CLI commands, manifest syntax, agent harnesses, job lifecycle, and more.
Step 8: Verify
eve auth status
eve system health
eve project list
Summary
Print what was set up:
- Profile: name, API URL
- Auth: email, org name, org slug
- Project: name, slug, repo URL
- Next steps: sync manifest (
eve project sync), deploy (eve env deploy staging --ref main --repo-dir .)