README.md

 1# Shelley: a coding agent for exe.dev
 2
 3Shelley is a mobile-friendly, web-based, multi-conversation, multi-modal,
 4multi-model, single-user coding agent built for but not exclusive to
 5[exe.dev](https://exe.dev/). It does not come with authorization or sandboxing:
 6bring your own.
 7
 8*Mobile-friendly* because ideas can come any time.
 9
10*Web-based*, because terminal-based scroll back is punishment for shoplifting in some countries.
11
12*Multi-modal* because screenshots, charts, and graphs are necessary, not to mention delightful.
13
14*Multi-model* to benefit from all the innovation going on.
15
16*Single-user* because it makes sense to bring the agent to the compute.
17
18# Installation
19
20## Pre-Built Binaries (macOS/Linux)
21
22```bash
23curl -Lo shelley "https://github.com/boldsoftware/shelley/releases/latest/download/shelley_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')" && chmod +x shelley
24```
25
26The binaries are on the [releases page](https://github.com/boldsoftware/shelley/releases/latest).
27
28## Homebrew (macOS)
29
30```bash
31brew install --cask boldsoftware/tap/shelley
32```
33
34## Build from Source
35
36You'll need Go and Node.
37
38```bash
39git clone https://github.com/boldsoftware/shelley.git
40cd shelley
41make
42```
43
44# Releases
45
46New releases are automatically created on every commit to `main`. Versions
47follow the pattern `v0.N.9OCTAL` where N is the total commit count and 9OCTAL is the commit SHA encoded as octal (prefixed with 9).
48
49# Architecture 
50
51The technical stack is Go for the backend, SQLite for storage, and Typescript
52and React for the UI. 
53
54The data model is that Conversations have Messages, which might be from the
55user, the model, the tools, or the harness. All of that is stored in the
56database, and we use a SSE endpoint to keep the UI updated. 
57
58# History
59
60Shelley is partially based on our previous coding agent effort, [Sketch](https://github.com/boldsoftware/sketch). 
61
62Unsurprisingly, much of Shelley is written by Shelley, Sketch, Claude Code, and Codex. 
63
64# Shelley's Name
65
66Shelley is so named because the main tool it uses is the shell, and I like
67putting "-ey" at the end of words. It is also named after Percy Bysshe Shelley,
68with an appropriately ironic nod at
69"[Ozymandias](https://www.poetryfoundation.org/poems/46565/ozymandias)."
70Shelley is a computer program, and, it's an it.
71
72# Open source
73
74Shelley is Apache licensed. We require a CLA for contributions.
75
76# Building Shelley
77
78Run `make`. Run `make serve` to start Shelley locally.
79
80## Dev Tricks
81
82If you want to see how mobile looks, and you're on your home
83network where you've got mDNS working fine, you can
84run 
85
86```
87socat TCP-LISTEN:9001,fork TCP:localhost:9000
88```
89