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.

TL;DR — run from anywhere with uvx

If you have uv installed, you don't need to clone this repo at all. Run:

uvx care-install

That fetches the latest care-install from PyPI into an isolated, cached environment and launches the interactive wizard. The wizard asks where to put the workspace, how each backing service should be provisioned (local docker stack vs. already-running remote), collects your MAGE provider / key / model, clones whatever you picked "local", writes <workspace>/.env, and can bring the docker stacks up for you.

Re-run uvx care-install any time — every prompt defaults to whatever the previous run wrote, so it doubles as a config editor. To force a fresh download of the latest release, add --refresh:

uvx --refresh care-install

To pin a specific version:

uvx --from 'care-install==0.1.1' care-install

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.1.tar.gz (29.0 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.1-py3-none-any.whl (36.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: care_install-0.1.1.tar.gz
  • Upload date:
  • Size: 29.0 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.1.tar.gz
Algorithm Hash digest
SHA256 056629490737edf7ae761b50ee330ef0c7e5527030cea2379a54752a3c2f03ff
MD5 7089cbc906c36b54ce80ea386a9fefc4
BLAKE2b-256 3755719d57488f8887e3406625754cbd012b9b2a8a641556f071b3f65bd4c350

See more details on using hashes here.

File details

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

File metadata

  • Download URL: care_install-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 36.2 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1c341899ec7753892d41af69e37b708c6889998faa9eb8633a59634e4f5b51ff
MD5 17179489fc46f9b8b1de450360845303
BLAKE2b-256 90302c14f2451c7f800af2404e49404c5e5a36e0a6ac61ac3d0c5282ade5c65c

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