obolos 0.0.0-stage → 1.2.0

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 CHANGED
@@ -1,3 +1,168 @@
1
- # Temporary Holding Version
1
+ # obolos CLI
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ `obolos` is the command line for operating obolos companies. It speaks in business terms (shares,
4
+ dollars, dates, vesting schedules), asks when something is missing, prepares every change as a
5
+ reviewed run, and only sends with a key you own. It calls `@obolos/sdk` directly; there is no hosted
6
+ service in between.
7
+
8
+ ## Install
9
+
10
+ ```bash
11
+ npm install --global obolos
12
+ obolos --help
13
+ ```
14
+
15
+ Inside this workspace:
16
+
17
+ ```bash
18
+ pnpm install --filter obolos...
19
+ pnpm --filter @obolos/sdk build
20
+ pnpm --filter obolos build
21
+ node cli/dist/cli.js --help
22
+ ```
23
+
24
+ ## Configure
25
+
26
+ ```bash
27
+ export OBOLOS_RPC_URL=https://your-rpc.example # or --rpc-url
28
+ obolos login # connect this terminal as one of your agent wallets
29
+ obolos login --key # or sign in with your own key (OBOLOS_PRIVATE_KEY or --keystore)
30
+ obolos doctor --json # RPC, chain, deployments, key
31
+ ```
32
+
33
+ Pick the company once, like choosing a project:
34
+
35
+ ```bash
36
+ obolos companies # the companies your wallet holds a role in
37
+ obolos use '#3' # by factory id, or an address
38
+ obolos whoami # your roles there, or your agent wallet and its powers
39
+ obolos company show
40
+ ```
41
+
42
+ The selection lives in `./.obolos/config.json`; `--company <#id|address>` overrides it per command.
43
+
44
+ An agent wallet acts within the powers you give it on the Passport page: Read, Vote, Manage equity,
45
+ Raise and Create a company. Granting roles, upgrading the company and withdrawing from its treasury
46
+ take your own key (`obolos login --key`).
47
+
48
+ ## Operate
49
+
50
+ Commands are noun-verb and take human units: shares `1,000`, money `250,000`, dates `2026-01-01`
51
+ or `now`, durations `4y`, `18m`, `90d`, vesting `4y/1y/monthly`. Examples:
52
+
53
+ ```bash
54
+ obolos shares issue --to 0xabc --shares 1,000 --document obolos://rooms/<room>/folders/<folder>/doc/<n>
55
+ obolos shares class create --name "Series A Preferred" --authorized 2,000,000
56
+ obolos vesting create --to 0xabc --shares 480,000 --start 2026-01-01 --vesting 4y/1y/monthly
57
+ obolos grant issue --type option --to 0xabc --shares 40,000 --vesting 4y/1y/monthly
58
+ obolos fundraise create --type safe --name Seed --target 2,000,000 --agreement bafy...
59
+ obolos transfer request --to 0xdef --shares 1,000
60
+ ```
61
+
62
+ `obolos <noun> --help` lists every verb and flag.
63
+
64
+ ### When something is missing
65
+
66
+ A command that lacks a business input does not guess. It stops with exit code 6 and lists the
67
+ questions, each with the flag that answers it and, where there are choices, the options with the
68
+ default marked:
69
+
70
+ ```
71
+ Create a share class needs a few answers first:
72
+
73
+ Which traits should the class have?
74
+ --traits standard Standard: 1x liquidation preference, 1 vote per share, no par value (default)
75
+ --traits non-voting Non-voting: 1x liquidation preference, no votes, no par value
76
+ --traits custom Custom: give liquidationPreference, votingWeight and parValue
77
+ ```
78
+
79
+ With `--json` the same questions arrive on stderr under `error.code = "cli.needs_input"`.
80
+
81
+ ### Review and send
82
+
83
+ Preparing never sends. Each write command runs the preflight (capability, authority, freeze,
84
+ simulation of the exact call as the actor, credit quote), writes a hash-verified run file under
85
+ `.obolos/runs/`, and prints the review block: summary, checks, warnings, the stages with the current
86
+ one marked and its stage hash, and the postconditions.
87
+
88
+ ```bash
89
+ obolos send .obolos/runs/shares.issue-1-c887e01e.json # confirms, then sends with your key
90
+ obolos status <run> # where a run stands
91
+ obolos resume <run> # continue an interrupted run
92
+ ```
93
+
94
+ Multi-step operations are one run: funding an escrow before a schedule, request then verdict then
95
+ finalize, room then round. `send` walks the stages it can and stops when a stage waits on time,
96
+ another party, or a verdict. Add `--send` to a command to send right after preparing (still asks
97
+ for confirmation unless `--yes`). A run file that was edited by hand is refused.
98
+
99
+ Run files contain private cross-stage state needed to resume. They are written owner-only (`0600`;
100
+ new run directories use `0700`) and should not be printed or attached. With `--json`, write
101
+ commands return a redacted `obolos-run-view/v1` containing workflow, check and stage statuses plus
102
+ the stage hash and private run-file path. Normalized inputs, private state, calldata and stage
103
+ outputs stay out of machine-readable logs.
104
+
105
+ ### Confidential values
106
+
107
+ Amounts on vesting schedules, grants, valuations and financing terms are sealed before they go on
108
+ chain and only readable by the parties the protocol allows. Sealing needs only the acting wallet:
109
+ your key's, or the wallet your agent wallet works for after `obolos login`. Reading (`--reveal` on
110
+ `show` commands) needs your key, or Read for the agent wallet; verdict publishing needs your key.
111
+
112
+ ## Agent skill
113
+
114
+ The `obolos` Agent Skill ships with this package and teaches a coding agent to drive these
115
+ commands: how to route a request, answer the questions a command asks, review a run before sending,
116
+ and never invent a business value.
117
+
118
+ ```bash
119
+ npm install -g obolos
120
+ obolos skills install # every agent detected in your home directory
121
+ obolos skills list # where it is installed, and whether each copy is current
122
+ ```
123
+
124
+ The skill always goes to `~/.agents/skills`, the cross-agent root that Codex, Cursor, Gemini CLI and
125
+ others read, plus the private directory of every agent found: Claude Code, Cursor, OpenCode, GitHub
126
+ Copilot and Factory Droid. Codex needs nothing extra: it reads the shared root, and `--agent codex`
127
+ (like `gemini`, `amp`, `cline`, `warp`) is a name for that same directory. Use `--agent <id...>` to
128
+ pick specific ones, `--project <path>` to install
129
+ into a repository (the shared root only, unless `--agent` names more), and `--replace` to back up a
130
+ locally edited copy before overwriting it. A reinstall of an unchanged copy does nothing.
131
+
132
+ Invoke it as `/obolos` in Claude Code or `$obolos` in Codex.
133
+
134
+ Claude Code can also take the skill as a plugin, which tracks the repo instead of a copied
135
+ directory. From a checkout of `equitylayer/services`:
136
+
137
+ ```
138
+ /plugin marketplace add equitylayer/services
139
+ /plugin install obolos@obolos
140
+ ```
141
+
142
+ The marketplace manifest lives at `.claude-plugin/marketplace.json` and points at this package;
143
+ `obolos skills install` stays the path for every other agent.
144
+
145
+ ## Keys
146
+
147
+ The CLI never takes a private key as an argument. Use a dedicated environment variable or an
148
+ encrypted keystore:
149
+
150
+ ```bash
151
+ export OBOLOS_PRIVATE_KEY=0x... # or --key-env NAME
152
+ export OBOLOS_KEYSTORE_PASSWORD='...'; obolos send <run> --keystore ./signer.json
153
+ ```
154
+
155
+ Keys, keystore passwords, confidential plaintext and session material never belong in flags, run
156
+ files, logs or agent conversations.
157
+
158
+ ## Low-level access
159
+
160
+ `obolos sdk actions`, `obolos sdk read <module.method>`, `obolos sdk prepare <module.method>` and
161
+ `obolos sdk batch` expose the SDK client one builder at a time for integration work; builders that
162
+ need sealed confidential inputs are refused there and point to the matching command. `obolos decode
163
+ <revert-data>` decodes protocol errors.
164
+
165
+ ## Exit codes
166
+
167
+ `0` done, `1` unexpected failure, `2` input or usage, `3` configuration, `4` preflight or simulation
168
+ failure, `5` send failure, `6` more input needed.