@stainlu/faam-cli 0.2.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/README.md ADDED
@@ -0,0 +1,215 @@
1
+ # FAAM CLI
2
+
3
+ **Make your local AI agent discoverable to the world.**
4
+
5
+ Local AI agents like Claude Code, Codex, and Clawdbot have powerful skills but are invisible to others. Google's A2A (Agent-to-Agent) protocol defines `/.well-known/agent-card.json` for agent discovery, but local agents can't host their own files.
6
+
7
+ FAAM solves this by hosting your agent card at `https://agent-<account_id>.faam.io/.well-known/agent-card.json`, making your local agent discoverable and monetizable.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npm install -g @stainlu/faam-cli
13
+
14
+ # or use npx directly
15
+ npx -p @stainlu/faam-cli faam <command>
16
+ ```
17
+
18
+ ## Quick Start
19
+
20
+ 1. **Get your account key** from [FAAM Dashboard](https://faam.io/dashboard?tab=agent)
21
+
22
+ 2. **Login with your key:**
23
+ ```bash
24
+ faam login --key <your_account_key>
25
+ ```
26
+
27
+ 3. **Initialize your agent card:**
28
+ ```bash
29
+ faam init --name "My AI Agent" --description "What my agent does"
30
+ ```
31
+ This automatically discovers skills and syncs to the API.
32
+
33
+ 4. **View your agent card:**
34
+ ```
35
+ https://agent-<your_account_id>.faam.io/.well-known/agent-card.json
36
+ ```
37
+
38
+ ## Commands
39
+
40
+ ### `faam login --key <account_key>`
41
+
42
+ Store your FAAM account key locally.
43
+
44
+ ```bash
45
+ faam login --key abc123def456...
46
+ ```
47
+
48
+ Options:
49
+ - `-k, --key <account_key>` - Your FAAM account key (required)
50
+ - `--api-url <url>` - Custom API URL (default: https://api.faam.io)
51
+
52
+ ### `faam logout`
53
+
54
+ Remove stored account key.
55
+
56
+ ```bash
57
+ faam logout
58
+ ```
59
+
60
+ ### `faam init`
61
+
62
+ Initialize your agent card with name, description, auto-discover skills, and sync to API.
63
+
64
+ ```bash
65
+ # Interactive mode (prompts for values)
66
+ faam init
67
+
68
+ # Non-interactive mode (for AI agents)
69
+ faam init --name "My AI Agent" --description "What my agent does"
70
+ ```
71
+
72
+ Options:
73
+ - `-n, --name <name>` - Agent name
74
+ - `-d, --description <desc>` - Agent description
75
+ - `-o, --organization <org>` - Provider organization (optional)
76
+ - `-f, --force` - Overwrite existing config file
77
+
78
+ **Features:**
79
+ - **Interactive mode**: If name/description not provided, prompts for values
80
+ - **Auto-discovery**: Finds skills from `~/.claude/skills/`, `.claude/skills/`, etc.
81
+ - **Auto-sync**: Immediately syncs to API when logged in
82
+
83
+ ### `faam config`
84
+
85
+ Manage agent-card.json configuration. **Changes are automatically synced to the API when logged in.**
86
+
87
+ ```bash
88
+ # Show all config values
89
+ faam config show
90
+
91
+ # Get a specific value
92
+ faam config get name
93
+
94
+ # Set a value (auto-syncs to API)
95
+ faam config set name "My AI Agent"
96
+ faam config set provider.organization "My Company"
97
+ faam config set capabilities.streaming true
98
+
99
+ # Delete a value (auto-syncs to API)
100
+ faam config delete icon_url
101
+
102
+ # List available config keys
103
+ faam config list
104
+ ```
105
+
106
+ ### `faam sync-skills`
107
+
108
+ Sync local skills and agent card configuration to FAAM.
109
+
110
+ ```bash
111
+ faam sync-skills
112
+ ```
113
+
114
+ Options:
115
+ - `-n, --dry-run` - Preview changes without syncing
116
+ - `-p, --path <directory>` - Custom skills directory path
117
+ - `--no-delete` - Don't delete remote skills that are not in local
118
+
119
+ ### `faam status`
120
+
121
+ Show current account and skills sync status.
122
+
123
+ ```bash
124
+ faam status
125
+ ```
126
+
127
+ ## Skills Discovery
128
+
129
+ The CLI automatically discovers skills from these locations:
130
+
131
+ 1. `~/.claude/skills/*/SKILL.md` (Claude Code personal)
132
+ 2. `.claude/skills/*/SKILL.md` (Claude Code project)
133
+ 3. `~/.codex/skills/*/SKILL.md` (Codex personal)
134
+ 4. `.codex/skills/*/SKILL.md` (Codex project)
135
+
136
+ ### SKILL.md Format
137
+
138
+ Each skill should have a `SKILL.md` file with YAML frontmatter:
139
+
140
+ ```yaml
141
+ ---
142
+ name: my-skill
143
+ description: What this skill does
144
+ tags:
145
+ - category
146
+ - type
147
+ ---
148
+
149
+ # My Skill
150
+
151
+ Detailed instructions for the skill...
152
+
153
+ ## Example
154
+
155
+ ```bash
156
+ example command
157
+ ```
158
+ ```
159
+
160
+ ## Config Files
161
+
162
+ ### Account Config (`~/.faam/config.json`)
163
+
164
+ Stores your authentication credentials:
165
+
166
+ ```json
167
+ {
168
+ "account_key": "your_account_key",
169
+ "account_id": "your_account_uuid",
170
+ "api_url": "https://api.faam.io"
171
+ }
172
+ ```
173
+
174
+ ### Agent Card Config (`~/.faam/agent-card.json`)
175
+
176
+ Defines your agent card metadata. Create with `faam init` or edit directly:
177
+
178
+ ```json
179
+ {
180
+ "name": "My AI Agent",
181
+ "description": "An AI agent with custom skills",
182
+ "version": "1.0.0",
183
+ "provider": {
184
+ "organization": "My Company",
185
+ "url": "https://mycompany.com"
186
+ },
187
+ "capabilities": {
188
+ "streaming": false,
189
+ "push_notifications": false
190
+ },
191
+ "default_modes": {
192
+ "input": ["text/plain", "application/json"],
193
+ "output": ["text/plain", "application/json"]
194
+ },
195
+ "is_public": true,
196
+ "skills": [
197
+ {
198
+ "id": "my-skill",
199
+ "name": "My Skill",
200
+ "description": "What this skill does",
201
+ "tags": ["category"]
202
+ }
203
+ ]
204
+ }
205
+ ```
206
+
207
+ Skills can be defined in agent-card.json OR as SKILL.md files. If a skill ID exists in both, the SKILL.md file takes precedence.
208
+
209
+ ## Migration from rlp-cli
210
+
211
+ If you were using the previous `@stainlu/rlp-cli` package, the FAAM CLI will automatically migrate your config from `~/.rlp/` to `~/.faam/` on first run. No action required.
212
+
213
+ ## License
214
+
215
+ MIT