Skip to main content

One-shot interactive bootstrap for a CARE development workspace.

Project description

care-install

One-line bootstrap for a CARE development workspace.

Clones every repo the CARE TUI depends on (care, gigaevo-platform, gigaevo-memory, gigaevo-client, carl-experiments, carl-mage) into a directory of your choice and checks out the branch each component is currently developed on.

Requirements

  • git in PATH
  • uv (handles Python + PyYAML automatically via the script's inline dependencies)

Quick start — interactive wizard

The fastest path to a working CARE setup is the wizard. It asks how each service should be provisioned (local docker stack vs. an already-running remote), collects the required .env values (MAGE provider + key + model, optional Tavily / Langfuse), clones whatever you picked "local", writes <workspace>/.env, and can bring the docker stacks up for you.

make wizard DIR=~/Development/care-workspace
# or:
uv run wizard.py

It probes uvx care and falls back to a local CARE clone if PyPI can't satisfy it. Re-run any time — every prompt defaults to whatever the previous run wrote to .env.

At the end the wizard offers to install a system-wide care command (a small shim symlinked into ~/.local/bin). Once it's on your PATH you can run care run from any directory — the shim cd's into the workspace so .env is loaded, and dispatches to either uvx care or the local clone depending on what you chose.

State the shim reads lives at ~/.config/care-install/state.

Manual usage

make prepare DIR=~/Development/care-workspace

Or call the script directly:

uv run prepare.py ~/Development/care-workspace

Re-running is idempotent: existing clones are fetched, switched to the configured branch, and fast-forwarded.

Every run finishes with a verification pass that checks each repo exists, is a git repo, sits on the configured branch, and points at the expected origin. The script exits non-zero if anything fails.

Run the check on its own at any time:

make verify DIR=~/Development/care-workspace
# or: uv run prepare.py ~/Development/care-workspace --verify-only

Override the config path with --config /path/to/repos.yaml.

Running services

care run talks to GigaEvo Memory (localhost:8000) and GigaEvo Platform (localhost:8001). Bring both stacks up locally with:

make up DIR=~/Development/care-workspace

This runs docker compose -f <file> up -d for every repo in repos.yaml that declares a compose entry. Stop, inspect, tail logs, or restart the same set:

make down DIR=~/Development/care-workspace
make ps   DIR=~/Development/care-workspace
make logs DIR=~/Development/care-workspace
make restart DIR=~/Development/care-workspace

Target a single repo with --only, or run in the foreground:

uv run services.py ~/Development/care-workspace up --only gigaevo-memory
uv run services.py ~/Development/care-workspace up --no-detach

Global c-* commands

For quick access from any directory, install the wrapper scripts in bin/ into ~/.local/bin (or another PATH dir):

make install-cli                 # symlinks bin/c-* into ~/.local/bin
make install-cli BIN=~/bin       # or a custom location

Make sure that directory is on PATH (e.g. export PATH="$HOME/.local/bin:$PATH" in ~/.zshrc). Set the workspace once:

export CARE_WORKSPACE=~/Development/care-workspace

Then from anywhere:

Command Effect
c-up bring up all docker stacks
c-down stop all docker stacks
c-ps status of all stacks
c-logs tail logs across all stacks
c-restart restart all stacks
c-mem-up GigaEvo Memory only — up
c-mem-down …down
c-mem-ps …status
c-mem-logs …logs
c-mem-restart …restart
c-plat-up GigaEvo Platform only — up
c-plat-down …down
c-plat-ps …status
c-plat-logs …logs
c-plat-restart …restart
c-mage print MAGE repo path + git status (MAGE is in-process, no docker)
c-ws print the resolved workspace path

All wrappers forward extra arguments to the underlying services.py / docker compose call:

c-mem-logs -f                      # follow logs
c-plat-up --no-detach              # foreground
c-dev mem up --only gigaevo-memory # explicit dispatcher form

Uninstall with make uninstall-cli (respects the same BIN= override).

Configuration

Origins and branches live in repos.yaml. Each entry:

- name: <local directory name>
  origin: <git remote url>
  branch: <branch to check out>
  compose:                      # optional
    - <path/to/docker-compose.yml relative to the repo root>

Edit the file to add a repo, pin a different branch, point at a fork, or change which compose files make up brings online.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

care_install-0.1.0.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

care_install-0.1.0-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file care_install-0.1.0.tar.gz.

File metadata

  • Download URL: care_install-0.1.0.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for care_install-0.1.0.tar.gz
Algorithm Hash digest
SHA256 febafce2e22b2290b6b33bc70abbe4d0f578a3aea97248dfe94ff4b8a058aa21
MD5 e89871ffb3f89a19b921e04cfbbf5237
BLAKE2b-256 a095f3562160451fcf3a2b431f7dde557b8d2edc4fa3659fac2d37e25191404c

See more details on using hashes here.

File details

Details for the file care_install-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: care_install-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for care_install-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9c92edb6c59e3f1087eda56d5b5a0775575dc569430a80de7e7c4244f618883a
MD5 5211b8af39f22e9fc6c30d53036a60c0
BLAKE2b-256 2f56bbd62b8d2952db6a3d4b996b40151101770adf7695c2556b266cea868a19

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page