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
gitinPATHuv(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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
febafce2e22b2290b6b33bc70abbe4d0f578a3aea97248dfe94ff4b8a058aa21
|
|
| MD5 |
e89871ffb3f89a19b921e04cfbbf5237
|
|
| BLAKE2b-256 |
a095f3562160451fcf3a2b431f7dde557b8d2edc4fa3659fac2d37e25191404c
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c92edb6c59e3f1087eda56d5b5a0775575dc569430a80de7e7c4244f618883a
|
|
| MD5 |
5211b8af39f22e9fc6c30d53036a60c0
|
|
| BLAKE2b-256 |
2f56bbd62b8d2952db6a3d4b996b40151101770adf7695c2556b266cea868a19
|