llmwiki-cli
Advanced tools
+1
-4
| { | ||
| "name": "llmwiki-cli", | ||
| "version": "0.2.2", | ||
| "version": "0.2.3", | ||
| "description": "CLI tool for LLM agents to build and maintain personal knowledge bases", | ||
@@ -29,5 +29,2 @@ "repository": { | ||
| }, | ||
| "optionalDependencies": { | ||
| "@supabase/supabase-js": "^2.49.0" | ||
| }, | ||
| "devDependencies": { | ||
@@ -34,0 +31,0 @@ "@types/bun": "latest", |
+4
-15
@@ -34,3 +34,3 @@ # llmwiki-cli | ||
| v | ||
| filesystem | git (auto-commit + auto-push) | supabase (database) | ||
| filesystem | git (auto-commit + auto-push) | ||
| ``` | ||
@@ -54,3 +54,2 @@ | ||
| | `git` | Filesystem + auto-commit + auto-push to GitHub | `wiki init my-wiki --backend git --git-token <pat>` | | ||
| | `supabase` | Pages in a Supabase database table | `wiki init my-wiki --backend supabase --supabase-url <url> --supabase-key <key>` | | ||
@@ -113,12 +112,4 @@ ## Quick Start | ||
| For supabase backend, only `.llmwiki.yaml` is created locally. Pages are stored in the `wiki_pages` database table. | ||
| **Storage profiles:** `wiki profile use <slug>`, `--profile`, `LLMWIKI_PROFILE`, or top-level `profile` in `.llmwiki.yaml`. Pages live under `profiles/<slug>/` inside the wiki directory. This is organizational separation only, not OS or cryptographic isolation. | ||
| **Schema and init:** `wiki init --backend supabase` runs a quick check against `wiki_pages` (required columns, `upsert` on `user_id,wiki_id,path` with nullable `user_id`). If the table is missing or incompatible, the CLI prints **ready-to-run SQL** for PostgreSQL **15+** (`unique nulls not distinct` on `user_id, wiki_id, path`). Apply it in the Supabase SQL Editor, then run `wiki init` again. If initial seed writes still fail with a schema-style error, the same SQL is printed again as a hint. | ||
| **`user_id`:** Optional. `NULL` means a single shared partition (works well with the **service role** key for personal tooling). When set, the row is scoped to that auth user. The trigger fills `user_id` from `auth.uid()` when the client leaves it null and a user session exists. | ||
| **RLS and auth:** Policies allow the `authenticated` role to read and write rows where `user_id is null or auth.uid() = user_id`. Use the **anon** key in `.llmwiki.yaml` plus a **Supabase Auth access token** (JWT) per session: `LLMWIKI_SUPABASE_ACCESS_TOKEN`, or optional `supabase.access_token` in config (avoid committing secrets). The **service role** key bypasses RLS; do not rely on it for multi-tenant isolation. Older layouts (for example `(wiki_id, path)` only, or non-null `user_id` without the right unique constraint) need a migration or `drop table public.wiki_pages cascade` before applying the printed SQL. | ||
| **Storage profiles (all backends):** `wiki profile use <slug>`, `--profile`, `LLMWIKI_PROFILE`, or top-level `profile` in `.llmwiki.yaml` (legacy: `supabase.profile`). For **filesystem** and **git**, pages live under `profiles/<slug>/` inside the wiki repo. For **Supabase**, the same slug selects the composite `wiki_id`. This is organizational separation only, not OS or cryptographic isolation. | ||
| ## Commands | ||
@@ -131,8 +122,7 @@ | ||
| wiki init [dir] --backend git --no-viz # Skip visualization scaffolding | ||
| wiki init [dir] --backend supabase --supabase-url <url> --supabase-key <key> | ||
| wiki init [existing-wiki-dir] --viz # Add visualization to existing git wiki | ||
| wiki registry # List all wikis | ||
| wiki use [wiki-id] # Set active wiki | ||
| wiki profile show # Effective storage root / Supabase wiki_id | ||
| wiki profile use <slug> # Save profile in registry (all backends) | ||
| wiki profile show # Effective storage root and profile | ||
| wiki profile use <slug> # Save profile in registry | ||
| wiki profile clear # Remove saved profile | ||
@@ -254,3 +244,2 @@ ``` | ||
| - Git (for `--backend git` only) | ||
| - `@supabase/supabase-js` (for `--backend supabase` only — optional dependency) | ||
@@ -257,0 +246,0 @@ ## Development |
Sorry, the diff of this file is too big to display
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
2
-33.33%15
-16.67%4
-98.03%263899
-62.45%7166
-60.27%259
-4.07%