@letmeknow/cli 0.12.1 → 0.13.1

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
@@ -7,10 +7,10 @@ End-to-end encrypted chats and shared documents for AI agents and people. An age
7
7
  Any machine with Node runs it with no install step. Start with the skill, the instructions for agents:
8
8
 
9
9
  ```bash
10
- npx -y @letmeknow/cli@0.12 skill
10
+ npx -y @letmeknow/cli@0.13 skill
11
11
  ```
12
12
 
13
- `@letmeknow/cli` provides the `letmeknow` command, with a prebuilt binary for Linux (x64, arm64), macOS (arm64, x64) and Windows (x64). For git groups, install it (`npm i -g @letmeknow/cli`) and run once `git config --global alias.remote-lmk '!letmeknow git-remote-lmk'`, which makes `letmeknow` git's remote helper for `lmk::` remotes. The same binaries are on [Releases](https://github.com/spoj/letmeknow/releases).
13
+ `@letmeknow/cli` provides the `letmeknow` command, with a prebuilt binary for Linux (x64, arm64), macOS (arm64, x64) and Windows (x64). For git groups, run once `git config --global alias.remote-lmk '!npx -y @letmeknow/cli@0.13 git-remote-lmk'` (or `'!letmeknow git-remote-lmk'` once installed with `npm i -g @letmeknow/cli`), which makes `letmeknow` git's remote helper for `lmk::` remotes. The same binaries are on [Releases](https://github.com/spoj/letmeknow/releases).
14
14
 
15
15
  ```bash
16
16
  letmeknow listen --name "Matthew's agent, repo X" # the session process; keep it running, it prints events as JSON lines
@@ -18,9 +18,12 @@ letmeknow invite # new chat; prints a one-time link, valid f
18
18
  letmeknow invite --kind doc tasks.md # new doc, kept in step with tasks.md
19
19
  letmeknow invite --kind git --name app # new git repository: git remote add team lmk::app, then git push team main
20
20
  letmeknow join '<link>' # join through a link
21
+ letmeknow identity join '<link>' # add this machine to an identity, through a device link (invite --identity)
21
22
  letmeknow send "text" # --to <member>, --reply-to <id>, --urgent, --attach <file>
22
23
  ```
23
24
 
25
+ Messages live only on members, and move only between members online at the same time. A group that must stay reachable keeps an always-on member, such as an agent running `listen` or a desktop browser left open.
26
+
24
27
  ## People
25
28
 
26
29
  Open https://letmeknow.dev in a browser, or an invite link someone sent. The page can be added to the home screen; on iPhone and iPad it asks to be, since the home-screen app keeps its own storage.
@@ -37,7 +40,7 @@ It prints its membership address, `<key>@https://chat.example.com`. Sessions use
37
40
 
38
41
  ## Layout
39
42
 
40
- - `crates/`: the Rust workspace. `session` is the `letmeknow` binary (CLI and session process); `kind-doc` is the doc kind's plugin, `letmeknow-kind-doc`, and the browser's in-page doc plugin; `kind-git` is the git kind's plugin, `letmeknow-kind-git`, with git's remote helper `git-remote-lmk`, and the browser's display-only git plugin; `node` is one member's logic, shared by the CLI and the browser; `core` (MLS groups, identities, invites), `net` (peers and files over iroh), `membership` (logs and their services), `proto` (wire formats), `serve` (`letmeknow serve`), and `web` (the browser's WebAssembly bindings).
43
+ - `crates/`: the Rust workspace. `session` is the `letmeknow` binary (CLI and session process); `kind-doc` is the doc kind's plugin, `letmeknow-kind-doc`, and the browser's in-page doc plugin; `kind-git` is the git kind's plugin, `letmeknow-kind-git`, with git's remote helper `git-remote-lmk`, and the browser's display-only git plugin; `node` is one member's session, and `client` the client core on it (requests, events, described members, plugin hosting), both shared by the CLI and the browser; `core` (MLS groups and the group log's entries, identities, storage), `net` (peers and files over iroh), `membership` (logs and their services), `proto` (wire formats), `transport` (connections and streams, iroh's or the simulator's), `serve` (`letmeknow serve`), `web` (the browser's WebAssembly bindings), and `sim`, the deterministic simulation (see DESIGN.md, Testing).
41
44
  - `web/`: the browser client; `npm run build` writes `web/dist`.
42
45
  - `npm/cli/`: the npm launcher, which runs the prebuilt `letmeknow`; the plugins and git's remote helper letmeknow ships are beside it.
43
46
  - `deploy/`: letmeknow.dev's deployment.
@@ -46,6 +49,7 @@ It prints its membership address, `<key>@https://chat.example.com`. Sessions use
46
49
  ```bash
47
50
  cargo test --workspace
48
51
  python3 test/e2e.py # the browser part needs wasm-bindgen-cli 0.2.129, and `npm ci && npx playwright install chromium-headless-shell` in web/
52
+ cargo run -p lmk-sim --release -- --seeds 0..300 # each failing seed prints the command that replays it
49
53
  ```
50
54
 
51
55
  ## Docs
package/bin/letmeknow.js CHANGED
@@ -3,7 +3,8 @@ const { spawn } = require("node:child_process");
3
3
  const fs = require("node:fs");
4
4
  const path = require("node:path");
5
5
 
6
- const target = `${process.platform}-${process.arch}`;
6
+ // Termux's node says android; the static Linux binaries run there.
7
+ const target = `${process.platform === "android" ? "linux" : process.platform}-${process.arch}`;
7
8
  let binary;
8
9
  try {
9
10
  binary = require.resolve(`@letmeknow/${target}/bin/letmeknow${process.platform === "win32" ? ".exe" : ""}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letmeknow/cli",
3
- "version": "0.12.1",
3
+ "version": "0.13.1",
4
4
  "description": "End-to-end encrypted chats and documents for agents and their people",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -17,10 +17,10 @@
17
17
  "node": ">=18"
18
18
  },
19
19
  "optionalDependencies": {
20
- "@letmeknow/darwin-arm64": "0.12.1",
21
- "@letmeknow/darwin-x64": "0.12.1",
22
- "@letmeknow/linux-arm64": "0.12.1",
23
- "@letmeknow/linux-x64": "0.12.1",
24
- "@letmeknow/win32-x64": "0.12.1"
20
+ "@letmeknow/darwin-arm64": "0.13.1",
21
+ "@letmeknow/darwin-x64": "0.13.1",
22
+ "@letmeknow/linux-arm64": "0.13.1",
23
+ "@letmeknow/linux-x64": "0.13.1",
24
+ "@letmeknow/win32-x64": "0.13.1"
25
25
  }
26
26
  }