myco 0.2.0

Multi-host coding agent CLI (local in-process + SSH remotes)
# `myco`

[![Crates.io](https://img.shields.io/crates/v/myco.svg)](https://crates.io/crates/myco)
[![CI](https://github.com/tsnl/myco/actions/workflows/ci.yml/badge.svg)](https://github.com/tsnl/myco/actions/workflows/ci.yml)

A minimalist coding agent that works across your machines over SSH.

Run `myco` on your laptop. It edits files, runs shells, and searches code on
the local machine **and** on every concrete `Host` alias in your
`~/.ssh/config` — one session, many hosts, no setup beyond SSH itself.

## Why use it?

- **One agent, many machines.** Point tools at `local` or any `Host` alias from
  your ssh config (`devbox`, GPU box, CI host). Remotes attach over SSH on
  demand; you stay in a single conversation.
- **Real computer use.** Bash (including multi-turn sessions), a surgical file
  editor, text-mode browsing, and indexed search (keyword + semantic) on each host.
- **Sessions you can resume.** Titles, scratchpads, PR/worktree links, and full
  conversation history live under `~/.myco/` — pick up later with `/resume`.
- **Sub-agents for long work.** Spin off focused agents so the main thread stays
  small and cheap.
- **Skills and project guidance stay searchable.** Hosts auto-index skill packs
  and `AGENTS.md` / `CLAUDE.md` so the agent can find how _you_ work.
- **Coming later:** multiplayer (multiple humans in the same agent workspace).

## Install

```bash
cargo install myco
```

Needs stable Rust, network on the first build (`build.rs` bakes MiniLM
embedding weights into the binary via `hf-hub`), and `ssh`, `lynx`, `uv`,
`bash` on `PATH` (`git`, `gh`, `curl` recommended).

## Use

```bash
myco    # default model: grok-4.5-build; pass --model <id> for Claude models
```

Set API credentials for your backend first (Anthropic Messages or xAI / OpenAI
Responses; read from the process environment, and a `.env` in the cwd is also
loaded). The exact variables are documented in the
[overview article](src/manual/articles/overview.md) — also available as
`myco --help overview` once installed. Set a default model with
`model = "<id>"` in `~/.myco/config.toml` (`--model` wins). Transcript
sections are colored when stdout is a TTY (`--color auto|always|never`;
`NO_COLOR` / `CLICOLOR_FORCE` honored).

Remotes just work: myco attaches lazily with `ssh <alias> myco --mode host`,
so a remote only needs your key in `ssh-agent` and `myco` on the PATH used by
non-interactive SSH. Runtime details: `myco --help overview`.

## Develop

```bash
cargo test --locked --lib
cargo run --locked --bin myco
bash scripts/install-pre-commit-hooks.sh   # optional: CI bar (fmt + clippy) pre-commit
```

Semantic search embeds **all-MiniLM-L6-v2** at compile time: `build.rs`
downloads into the shared Hugging Face cache and bakes the weights into the
binary — nothing large is in git. Offline seed:
`bash scripts/seed-minilm-weights.sh` or `MYCO_EMBED_CACHE`.