diff --git a/README.md b/README.md index 175fb73..80f7ea4 100644 --- a/README.md +++ b/README.md @@ -46,12 +46,30 @@ sleep consolidates 30-session windows into morning markdown reports. updates, agent regeneration, DNA index refresh, keimd graph reindex. Auto-self-indexing via kei-registry SQLite. -## By the numbers (v0.46) +## By the numbers (v0.47) 110 Rust crates · 69 skills · 54 hooks · 38 agent manifests · 86 substrate blocks · 18 capability atoms · 7 substrate roles · 565 indexed DNAs · 6 install profiles (minimal → full). +## Platforms + +- **macOS** (arm64 + x64) — fully supported, primary dev target. +- **Linux** (Ubuntu, Debian, Fedora, Arch — x64 + arm64) — fully supported. +- **Windows** — substrate itself is Bash-only, but the **MCP server binary** + ships as `kei-mcp-server-windows-x64.exe` in every release. Two + recommended paths: + - **WSL2** (recommended) — install Windows Subsystem for Linux, + then run `bootstrap.sh` inside Ubuntu/Debian as normal. Full + substrate works. + - **MCP-only** — drop `kei-mcp-server-windows-x64.exe` into your + Claude Desktop / VS Code MCP config to get `spawn_agent` + + `kei_bash`/`kei_edit`/`kei_write` tools, without the full + Bash-based substrate. Skills, hooks, and `kei` CLI not available + in this mode. + - Native PowerShell port: not on the roadmap (would double maintenance + surface; WSL gives 100% coverage with 0 duplication). + ## Maturity matrix The substrate ships as a layered set of components at different diff --git a/bin/kei b/bin/kei index 7bbaabe..6307ede 100755 --- a/bin/kei +++ b/bin/kei @@ -217,17 +217,30 @@ splash() { as="$(active_sessions)" # Only color if stdout is a tty. Brand palette: голубой (sky-blue) + жёлтый (gold). - local C0= C1= C2= C3= CV= + local C0= C1= C2= C3= CV= CS= GO_BACK= SHADOW_BLOCK= if [ -t 1 ]; then C0=$'\033[0m' C1=$'\033[1;38;5;39m' # голубой (sky-blue) — logo C2=$'\033[1;38;5;220m' # жёлтый (gold) — brand line C3=$'\033[2;38;5;39m' # dim blue — separators CV=$'\033[1;38;5;220m' # жёлтый — field values + CS=$'\033[1;38;5;130m' # благородная насыщенная жёлто-бронзовая тень + # v0.47 drop shadow: print shadow first (offset +2 cols right), + # then \e[7A returns cursor to start of art, blue letters overwrite + # shadow where they overlap. Visible shadow = right-edge tail + + # one full row below blue's bottom (offset +1 row down). + GO_BACK=$'\033[7A' + SHADOW_BLOCK=" +${CS} ██╗ ██╗███████╗██╗███████╗███████╗██╗${C0} +${CS} ██║ ██╔╝██╔════╝██║██╔════╝██╔════╝██║${C0} +${CS} █████╔╝ █████╗ ██║███████╗█████╗ ██║${C0} +${CS} ██╔═██╗ ██╔══╝ ██║╚════██║██╔══╝ ██║${C0} +${CS} ██║ ██╗███████╗██║███████║███████╗██║${C0} +${CS} ╚═╝ ╚═╝╚══════╝╚═╝╚══════╝╚══════╝╚═╝${C0}${GO_BACK}" fi cat <&2 + read -r _reply