forked from andrewyng/context-hub
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathllms.txt
More file actions
169 lines (124 loc) · 6.68 KB
/
llms.txt
File metadata and controls
169 lines (124 loc) · 6.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# Context Hub (chub)
> CLI tool for searching and fetching LLM-optimized documentation and skills. Install: npm install -g @aisuite/chub
## Content Types
- doc: API/SDK reference documentation. Versioned, language-specific. Entry file: DOC.md
- skill: Task recipes, automation patterns, coding playbooks. Standalone. Entry file: SKILL.md
## Commands
### chub search [query]
Search docs and skills. No query lists all entries.
Flags:
--tags <csv> Filter by tags (comma-separated)
--json JSON output with { total, results[] }
Examples:
chub search # list everything
chub search "stripe" # fuzzy search by name/description
chub search stripe/payments # exact id returns full detail
chub search --tags automation # filter by tag
### chub get <ids...>
Fetch one or more docs or skills by ID. Auto-detects type (doc vs skill). Auto-infers language when only one is available.
Flags:
--lang <language> Language variant (js, py, ts, etc.)
--version <version> Specific doc version
--full Fetch all files, not just the entry point
--file <paths> Fetch specific file(s) by path (comma-separated)
-o, --output <path> Write to file or directory
--json JSON output with { id, type, content, path, additionalFiles?, annotation? }
Examples:
chub get stripe/api # single doc (auto-infers lang if only one)
chub get openai/chat-api --lang py # specific language
chub get pw-community/login-flows # fetch a skill
chub get stripe/api openai/chat-api # multiple entries
chub get acme/widgets --file references/advanced.md # specific reference file
chub get acme/widgets --full # all files
chub get stripe/api -o .context/stripe.md # save to file
Behavior:
- When additional reference files exist beyond the entry point, output includes a footer listing them
- Use --file to fetch specific reference files without fetching everything
- If an annotation exists for the entry, it is appended after the content
### chub annotate [id] [note]
Attach persistent notes to a doc or skill. Notes appear on future `chub get` calls.
Flags:
--clear Remove annotation for this entry
--list List all annotations
--json JSON output
Examples:
chub annotate stripe/api "Use idempotency keys for POST requests" # set note
chub annotate stripe/api # view current note
chub annotate stripe/api "Updated note" # replaces previous note
chub annotate stripe/api --clear # remove note
chub annotate --list # list all annotations
Storage: ~/.chub/annotations/ (local, per-machine)
### chub feedback [id] [rating] [comment]
Rate a doc or skill (up/down). Sent to the registry for maintainers.
Flags:
--label <label> Feedback label (repeatable). Valid: accurate, well-structured, helpful, good-examples, outdated, inaccurate, incomplete, wrong-examples, wrong-version, poorly-structured
--lang <language> Language variant
--file <file> Specific file within the entry
--agent <name> AI tool name
--model <model> LLM model name
--status Show telemetry status
--json JSON output
Examples:
chub feedback stripe/api up "Clear examples"
chub feedback openai/chat down --label outdated --label wrong-examples
### chub update
Download or refresh the cached registry.
### chub cache status|clear
Manage the local cache. `status` shows cache info, `clear` removes cached content.
### chub build <content-dir>
Build a registry from a local content directory.
Flags:
-o, --output <path> Output directory (default: <content-dir>/dist)
--base-url <url> Base URL for remote serving
--validate-only Validate without building
--json JSON output
## Agent Workflow
Recommended pattern for AI agents using Context Hub:
1. SEARCH: Find relevant documentation
chub search "stripe payments" --json | jq -r '.results[0].id'
2. FETCH: Get the documentation
chub get stripe/api --lang js
3. USE: Read the content, write code based on it
4. ANNOTATE: Record what you learned for future sessions
chub annotate stripe/api "Webhook verification requires raw body, not parsed JSON"
5. NEXT SESSION: Fetch again — your annotation appears automatically
chub get stripe/api --lang js
# Content is followed by your previous annotation
This loop means agents improve over time. Annotations persist across sessions.
## Annotation Best Practices
After using a doc to complete a task, annotate what you learned that wasn't obvious from the doc itself:
- Environment-specific gotchas ("requires raw body for webhook verification")
- Version-specific notes ("v3 API requires different auth header format")
- Project-specific context ("we use the batch endpoint, not individual calls")
- Error resolutions ("rate limit errors need exponential backoff with jitter")
Do NOT annotate information that's already clearly stated in the doc.
## Piping Patterns
# Search, pick first result, fetch
ID=$(chub search "stripe" --json | jq -r '.results[0].id')
chub get "$ID" --lang js -o .context/stripe.md
# Fetch multiple docs at once
chub get openai/chat stripe/api -o .context/
# Check what additional files are available
chub get acme/widgets --json | jq '.additionalFiles'
# Fetch a specific reference file
chub get acme/widgets --file references/advanced.md
# List all your annotations
chub annotate --list --json
## Key Behaviors
- Auto-detect type: `chub get` works for both docs and skills. No need to specify type.
- Auto-infer language: If a doc has only one language variant, --lang is not required.
- Multi-language prompt: If a doc has multiple languages and --lang is not specified, the CLI lists available languages.
- Incremental fetch: Default fetch returns only the entry file. A footer lists additional reference files. Use --file for selective fetch, --full for everything.
- Annotations on fetch: If an annotation exists for an entry, it appears at the end of `chub get` output in both human and JSON modes.
- Multi-source: Config supports multiple sources (URLs and local paths). On ID collision, prefix with source name: `chub get internal:openai/chat`.
- JSON everywhere: All commands support --json for structured output.
## Configuration
File: ~/.chub/config.yaml
sources:
- name: community
url: https://cdn.aichub.org/v1
- name: internal
path: /path/to/local/docs
source: "official,maintainer,community" # trust policy
refresh_interval: 86400 # cache TTL in seconds
telemetry: true # anonymous analytics (opt out: false or CHUB_TELEMETRY=0)