# `myco`
[](https://crates.io/crates/myco)
[](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`.