@subvalue/cli 0.1.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/LICENSE +21 -0
- package/PRE_RELEASE.md +51 -0
- package/PRIVACY.md +45 -0
- package/README.md +119 -0
- package/dist/PRICING.md +46 -0
- package/dist/cli.js +2 -0
- package/dist/packages/cli/src/index.js +24 -0
- package/dist/packages/cli/src/runtime.js +22 -0
- package/dist/packages/cli/src/server.js +75 -0
- package/dist/packages/core/src/demo.js +10 -0
- package/dist/packages/core/src/metadata.js +14 -0
- package/dist/packages/core/src/pricing/current.js +326 -0
- package/dist/packages/core/src/pricing/index.js +84 -0
- package/dist/packages/core/src/providers/claude/index.js +24 -0
- package/dist/packages/core/src/providers/codex/index.js +51 -0
- package/dist/packages/core/src/scanner.js +48 -0
- package/dist/packages/core/src/security.js +41 -0
- package/dist/packages/core/src/storage.js +63 -0
- package/dist/packages/core/src/subscriptions.js +22 -0
- package/dist/packages/core/src/summary.js +55 -0
- package/dist/packages/core/src/types.js +29 -0
- package/dist/packages/receipt/src/index.js +90 -0
- package/dist/packages/ui/src/brand.js +5 -0
- package/dist/public/app.css +65 -0
- package/dist/public/app.js +1 -0
- package/dist/public/apps/web/src/landing.js +10 -0
- package/dist/public/apps/web/src/main.js +47 -0
- package/dist/public/brands/SOURCES.txt +14 -0
- package/dist/public/brands/anthropic-symbol-ivory.svg +4 -0
- package/dist/public/brands/claude-code-clawd.svg +3 -0
- package/dist/public/brands/claude-code-ivory.svg +28 -0
- package/dist/public/brands/codex-outline.svg +5 -0
- package/dist/public/brands/openai-blossom-white.svg +15 -0
- package/dist/public/favicon.svg +1 -0
- package/dist/public/fonts/Inter-LICENSE.txt +93 -0
- package/dist/public/fonts/Plex-LICENSE.txt +93 -0
- package/dist/public/fonts/inter-latin.woff2 +0 -0
- package/dist/public/fonts/plex-mono.woff2 +0 -0
- package/dist/public/icon.svg +1 -0
- package/dist/public/index.html +1 -0
- package/dist/public/landing.css +82 -0
- package/dist/public/landing.html +1 -0
- package/dist/public/landing.js +1 -0
- package/dist/public/logo/app-icon.svg +1 -0
- package/dist/public/logo/mark-green.svg +1 -0
- package/dist/public/logo/mark-monochrome.svg +1 -0
- package/dist/public/logo/mark-white.svg +1 -0
- package/dist/public/packages/core/src/subscriptions.js +22 -0
- package/dist/public/packages/receipt/src/index.js +90 -0
- package/dist/public/packages/ui/src/brand.js +5 -0
- package/dist/public/privacy.txt +45 -0
- package/package.json +7 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Privacy and data access
|
|
2
|
+
|
|
3
|
+
SubValue processes usage on the user's machine. It has no account, cloud usage database, telemetry SDK or runtime upload endpoint.
|
|
4
|
+
|
|
5
|
+
## Files read
|
|
6
|
+
|
|
7
|
+
Only these provider sources are opened for usage analysis:
|
|
8
|
+
|
|
9
|
+
- `~/.codex/sessions/**/*.jsonl`
|
|
10
|
+
- `~/.codex/archived_sessions/*.jsonl`
|
|
11
|
+
- `~/.claude/projects/**/*.jsonl`
|
|
12
|
+
|
|
13
|
+
The CLI also reads its own bundled assets and its own local application database. It checks source-directory/file metadata to detect providers and changes. It does not open credentials, `.env` files, shell history, browser profiles, repositories or project paths mentioned by a session. Symlinks and junctions are rejected. `--dry-run` detects directories without opening session contents.
|
|
14
|
+
|
|
15
|
+
Session files colocate counters and conversation text. Complete JSONL lines can therefore pass through memory during a scan; only approved metadata is projected into storage. Prompts, responses, attachments and source code are never persisted or displayed.
|
|
16
|
+
|
|
17
|
+
## Local metadata retained
|
|
18
|
+
|
|
19
|
+
- Provider, timestamp, raw model identifier and token/cache counters.
|
|
20
|
+
- Service tier, speed and billable tool counts when present, for pricing accuracy.
|
|
21
|
+
- Quality flags, schema and scan diagnostics.
|
|
22
|
+
- Hashed event/source references and a hashed Claude request identity, for deduplication and provenance.
|
|
23
|
+
- File sizes, modification times, hashes of small byte windows and offsets, for incremental scans.
|
|
24
|
+
- Codex thread identity and cumulative-counter state in scan checkpoints, to preserve deduplication and counter resets. This identity is not sent to the dashboard.
|
|
25
|
+
- User-declared billing settings, provider visibility and onboarding state.
|
|
26
|
+
|
|
27
|
+
Normalized records omit session/thread identities and project associations. Checkpoints omit unnecessary session, turn and project fields. Existing normalized caches are migrated locally without re-reading source histories or changing event keys and token totals.
|
|
28
|
+
|
|
29
|
+
The browser receives aggregate totals, daily values, model coverage and safe source statuses. It receives no individual requests, project paths, source filenames or conversation text. Receipt exports contain only the selected period, generated date, provider totals and comparison/coverage.
|
|
30
|
+
|
|
31
|
+
## Storage and deletion
|
|
32
|
+
|
|
33
|
+
Metadata is stored in SQLite in the OS application-data directory documented in README. It is not encrypted by SubValue; access relies on the user's OS permissions. It is retained for history and incremental scanning. To remove it, stop SubValue and delete only its application-data directory. This does not delete Codex or Claude files.
|
|
34
|
+
|
|
35
|
+
## Network boundaries
|
|
36
|
+
|
|
37
|
+
The dashboard server binds only to `127.0.0.1`. Host/origin checks and a per-launch token protect local mutations. The local dashboard uses bundled fonts, scripts and assets and makes no external requests. Pricing is bundled, with no online lookup of user activity.
|
|
38
|
+
|
|
39
|
+
Installing or updating with npm/npx contacts the package registry. That installation traffic is separate from usage analysis. Following an external documentation link is an explicit browser action.
|
|
40
|
+
|
|
41
|
+
The public Vercel landing is separate from the local application. It has no usage API, cloud scanner or usage database; its product example is labeled example data. No analytics SDK is included. As the website host, Vercel can process ordinary website connection metadata (such as IP address and requested URL); the landing never receives local usage. See [Vercel's privacy policy](https://vercel.com/legal/privacy-policy).
|
|
42
|
+
|
|
43
|
+
## Verification
|
|
44
|
+
|
|
45
|
+
Synthetic tests check approved file access, blocked links, discarded conversation fields, cache migration, deduplication, safe browser summaries and receipt privacy. Browser tests verify no external application requests and identical preview/export pixels. These checks are not a claim of an independent security certification.
|
package/package.json
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@subvalue/cli", "version": "0.1.0", "description": "Local, read-only Codex and Claude Code API-equivalent usage dashboard",
|
|
3
|
+
"type": "module", "license": "MIT", "engines": {"node": ">=24.13.0"},
|
|
4
|
+
"repository": {"type": "git", "url": "git+https://github.com/axelmtn/subvalue.git"},
|
|
5
|
+
"bin": {"subvalue": "dist/cli.js"}, "files": ["dist/", "README.md", "PRE_RELEASE.md", "PRIVACY.md", "LICENSE"],
|
|
6
|
+
"publishConfig": {"access": "public"}, "scripts": {}
|
|
7
|
+
}
|