Colors packages OpenTofu and Ansible into reproducible deployments you can inspect before they run. Your infrastructure stays in your cloud account, and your credentials stay local.
npx skills add getcolors/onceprofile: once-colors
workdir: .colors
once:
applications:
- host: www.getcolors.ai
image: ghcr.io/getcolors/colors-website:latest
github: getcolors/colors-website
provider-compute: oci
provider-smtp: resend
provider-dns: cloudflare
provider-backend: r2
compute-prevent-destroy: trueThe configuration shown above is not a mock-up: it deploys this website with the Once Package Skill, an implementation of Basecamp’s production single-server ONCE workflow. Starting with an OCI account and a domain, it creates the server and connects every layer needed to serve the application.
There is no Colors dashboard or long-running Colors control plane on the server. Once the workflow finishes, the VPS and provider resources remain yours.
Every deployment uses the same explicit lifecycle. The first two commands are safe on a fresh checkout with no provider credentials.
./green buildValidate colors.yml and generate the OpenTofu, Ansible, and supporting files under .colors/.
./green create --dry-runTraverse the deployment graph while skipping every provider call and remote side effect.
./green createConverge the declared infrastructure, configure the hosts, and run the package’s acceptance checks.
You can. Colors is useful when you want a tested, opinionated path through them rather than assembling and maintaining every layer yourself.
Inputs are validated, generated infrastructure is inspectable, repeated runs converge, and deletion follows an explicit guarded graph.
A Package Skill bundles provider resources, host configuration, credential boundaries, ordering, and acceptance checks behind one lifecycle.
Colors provisions the infrastructure and exits. It can deploy a personal PaaS such as Once; it does not manage applications through a web dashboard.
build renders the files locally before create is allowed to contact a provider or host.
Credentials arrive through local COLORS_PAR_* environment variables and are not rendered into generated files.
A coding agent can install and operate a Package Skill, but the launcher itself is ordinary deterministic code and makes no LLM calls.
If you want a dashboard for an existing homelab, or already prefer maintaining all your IaC directly, Colors may add no value.
Colors is an SDK made of three interchangeable libraries for building Package Skills. Pick the runtime your team already uses — the guarantees don't change: dry-run boundaries, secret indirection, identical desired-state semantics.
A Package Skill provisions infrastructure; a Context Skill remembers what a verified build learned. Each kind can be created with your agent, and each can be submitted to the Skills Catalog — four workflows that pair up into a matrix.
Build a new Package Skill and a deployment that uses it.
Distill a completed, verified build into routed knowledge.
Validate an existing Package Skill and add its recipe to the Catalog.
Validate against the Context Skill Standard and add its recipe.
Create Package Skill gives a coding agent the workflow for building a new Colors Package Skill and a deployment that uses it — from requirements and credential boundaries through implementation, safe dry runs, and an authorized production deployment.
npx skills add getcolors/skills@create-package-skillAgree on names, behavior, acceptance criteria, deployment target, credentials, cost, and authorization before touching files.
Create only non-secret desired state and credential placeholders, then stop for review. Secrets never enter chat or tracked files.
Implement autonomously, test every layer, use real SHA pins, preserve safety guards, and deploy only within explicit authorization.
Submit Package Skill gives a coding agent the workflow for validating an existing Colors Package Skill, adding its catalog recipe, and opening an authorized pull request for curated discovery on getcolors.ai.
npx skills add getcolors/skills@submit-package-skillInspect every SKILL.md and verify the Colors runtime, desired state, dry-run boundary, credential indirection, and lifecycle DAGs.
Create one validated recipe for the product, grouping interchangeable runtime variants and infrastructure-oriented search keywords.
Run catalog validation and the site build, then create a branch, commit, push, fork, or pull request only with explicit authorization.
Create Context Skill gives a coding agent the workflow for distilling a completed, verified build into a Context Skill conforming to the Context Skill Standard — symptom-first routing, provenance-labelled claims, pinned versions, a failure catalogue, and evals, with no copies of the companion package's files.
npx skills add getcolors/skills@create-context-skillCollect verbatim failures, review dispositions, deviations from documentation, and the exact pinned versions while the build's session still holds them.
Write the why into the body and the reference material into references, keep every claim provenance-labelled, and copy no file the companion package owns.
Write user-in-trouble evals, pass skills-ref validate, and stop: committing, pushing, and the catalog pull request each need explicit authorization.
Submit Context Skill gives a coding agent the workflow for validating a Context Skill — knowledge distilled from a verified build — against the Context Skill Standard, adding its catalog recipe, and opening an authorized pull request for curated discovery on getcolors.ai.
npx skills add getcolors/skills@submit-context-skillRead the skill and its references, run skills-ref validate, and verify symptom routing, provenance, pins, the failure catalogue, and evals.
Create one type: context recipe naming the skill's repository, symptom-oriented search keywords, and the companion Package Skill it documents.
Run catalog validation and the site build, then create a branch, commit, push, fork, or pull request only with explicit authorization.
Browse the PR-curated Skills Catalog by platform, provider, or runtime.
View the Catalog