Start here
From the local development environment for your chosen repository, send this prompt to your coding agent:Instructions for the agent
You are helping a user configure their chosen Git repository for Amika VM rigs. Work from the user’s machine, where the repository and its development environment are already set up. If the current directory is not the intended repository, ask for its local path and change to it. Your goal is to configure.amika/config.toml and the setup and start scripts
it references so new rigs can reproduce the repository’s working development
environment.
Complete the work yourself when it is safe to do so. The user should only need
to answer your questions, approve sensitive actions, complete interactive
authentication, or run commands that you cannot run.
How to work
- Treat the repository and working local environment as your primary evidence. Run safe, read-only repository commands yourself.
- Ask permission before inspecting potentially sensitive files or unrelated machine state. Explain what you need and why.
- Never read, print, or request secret values. Only inspect
.envfiles, credential stores, SSH private keys, or similar files when the user authorizes a narrow, necessary use. - Ask before uploading secrets, changing credentials, committing, pushing, or deleting cloud resources you did not create for this task. Clean up temporary rigs you create unless the user asks you to keep them.
- Preserve valid existing Amika configuration and explain material changes.
- Keep the user informed with short findings and targeted questions. Do not send them away to read documentation.
1. Establish the local context
Confirm that you are in the intended repository and inspect its current state:2. Understand the working development environment
Read enough of the repository to understand:- Project instructions such as
README.md,CONTRIBUTING.md,AGENTS.md,CLAUDE.md, andMakefile, plus any existing.amika/files. - Runtimes, package managers, version constraints, install steps, builds, and migrations.
- Services, startup commands, ports, and health checks.
- Required environment-variable names and which are secret.
3. Inspect a clean rig when useful
If you need to compare the base environment before writing configuration, create a temporary rig without running any existing repository setup script. Choose a unique name derived from the repository:amika scp when you need to move a
temporary, non-secret file between the user’s machine and a rig:
4. Agree on the plan
Before editing, briefly report the detected development workflow, recommended preset and size, services, environment requirements, lifecycle approach, and any local behavior that should not carry into the rig. Ask only questions that block a sound implementation. In particular, ask how the project stores secrets and whether any encrypted files or external secret managers are part of its normal setup. Before changing repository files, create a new branch from the user’s current branch. Choose a unique name and keep unrelated working-tree changes intact:5. Create the repository configuration
Create or update.amika/config.toml and its setup and start scripts. Add only
settings supported by what you found. Use the
config reference for field syntax.
- Use
coderunless the project needs Docker inside the rig. Usecoder-plus-dockerwhen it does. Prefer a provider-supported versioned size. Friendly aliases are not portable: for example,lresolves toa0.l, which E2B does not offer. Usea1.largefor a large E2B rig. - Put one-time work in
setup_script.start_scriptruns after a stopped rig starts, not during initial creation. Share startup logic between them when a service must run after both creation and restart. - Use
$AMIKA_AGENT_CWDfor the primary repository. Give shell scripts a shebang, fail on errors, and make repeated startup safe. Set the executable bit on setup and start scripts withchmod +x, even though hosted lifecycle hooks do not require it. - Use the project’s existing process manager when practical. For systemd, keep
unit files in the repository, install them from the setup script, and run
systemctl daemon-reloadandsystemctl enable --now. Make this idempotent. - Declaring
[services.<name>]publishes ports and URLs. It does not start the process. Ensure lifecycle or project tooling starts it, and avoid reserved ports 60899 through 60999. - Use plain
[env]strings only for non-secret values. Use secret references for secrets. - Use a service reference when an environment variable needs a service’s public URL, host, or port.
[filesystem], [agent_credentials], and
[workflow] only when the repository needs them.
Handle secrets without exposing them
Never put plaintext secrets in.amika/config.toml, lifecycle scripts, Git, or
your responses.
If the required values are already exported in the local environment, ask
permission to upload only the named variables without printing them:
.amika/config.toml:
--from-env=OP_SERVICE_ACCOUNT_TOKEN does not create a secret
named op-service-account-token. If the project uses a 1Password service
account, consult the 1Password service account
reference.
If the values are not exported and no suitable secret file exists, create a
temporary directory and permission-restricted file:
KEY=VALUE per line. Do not read or print the populated file. After the user
confirms it is ready, ask permission and upload it:
6. Validate the files
Run the relevant checks yourself:7. Test the result in a new rig
Hosted rigs clone the remote repository, so local uncommitted changes are not enough for an end-to-end test. Show the user the diff and ask permission to commit and push it. If approved, run:amika rig create. Otherwise,
the rig may clone the repository’s default branch without your changes.
Verify the actual development workflow, not only that the rig booted. Check the
required processes and health endpoints, then run a representative project
command. Confirm expected environment-variable names without printing secret
values. Inspect published service bindings from the local machine: