@otto-assistant/otto 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +142 -0
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# Otto
|
|
2
|
+
|
|
3
|
+
**Otto** is a production-focused wrapper that turns `opencode-ai` + `bridge` + `mempalace` into one fast, repeatable runtime for AI coding in Discord and terminal flows.
|
|
4
|
+
|
|
5
|
+
It is built for teams and solo builders who want:
|
|
6
|
+
|
|
7
|
+
- **Speed**: prebuilt Docker images and one-command onboarding.
|
|
8
|
+
- **Intelligence**: persistent memory via `mempalace`.
|
|
9
|
+
- **Reliability**: pinned stable channel + edge channel with CI publishing.
|
|
10
|
+
- **Low friction**: run locally or in Docker with the same behavior.
|
|
11
|
+
|
|
12
|
+
## Why Otto
|
|
13
|
+
|
|
14
|
+
Most agent stacks break because setup is spread across tools, configs, and machine-specific assumptions.
|
|
15
|
+
Otto standardizes this into a single operator experience:
|
|
16
|
+
|
|
17
|
+
- installs and upgrades required global CLIs,
|
|
18
|
+
- merges required plugins into `opencode` config,
|
|
19
|
+
- enforces safe runtime defaults,
|
|
20
|
+
- supports tenant-oriented Docker operation,
|
|
21
|
+
- ships stable and edge Docker channels to GHCR.
|
|
22
|
+
|
|
23
|
+
## What Otto includes
|
|
24
|
+
|
|
25
|
+
Otto orchestrates three upstream components without patching their source code:
|
|
26
|
+
|
|
27
|
+
- `opencode-ai` — coding agent runtime
|
|
28
|
+
- `@otto-assistant/bridge` — Discord bridge process
|
|
29
|
+
- `mempalace` — persistent memory plugin for long-lived context
|
|
30
|
+
|
|
31
|
+
## Release channels
|
|
32
|
+
|
|
33
|
+
Docker images are published to GHCR under:
|
|
34
|
+
|
|
35
|
+
- `ghcr.io/otto-assistant/otto:edge` (latest from `master`)
|
|
36
|
+
- `ghcr.io/otto-assistant/otto:stable` (latest stable tag)
|
|
37
|
+
- `ghcr.io/otto-assistant/otto:latest` (stable release alias)
|
|
38
|
+
- `ghcr.io/otto-assistant/otto:vX.Y.Z` (versioned stable tags)
|
|
39
|
+
|
|
40
|
+
## Quick start (Docker)
|
|
41
|
+
|
|
42
|
+
### 1) Pull image
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
docker pull ghcr.io/otto-assistant/otto:edge
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
For stable use:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
docker pull ghcr.io/otto-assistant/otto:stable
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 2) Run container
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
docker run --rm -it \
|
|
58
|
+
-v "$HOME/.config/opencode:/root/.config/opencode" \
|
|
59
|
+
-v "$HOME/.kimaki:/root/.kimaki" \
|
|
60
|
+
-v "$PWD:/workspace" \
|
|
61
|
+
ghcr.io/otto-assistant/otto:edge
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
By default, image entrypoint starts `bridge`.
|
|
65
|
+
|
|
66
|
+
## Quick start (CLI from source)
|
|
67
|
+
|
|
68
|
+
### Requirements
|
|
69
|
+
|
|
70
|
+
- Node.js 22+
|
|
71
|
+
- pnpm
|
|
72
|
+
|
|
73
|
+
### Build and install
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
pnpm install
|
|
77
|
+
pnpm build
|
|
78
|
+
npm install -g .
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Verify
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
otto status
|
|
85
|
+
otto doctor
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Simple onboarding flow
|
|
89
|
+
|
|
90
|
+
1. Install Otto (Docker or global CLI).
|
|
91
|
+
2. Run `otto install` once.
|
|
92
|
+
3. Confirm health with `otto doctor`.
|
|
93
|
+
4. Start your bridge/runtime.
|
|
94
|
+
5. Begin coding sessions with persistent memory enabled.
|
|
95
|
+
|
|
96
|
+
## Core commands
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
otto install
|
|
100
|
+
otto upgrade stable
|
|
101
|
+
otto upgrade latest
|
|
102
|
+
otto status
|
|
103
|
+
otto doctor
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Stable upgrade policy
|
|
107
|
+
|
|
108
|
+
- **Edge**: follows `master` continuously.
|
|
109
|
+
- **Stable**: published on git tags `vX.Y.Z`.
|
|
110
|
+
- Use `otto upgrade stable` for predictable pinned versions.
|
|
111
|
+
- Use `otto upgrade latest` for newest upstream packages.
|
|
112
|
+
|
|
113
|
+
## Production notes
|
|
114
|
+
|
|
115
|
+
- Keep `~/.config/opencode` and `~/.kimaki` persistent.
|
|
116
|
+
- If runtime dependencies or config changed, restart bridge.
|
|
117
|
+
- Use unique compose project names per tenant/environment.
|
|
118
|
+
|
|
119
|
+
## Developer workflow
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
pnpm build
|
|
123
|
+
pnpm test
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Then push to `master` for edge Docker publish, or push `vX.Y.Z` tag for stable publish.
|
|
127
|
+
|
|
128
|
+
## Security and operational model
|
|
129
|
+
|
|
130
|
+
- no forceful mutation of upstream source packages,
|
|
131
|
+
- explicit version pinning for stable path,
|
|
132
|
+
- deterministic Docker builds for CI/CD,
|
|
133
|
+
- memory-enabled sessions through plugin orchestration.
|
|
134
|
+
|
|
135
|
+
## Project links
|
|
136
|
+
|
|
137
|
+
- Repository: https://github.com/otto-assistant/otto
|
|
138
|
+
- Docker image: https://github.com/otto-assistant/otto/pkgs/container/otto
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
Otto is optimized for one goal: **ship faster with AI agents, without losing control of runtime quality and memory continuity.**
|