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.2.tar.gz (29.2 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.2-py3-none-any.whl (36.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: care_install-0.1.2.tar.gz
  • Upload date:
  • Size: 29.2 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.2.tar.gz
Algorithm Hash digest
SHA256 30b6220fd6c6c6dbf007fdf3b074c7e26afd1bd8aa3ae369e9a8fe7ee591c391
MD5 5792bd41c8dd595626fe88550be58a47
BLAKE2b-256 d464ab13c3810d0f3818c81d4459460c9d0f55c865d2e013fae8bd3504cc1921

See more details on using hashes here.

File details

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

File metadata

  • Download URL: care_install-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 36.4 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7346bf09e789bb58b90659192da4a9331204b87392dbf3c2b25ca894ab08fd83
MD5 824ab8b8b6af6248adafb57a0bd1571e
BLAKE2b-256 a486e70394dddcee47c52a879d6641372dcbccc4d938122136818606bee75448

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