@gobi-ai/cli 2.0.39 → 2.0.40

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.
@@ -4,12 +4,12 @@
4
4
  "name": "gobi-ai"
5
5
  },
6
6
  "description": "Claude Code plugin for the Gobi collaborative knowledge platform CLI",
7
- "version": "2.0.39",
7
+ "version": "2.0.40",
8
8
  "plugins": [
9
9
  {
10
10
  "name": "gobi",
11
11
  "description": "Manage the Gobi collaborative knowledge platform from the command line. Publish vault profiles, create posts and replies, generate images and videos.",
12
- "version": "2.0.39",
12
+ "version": "2.0.40",
13
13
  "author": {
14
14
  "name": "gobi-ai"
15
15
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "gobi",
3
3
  "description": "Manage the Gobi collaborative knowledge platform from the command line",
4
- "version": "2.0.39",
4
+ "version": "2.0.40",
5
5
  "author": {
6
6
  "name": "gobi-ai"
7
7
  },
package/README.md CHANGED
@@ -53,9 +53,9 @@ gobi vault publish
53
53
  # Sync local files with the webdrive
54
54
  gobi vault sync
55
55
 
56
- # Browse the global feed and create a personal post
57
- gobi global feed
58
- gobi global create-post --title "Hello" --content "Trying gobi"
56
+ # Browse your personal feed and create a private post
57
+ gobi personal feed
58
+ gobi personal create-post --title "Hello" --content "Trying gobi"
59
59
  ```
60
60
 
61
61
  Each setup step unlocks a different family of commands — run only the ones the workflow needs:
@@ -74,7 +74,7 @@ Everything below applies whether you're building a Claude Code skill, an autonom
74
74
 
75
75
  ### JSON envelope
76
76
 
77
- Pass `--json` as a **global flag** (before the subcommand) and every command returns a structured envelope:
77
+ Pass `--json` as a **top-level flag** (before the subcommand) and every command returns a structured envelope:
78
78
 
79
79
  ```sh
80
80
  gobi --json space list-posts
@@ -165,7 +165,7 @@ Public vaults are accessible at `https://gobispace.com/@{vaultSlug}`.
165
165
 
166
166
  ### Spaces
167
167
 
168
- A *Space* is a community knowledge area. A *Space Post* lives in one space. The same `Post` data type, in a different scope, is a *Personal Post* (see Global feed below) — so anything you can do to a Space Post you can do to a Personal Post.
168
+ A *Space* is a community knowledge area. A *Space Post* lives in one space. The same `Post` data type, in a different scope, is a private *personal-space post* (see Personal space below) — so anything you can do to a Space Post you can do to a personal-space post.
169
169
 
170
170
  > Space and member administration (creating spaces, inviting/approving members, joining/leaving) is web-UI only and not available in the CLI.
171
171
 
@@ -184,34 +184,16 @@ A *Space* is a community knowledge area. A *Space Post* lives in one space. The
184
184
  | `gobi space edit-reply <replyId> [--content <c>] [--rich-text <json>]` | Edit a reply you authored. |
185
185
  | `gobi space delete-reply <replyId>` | Delete a reply you authored |
186
186
 
187
- ### Global feed (personal posts)
188
-
189
- A *Personal Post* surfaces in the public global feed. Same `Post` model as a Space Post, scoped to the user instead of a space.
190
-
191
- | Command | Description |
192
- |---------|-------------|
193
- | `gobi global feed [--following]` | List the global public feed (posts + replies, newest first). `--following` limits to authors you follow. |
194
- | `gobi global list-posts [--mine]` | List personal posts; filter to your own |
195
- | `gobi global get-post <postId> [--full]` | Get a personal post with its ancestors and replies. `--full` shows reply content without truncation. |
196
- | `gobi global create-post [--title <t>] (--content <c> \| --rich-text <json>) [--artifact <artifactId>]… [--repost-post-id <id>] [--attach <file>]…` | Create a personal post. `--artifact` attaches an existing artifact to the post (repeatable). `--repost-post-id` reposts an existing post. `--attach` uploads local media for inline rendering (see `gobi space create-post` above for the mix rule). |
197
- | `gobi global edit-post <postId> [--title <t>] [--content <c>]` | Edit a personal post you authored. |
198
- | `gobi global delete-post <postId>` | Delete a personal post you authored |
199
- | `gobi global create-reply <postId> (--content <c> \| --rich-text <json>) [--attach <file>]…` | Create a reply to a personal post |
200
- | `gobi global edit-reply <replyId> [--content <c>] [--rich-text <json>]` | Edit a reply you authored. |
201
- | `gobi global delete-reply <replyId>` | Delete a reply you authored |
202
-
203
187
  ### Personal space (private posts)
204
188
 
205
- > Naming note: a **Personal Post** (under `gobi global`, above) is the public-feed kind — it lives on your vault profile and surfaces on the global feed. A **personal-space post** (this section, under `gobi personal`) is the private kind same `Post` data model, but scoped via `personalSpaceUserId` so only you can see it.
206
-
207
- Private posts and replies visible only to you. Same `Post` data model and subcommand shape as `gobi global`, but scoped to a personal space — they never appear on the public global feed.
189
+ Private posts and replies visible only to you. Same `Post` data model and subcommand shape as a Space Post, but scoped to a personal spacethey never appear in any public feed.
208
190
 
209
191
  | Command | Description |
210
192
  |---------|-------------|
211
193
  | `gobi personal feed` | Your personal-space feed (posts + replies, newest first) |
212
194
  | `gobi personal list-posts` | List personal-space posts |
213
195
  | `gobi personal get-post <postId> [--full]` | Get a personal-space post with its ancestors and replies |
214
- | `gobi personal create-post [--title <t>] (--content <c> \| --rich-text <json>) [--artifact <artifactId>]… [--repost-post-id <id>] [--attach <file>]…` | Create a private post in your personal space. `--artifact` attaches an existing artifact to the post (repeatable). `--attach` works the same as on `gobi global create-post`. |
196
+ | `gobi personal create-post [--title <t>] (--content <c> \| --rich-text <json>) [--artifact <artifactId>]… [--repost-post-id <id>] [--attach <file>]…` | Create a private post in your personal space. `--artifact` attaches an existing artifact to the post (repeatable). `--attach` works the same as on `gobi space create-post`. |
215
197
  | `gobi personal edit-post <postId> [--title <t>] [--content <c>]` | Edit a personal-space post you authored |
216
198
  | `gobi personal delete-post <postId>` | Delete a personal-space post you authored |
217
199
  | `gobi personal create-reply <postId> (--content <c> \| --rich-text <json>) [--attach <file>]…` | Reply to a personal-space post (inherits the parent's private scope) |
@@ -236,7 +218,7 @@ Like posts and artifacts, Sense data is **scoped to a space**: the subcommands l
236
218
  | `gobi <scope> conversations transcript <conversationId>` | Get a conversation's transcript and summary |
237
219
  | `gobi <scope> conversations audio <conversationId>` | Get a signed URL for the recording (owner-only) |
238
220
 
239
- `gobi space …` lists are a complete, fully-paginated per-space history (every member's records); add `--mine` to restrict either `list` to records you recorded. `gobi personal conversations list` is filtered from the user-global conversations feed, so it shows your recent personal conversations rather than a fully paginated history (`gobi personal activities list` is fully paginated).
221
+ `gobi space …` lists are a complete, fully-paginated per-space history (every member's records); add `--mine` to restrict either `list` to records you recorded. `gobi personal conversations list` is filtered from the cross-scope conversations feed, so it shows your recent personal conversations rather than a fully paginated history (`gobi personal activities list` is fully paginated).
240
222
 
241
223
  ### Artifacts
242
224
 
@@ -277,7 +259,7 @@ Image, video, and avatar generation. See the `gobi-media` skill for full workflo
277
259
  | `gobi media list-videos` / `gobi media get-video <id>` | List or get videos |
278
260
  | `gobi media upload <file>` | Upload a local file and get a media id |
279
261
 
280
- ### Global options
262
+ ### Top-level options
281
263
 
282
264
  | Option | Scope | Description |
283
265
  |--------|-------|-------------|
@@ -313,7 +295,7 @@ The CLI ships a `.claude-plugin/` manifest with skills that wrap the command gro
313
295
  |-------|--------|
314
296
  | `gobi-core` | Auth, update, space list/warp |
315
297
  | `gobi-vault` | `gobi vault init/list/publish/unpublish/sync` |
316
- | `gobi-space` | `gobi space …`, `gobi global …`, and `gobi personal …` |
298
+ | `gobi-space` | `gobi space …` and `gobi personal …` |
317
299
  | `gobi-artifact` | `gobi personal artifact …` and `gobi space artifact …` |
318
300
  | `gobi-media` | `gobi media …` |
319
301
  | `gobi-sense` | `gobi personal activities/conversations …` and `gobi space activities/conversations …` |
package/commands/login.md CHANGED
@@ -4,7 +4,7 @@ description: Log in to Gobi via Google OAuth
4
4
  argument-hint: ""
5
5
  ---
6
6
 
7
- Always use the globally installed `gobi` binary (not via npx or ts-node).
7
+ Always use the installed `gobi` binary on your PATH (not via npx or ts-node).
8
8
 
9
9
  Log the user in to Gobi using device code flow:
10
10
 
@@ -4,7 +4,7 @@ description: Log out of Gobi and remove stored credentials
4
4
  argument-hint: ""
5
5
  ---
6
6
 
7
- Always use the globally installed `gobi` binary (not via npx or ts-node).
7
+ Always use the installed `gobi` binary on your PATH (not via npx or ts-node).
8
8
 
9
9
  Run `gobi auth logout` to log out of Gobi.
10
10
 
package/commands/post.md CHANGED
@@ -5,7 +5,7 @@ argument-hint: "[approval|bypass]"
5
5
  disable-model-invocation: true
6
6
  ---
7
7
 
8
- Always use the globally installed `gobi` binary (not via npx or ts-node).
8
+ Always use the installed `gobi` binary on your PATH (not via npx or ts-node).
9
9
 
10
10
  ## Argument: permissionMode
11
11
 
@@ -4,17 +4,15 @@ description: Explore what's happening in the active Gobi space — posts and lea
4
4
  argument-hint: "[topic or keyword]"
5
5
  ---
6
6
 
7
- Always use the globally installed `gobi` binary (not via npx or ts-node).
7
+ Always use the installed `gobi` binary on your PATH (not via npx or ts-node).
8
8
 
9
9
  Explore the active Gobi space to surface posts, topics, and learnings from others:
10
10
 
11
- 1. Run these three commands in parallel:
11
+ 1. Run these two commands in parallel:
12
12
  - `gobi --json space list-posts` — recent posts in the space
13
13
  - `gobi --json space list-topics` — available topics in the space
14
- - `gobi --json global feed` recent posts and replies shared by members across the platform
15
- 2. Display results in a readable summary, grouped by type (Topics / Space posts / Global feed).
14
+ 2. Display results in a readable summary, grouped by type (Topics / Space posts).
16
15
  3. If `$ARGUMENTS` is provided, filter or highlight entries relevant to that topic or keyword. If a matching topic is found, also run `gobi --json space list-topic-posts <topicSlug>` to show posts tagged with that topic.
17
16
  4. Ask the user if they'd like to read anything in full:
18
17
  - For a topic: run `gobi space list-topic-posts <topicSlug>` and show the posts.
19
18
  - For a space post: run `gobi space get-post <postId>` and show it with ancestors and replies.
20
- - For a global feed post: run `gobi global get-post <postId>` to show it with ancestors and replies.
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: space-share
3
- description: Summarize recent learnings from this session and draft a personal post to share to the global feed.
3
+ description: Summarize recent learnings from this session and draft a post to share to a Gobi space.
4
4
  argument-hint: "[context]"
5
5
  ---
6
6
 
7
- Always use the globally installed `gobi` binary (not via npx or ts-node).
7
+ Always use the installed `gobi` binary on your PATH (not via npx or ts-node).
8
8
 
9
9
  ## Pre-flight check
10
10
 
@@ -16,7 +16,7 @@ gobi --json auth status
16
16
 
17
17
  Check that `.gobi/settings.yaml` exists. If you plan to publish to a Space (`gobi space create-post`), it must contain `selectedSpaceSlug` — otherwise stop and ask the user to run `gobi space warp` first.
18
18
 
19
- ## Draft a personal post
19
+ ## Draft a post
20
20
 
21
21
  If `$ARGUMENTS` is provided, treat it as additional context or emphasis to guide the draft (e.g. "Emphasize the auth fix" or "Focus on the API design decision").
22
22
 
@@ -36,16 +36,16 @@ Focus on:
36
36
 
37
37
  Format the draft as a short post (2–5 bullet points max). Show it to the user and ask for confirmation before posting.
38
38
 
39
- Once confirmed, post it to the global feed:
39
+ Once confirmed, post it to the active space:
40
40
 
41
41
  ```bash
42
- gobi global create-post --title "<short title>" --content "<confirmed content>"
42
+ gobi space create-post --title "<short title>" --content "<confirmed content>"
43
43
  ```
44
44
 
45
- Or to the active space:
45
+ Or keep it private in your personal space:
46
46
 
47
47
  ```bash
48
- gobi space create-post --title "<short title>" --content "<confirmed content>"
48
+ gobi personal create-post --title "<short title>" --content "<confirmed content>"
49
49
  ```
50
50
 
51
51
  Confirm success and show the user the result.
package/commands/warp.md CHANGED
@@ -6,7 +6,7 @@ argument-hint: "[spaceSlug]"
6
6
 
7
7
  Warp to a Gobi space:
8
8
 
9
- Always use the globally installed `gobi` binary (not npx or ts-node).
9
+ Always use the installed `gobi` binary on your PATH (not npx or ts-node).
10
10
 
11
11
  - If a space slug is provided as `$ARGUMENTS`, run `gobi space warp $ARGUMENTS` directly.
12
12
  - If no argument is given:
@@ -33,8 +33,8 @@ export function registerPersonalCommand(program) {
33
33
  const personal = program
34
34
  .command("personal")
35
35
  .description("Personal-space commands (private posts and replies visible only to you). " +
36
- "Mirrors the `global` subcommand shape — posts/replies live in the same data " +
37
- "model, scoped via personalSpaceUserId so they never surface on the public feed.");
36
+ "Posts/replies live in the same data model as space posts, scoped via " +
37
+ "personalSpaceUserId so they never surface on the public feed.");
38
38
  // ── Feed (unified) ──
39
39
  personal
40
40
  .command("feed")
@@ -166,13 +166,13 @@ export function registerPersonalCommand(program) {
166
166
  });
167
167
  // ── Get post (with ancestors and replies) ──
168
168
  //
169
- // Same `/posts/:id` and `/posts/:id/ancestors` routes the global command
170
- // uses — the server gates these by `viewerUserId`, so private rows
171
- // resolve for the owner and 404 for everyone else. Personal-space posts
172
- // and global posts share this endpoint without ambiguity.
169
+ // The shared `/posts/:id` and `/posts/:id/ancestors` routes the server
170
+ // gates these by `viewerUserId`, so private rows resolve for the owner and
171
+ // 404 for everyone else. Personal-space and public posts share this
172
+ // endpoint without ambiguity.
173
173
  personal
174
174
  .command("get-post <postId>")
175
- .description("Get a personal-space post with its ancestors and replies (paginated). Same endpoint as `gobi global get-post`; only the owner can resolve a private id.")
175
+ .description("Get a personal-space post with its ancestors and replies (paginated). Only the owner can resolve a private id.")
176
176
  .option("--limit <number>", "Items per page", "20")
177
177
  .option("--cursor <string>", "Pagination cursor from previous response")
178
178
  .option("--full", "Show full reply content without truncation")
@@ -246,8 +246,8 @@ export function registerPersonalCommand(program) {
246
246
  // ── Create post ──
247
247
  //
248
248
  // Targets `POST /posts/personal-space`, the only endpoint that stamps
249
- // `personalSpaceUserId` on the row. Body shape is identical to the
250
- // global `POST /posts` create (same CreatePostDto). The server skips the
249
+ // `personalSpaceUserId` on the row. Body shape is identical to the public
250
+ // `POST /posts` create (same CreatePostDto). The server skips the
251
251
  // `@gobi` mention dispatch and the notification fan-out for this lane —
252
252
  // private posts have no audience.
253
253
  personal
@@ -258,7 +258,7 @@ export function registerPersonalCommand(program) {
258
258
  .option("--rich-text <richText>", "Rich-text JSON array (mutually exclusive with --content)")
259
259
  .option("--artifact <artifactId>", "Attach an existing artifact to the post (repeatable). Create artifacts with `gobi personal artifact create`.", (value, prev = []) => [...prev, value], [])
260
260
  .option("--attach <file>", "Local media or document file to attach. Repeatable. Mix rule: up to 4 photos + up to 4 document files (pdf/md/txt/csv) OR 1 GIF OR 1 video. Size ceilings: 10MB photos / 15MB GIFs / 512MB video / 250MB files.", (value, prev = []) => [...prev, value], [])
261
- .option("--repost-post-id <postId>", "Wrap an existing top-level post as the embedded card on this new private post. The referenced post must be visible to you (your own personal-space post, a global-feed post, or a post in a space you're a member of). Reposting someone else's personal-space post returns 404.")
261
+ .option("--repost-post-id <postId>", "Wrap an existing top-level post as the embedded card on this new private post. The referenced post must be visible to you (your own personal-space post, a public post, or a post in a space you're a member of). Reposting someone else's personal-space post returns 404.")
262
262
  .action(async (opts) => {
263
263
  // A post is substantive if it has a text body OR carries an attachment
264
264
  // (artifact card / media) OR embeds a repost. Only block the truly empty
@@ -316,9 +316,9 @@ export function registerPersonalCommand(program) {
316
316
  });
317
317
  // ── Edit post ──
318
318
  //
319
- // Same `PATCH /posts/:postId` route the global command uses — the server
320
- // gates on `authorId === userId` and the read-path guard runs first, so
321
- // a non-owner can't edit (or even discover) a private post.
319
+ // The shared `PATCH /posts/:postId` route — the server gates on
320
+ // `authorId === userId` and the read-path guard runs first, so a non-owner
321
+ // can't edit (or even discover) a private post.
322
322
  personal
323
323
  .command("edit-post <postId>")
324
324
  .description("Edit a post you authored in your personal space.")
@@ -386,8 +386,8 @@ export function registerPersonalCommand(program) {
386
386
  //
387
387
  // `POST /posts/:postId/replies` inherits scope from the parent on the
388
388
  // server — reply to a personal-space parent → reply is scoped to that
389
- // personal space. The same command works for global and personal; we
390
- // expose it here for discoverability/symmetry with `gobi global`.
389
+ // personal space. The same server route backs space and personal replies;
390
+ // we expose it here for discoverability under `gobi personal`.
391
391
  personal
392
392
  .command("create-reply <postId>")
393
393
  .description("Reply to a personal-space post. The reply inherits the parent's private scope automatically.")
@@ -516,7 +516,7 @@ export function registerPersonalCommand(program) {
516
516
  pagination: resp.pagination,
517
517
  };
518
518
  },
519
- // `/app/conversations` is user-global (all scopes, newest ~50, no paging);
519
+ // `/app/conversations` spans all the user's scopes (newest ~50, no paging);
520
520
  // filter to the personal scope (spaceId 0). Params are ignored — the endpoint
521
521
  // takes none.
522
522
  listConversations: async () => {
@@ -109,7 +109,7 @@ export function registerActivitiesSubcommands(parent, scope, description) {
109
109
  //
110
110
  // Registers the `conversations` subcommand tree under `parent`. The `space`
111
111
  // group lists via `/spaces/:slug/conversations` (every member's, keyset-paged);
112
- // the `personal` group lists via the user-global `/app/conversations` filtered
112
+ // the `personal` group lists via the cross-scope `/app/conversations` filtered
113
113
  // to the personal scope. Replaces the old top-level `gobi sense list-transcriptions`.
114
114
  export function registerConversationsSubcommands(parent, scope, description) {
115
115
  const conversations = parent.command("conversations").description(description);
@@ -732,7 +732,7 @@ export function registerSpaceCommand(program) {
732
732
  "human-owned; revisions form a draft/published tree (one published per artifact).");
733
733
  // ── Sense: activities + conversations (scoped to this space) ──
734
734
  //
735
- // The conversations list endpoint is user-global (returns the caller's recent
735
+ // The conversations list endpoint spans all the user's scopes (returns the caller's recent
736
736
  // conversations across all scopes, each tagged with spaceId), so the scope
737
737
  // resolves this space's numeric id — via GET /spaces/:slug — to filter it.
738
738
  const senseScope = {
@@ -28,8 +28,8 @@ function detectInstallMethod() {
28
28
  return "brew";
29
29
  }
30
30
  try {
31
- const npmGlobalDir = execSync("npm root -g", { encoding: "utf-8" }).trim();
32
- if (gobiBin && gobiBin.includes(npmGlobalDir.replace("/lib/node_modules", ""))) {
31
+ const npmRootDir = execSync("npm root -g", { encoding: "utf-8" }).trim();
32
+ if (gobiBin && gobiBin.includes(npmRootDir.replace("/lib/node_modules", ""))) {
33
33
  return "npm";
34
34
  }
35
35
  }
@@ -5,7 +5,7 @@ import { getSpaceSlug, getVaultSlug } from "./init.js";
5
5
  export function readStdin() {
6
6
  return readFileSync(0, "utf8");
7
7
  }
8
- // The global `--json` flag lives on the root program. Walk up the ancestry so
8
+ // The top-level `--json` flag lives on the root program. Walk up the ancestry so
9
9
  // this works regardless of how deeply the calling command is nested (e.g. a
10
10
  // leaf under `gobi space artifact …`, not just a direct child of the program).
11
11
  export function isJsonMode(cmd) {
package/dist/main.js CHANGED
@@ -5,7 +5,6 @@ import { ApiError, GobiError } from "./errors.js";
5
5
  import { registerAuthCommand } from "./commands/auth.js";
6
6
  import { commandRequiresSpace, commandRequiresVault, readSettings, } from "./commands/init.js";
7
7
  import { registerSpaceCommand } from "./commands/space.js";
8
- import { registerGlobalCommand } from "./commands/global.js";
9
8
  import { registerPersonalCommand } from "./commands/personal.js";
10
9
  import { registerVaultCommand } from "./commands/vault.js";
11
10
  import { registerUpdateCommand } from "./commands/update.js";
@@ -56,7 +55,6 @@ export async function cli() {
56
55
  // Register all command groups
57
56
  registerAuthCommand(program);
58
57
  registerSpaceCommand(program);
59
- registerGlobalCommand(program);
60
58
  registerPersonalCommand(program);
61
59
  registerVaultCommand(program);
62
60
  registerUpdateCommand(program);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gobi-ai/cli",
3
- "version": "2.0.39",
3
+ "version": "2.0.40",
4
4
  "description": "CLI client for the Gobi collaborative knowledge platform",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -11,12 +11,12 @@ description: >-
11
11
  allowed-tools: Bash(gobi:*)
12
12
  metadata:
13
13
  author: gobi-ai
14
- version: "2.0.39"
14
+ version: "2.0.40"
15
15
  ---
16
16
 
17
17
  # gobi-artifact
18
18
 
19
- Gobi artifact commands for versioned, post-attachable creations (v2.0.39).
19
+ Gobi artifact commands for versioned, post-attachable creations (v2.0.40).
20
20
 
21
21
  Requires gobi-cli installed and authenticated. See gobi-core skill for setup.
22
22
 
@@ -51,7 +51,7 @@ Markdown bodies can reference vault notes with `[[wikilinks]]`. Resolution again
51
51
 
52
52
  ## Important: JSON Mode
53
53
 
54
- For programmatic/agent usage, always pass `--json` as a **global** option (before everything else):
54
+ For programmatic/agent usage, always pass `--json` as a **top-level** option (before everything else):
55
55
 
56
56
  ```bash
57
57
  gobi --json personal artifact list --limit 20
@@ -3,8 +3,8 @@
3
3
  ```
4
4
  Usage: gobi personal [options] [command]
5
5
 
6
- Personal-space commands (private posts and replies visible only to you). Mirrors the `global` subcommand shape — posts/replies live in the same data model, scoped via personalSpaceUserId so they
7
- never surface on the public feed.
6
+ Personal-space commands (private posts and replies visible only to you). Posts/replies live in the same data model as space posts, scoped via personalSpaceUserId so they never surface on the public
7
+ feed.
8
8
 
9
9
  Options:
10
10
  -h, --help display help for command
@@ -8,12 +8,12 @@ description: >-
8
8
  allowed-tools: Bash(gobi:*)
9
9
  metadata:
10
10
  author: gobi-ai
11
- version: "2.0.39"
11
+ version: "2.0.40"
12
12
  ---
13
13
 
14
14
  # gobi-core
15
15
 
16
- Core CLI commands for the Gobi collaborative knowledge platform (v2.0.39).
16
+ Core CLI commands for the Gobi collaborative knowledge platform (v2.0.40).
17
17
 
18
18
  ## Prerequisites
19
19
 
@@ -38,7 +38,6 @@ brew tap gobi-ai/tap && brew install gobi
38
38
  ## Key Concepts
39
39
 
40
40
  - **Vault**: A filetree-backed knowledge home. A local directory becomes a vault when it contains `.gobi/settings.yaml` with a `vaultSlug`. Each vault has a slug (e.g. `brave-path-zr962w`); public profile is configured by a `PUBLISH.md` document at the vault root and pushed via `gobi vault publish`.
41
- - **Personal Post**: A post on the author's profile that surfaces in the public global feed. Same `Post` data model as a Space Post — only the scope differs.
42
41
  - **Space Post**: A post inside a community space.
43
42
  - **Space**: A shared community knowledge area. A user can be a member of one or more spaces; each space contains posts, replies, and connected vaults.
44
43
  - **Artifact**: A versioned, human-owned creation (image, video, gif, markdown, or meeting_summary) attached to posts. Its revisions form a draft/published tree (at most one published). See the **gobi-artifact** skill.
@@ -78,14 +77,13 @@ gobi auth status
78
77
  | `vault init` | no (it sets it up) | no | – |
79
78
  | `space list` / `warp [slug]` / `get [slug]` | no | no | – |
80
79
  | `space list-topics` / `feed` / `list-posts` / `get-post` / `create-post` / `edit-post` / `delete-post` / `create-reply` / `edit-reply` / `delete-reply` / `list-topic-posts` | no | **yes** | parent `--space-slug <slug>` |
81
- | `global feed` / `list-posts` / `get-post` / `create-post` / `edit-post` / `delete-post` / `create-reply` / `edit-reply` / `delete-reply` | no | no | – |
82
80
  | `personal feed` / `list-posts` / `get-post` / `create-post` / `edit-post` / `delete-post` / `create-reply` / `edit-reply` / `delete-reply` | no | no | – |
83
81
 
84
82
  When a command needs vault or space and neither `.gobi` nor an override flag provides it, the CLI prints a one-line warning before the command runs (e.g. `Vault not set. Run 'gobi vault init' first, or pass --vault-slug.`). The warning is suppressed under `--json`.
85
83
 
86
84
  ## Important: JSON Mode
87
85
 
88
- For programmatic/agent usage, always pass `--json` as a **global** option (before the subcommand) to get structured JSON output:
86
+ For programmatic/agent usage, always pass `--json` as a **top-level** option (before the subcommand) to get structured JSON output:
89
87
 
90
88
  ```bash
91
89
  gobi --json space list
@@ -7,7 +7,7 @@ description: >-
7
7
  allowed-tools: Bash(gobi:*)
8
8
  metadata:
9
9
  author: gobi-ai
10
- version: "2.0.39"
10
+ version: "2.0.40"
11
11
  ---
12
12
 
13
13
  # Gobi Homepage Developer Guide
@@ -10,18 +10,18 @@ description: >-
10
10
  allowed-tools: Bash(gobi:*)
11
11
  metadata:
12
12
  author: gobi-ai
13
- version: "2.0.39"
13
+ version: "2.0.40"
14
14
  ---
15
15
 
16
16
  # gobi-media
17
17
 
18
- Gobi media generation commands (v2.0.39).
18
+ Gobi media generation commands (v2.0.40).
19
19
 
20
20
  Requires gobi-cli installed and authenticated. See gobi-core skill for setup.
21
21
 
22
22
  ## Important: JSON Mode
23
23
 
24
- For programmatic/agent usage, always pass `--json` as a **global** option (before the subcommand):
24
+ For programmatic/agent usage, always pass `--json` as a **top-level** option (before the subcommand):
25
25
 
26
26
  ```bash
27
27
  gobi --json media generate-image --prompt "a sunset over mountains"
@@ -10,12 +10,12 @@ description: >-
10
10
  allowed-tools: Bash(gobi:*)
11
11
  metadata:
12
12
  author: gobi-ai
13
- version: "2.0.39"
13
+ version: "2.0.40"
14
14
  ---
15
15
 
16
16
  # gobi-sense
17
17
 
18
- Gobi Sense commands for browsing activities and conversations (v2.0.39).
18
+ Gobi Sense commands for browsing activities and conversations (v2.0.40).
19
19
 
20
20
  Requires gobi-cli installed and authenticated. See the **gobi-core** skill for setup.
21
21
 
@@ -39,7 +39,7 @@ The old `gobi sense list-activities` / `gobi sense list-transcriptions` commands
39
39
 
40
40
  ## Important: JSON Mode
41
41
 
42
- For programmatic/agent usage, always pass `--json` as a **global** option (before the subcommand):
42
+ For programmatic/agent usage, always pass `--json` as a **top-level** option (before the subcommand):
43
43
 
44
44
  ```bash
45
45
  gobi --json personal activities list --limit 30
@@ -67,7 +67,7 @@ gobi --json space --space-slug my-team conversations transcript 12345
67
67
  gobi --json space --space-slug my-team conversations audio 12345
68
68
  ```
69
69
 
70
- Both list commands are newest-first and page with `--limit` / `--before` (pass a previous response's `nextCursor` to `--before`). Scope difference: **`gobi space … activities/conversations list`** is a complete, fully-paginated per-space history (every member's records). **`gobi personal … conversations list`** is filtered from the user-global conversations feed, so it shows your recent personal conversations rather than a fully paginated history (`gobi personal activities list` is fully paginated).
70
+ Both list commands are newest-first and page with `--limit` / `--before` (pass a previous response's `nextCursor` to `--before`). Scope difference: **`gobi space … activities/conversations list`** is a complete, fully-paginated per-space history (every member's records). **`gobi personal … conversations list`** is filtered from the cross-scope conversations feed, so it shows your recent personal conversations rather than a fully paginated history (`gobi personal activities list` is fully paginated).
71
71
 
72
72
  ## Available Commands
73
73
 
@@ -3,8 +3,8 @@
3
3
  ```
4
4
  Usage: gobi personal [options] [command]
5
5
 
6
- Personal-space commands (private posts and replies visible only to you). Mirrors the `global` subcommand shape — posts/replies live in the same data model, scoped via personalSpaceUserId so they
7
- never surface on the public feed.
6
+ Personal-space commands (private posts and replies visible only to you). Posts/replies live in the same data model as space posts, scoped via personalSpaceUserId so they never surface on the public
7
+ feed.
8
8
 
9
9
  Options:
10
10
  -h, --help display help for command