opencode-skills-collection 4.1.19 → 4.1.20
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.
Potentially problematic release.
This version of opencode-skills-collection might be problematic. Click here for more details.
- package/bundled-skills/.antigravity-install-manifest.json +20 -1
- package/bundled-skills/ai-headshot-studio/SKILL.md +107 -99
- package/bundled-skills/ai-image-generation-studio/SKILL.md +108 -93
- package/bundled-skills/ai-logo-maker/SKILL.md +108 -93
- package/bundled-skills/ai-multilingual-dubbing/SKILL.md +108 -93
- package/bundled-skills/ai-photo-restyler/SKILL.md +108 -93
- package/bundled-skills/ai-podcast-voiceover/SKILL.md +108 -93
- package/bundled-skills/aident-loadout/SKILL.md +88 -0
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +27 -254
- package/bundled-skills/antigravity-maintainer-batch-release/agents/openai.yaml +1 -1
- package/bundled-skills/antigravity-maintainer-batch-release/references/component-validation.md +18 -0
- package/bundled-skills/antigravity-maintainer-batch-release/references/core-preview.md +20 -0
- package/bundled-skills/antigravity-maintainer-batch-release/references/maintenance-contract.md +83 -0
- package/bundled-skills/antigravity-maintainer-batch-release/references/maintenance-cycle.md +149 -0
- package/bundled-skills/antigravity-maintainer-batch-release/references/public-surfaces.md +22 -0
- package/bundled-skills/antigravity-maintainer-batch-release/references/skillspector.md +40 -0
- package/bundled-skills/apify-facebook-ads-library-scraper/SKILL.md +197 -0
- package/bundled-skills/apify-facebook-ads-library-scraper/references/gotchas.md +45 -0
- package/bundled-skills/apify-linkedin-jobs-scraper/SKILL.md +181 -0
- package/bundled-skills/apify-linkedin-jobs-scraper/references/gotchas.md +57 -0
- package/bundled-skills/apify-tiktok-scraper/SKILL.md +199 -0
- package/bundled-skills/apify-tiktok-scraper/references/gotchas.md +45 -0
- package/bundled-skills/arcmira-find-quotes/SKILL.md +5 -0
- package/bundled-skills/beatra/SKILL.md +109 -90
- package/bundled-skills/beatra-ai-video-studio/SKILL.md +110 -90
- package/bundled-skills/curlshot/SKILL.md +139 -0
- package/bundled-skills/datacircle/SKILL.md +159 -98
- package/bundled-skills/deed-page/SKILL.md +161 -0
- package/bundled-skills/design-token-contrast/SKILL.md +128 -0
- package/bundled-skills/design-token-contrast/references/contraste-checker.md +330 -0
- package/bundled-skills/ecommerce-listing-image-set/SKILL.md +109 -90
- package/bundled-skills/goal-instruction-writer/LICENSE +21 -0
- package/bundled-skills/goal-instruction-writer/SKILL.md +275 -0
- package/bundled-skills/goal-instruction-writer/references/contribution-walkthrough.md +9 -0
- package/bundled-skills/goal-instruction-writer/references/drift-control.md +160 -0
- package/bundled-skills/goal-instruction-writer/references/examples.md +220 -0
- package/bundled-skills/goal-instruction-writer/references/goal-contract.md +169 -0
- package/bundled-skills/goal-instruction-writer/references/loop-preview.md +113 -0
- package/bundled-skills/keenable-search-mcp/SKILL.md +176 -0
- package/bundled-skills/krexa/SKILL.md +221 -0
- package/bundled-skills/krexa/references/limits.md +42 -0
- package/bundled-skills/krexa/references/setup.md +60 -0
- package/bundled-skills/krexa/references/tools.md +59 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +1 -1
- package/bundled-skills/llmops-platform-engineering/SKILL.md +1 -1
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +1 -1
- package/bundled-skills/music-generation-studio/SKILL.md +109 -90
- package/bundled-skills/outreachgenie-list-audit/LICENSE +21 -0
- package/bundled-skills/outreachgenie-list-audit/SKILL.md +60 -0
- package/bundled-skills/outreachgenie-list-audit/assets/fictional-snapshot.json +256 -0
- package/bundled-skills/outreachgenie-list-audit/references/capture.md +53 -0
- package/bundled-skills/outreachgenie-list-audit/references/checks.md +35 -0
- package/bundled-skills/outreachgenie-list-audit/references/setup.md +25 -0
- package/bundled-skills/outreachgenie-list-audit/scripts/audit.py +766 -0
- package/bundled-skills/outreachgenie-list-audit/scripts/test_audit.py +360 -0
- package/bundled-skills/pangolinfo-amazon-data-research/SKILL.md +170 -0
- package/bundled-skills/poster-design-studio/SKILL.md +109 -90
- package/bundled-skills/ppl-personal-crm/SKILL.md +118 -0
- package/bundled-skills/product-photo-studio/SKILL.md +109 -90
- package/bundled-skills/project-memory-log/LICENSE +21 -0
- package/bundled-skills/project-memory-log/SKILL.md +110 -0
- package/bundled-skills/project-memory-log/references/example-document-catalog.md +22 -0
- package/bundled-skills/project-memory-log/references/example-notes.md +16 -0
- package/bundled-skills/project-memory-log/references/example-operation-log.md +46 -0
- package/bundled-skills/project-memory-log/references/record-formats.md +77 -0
- package/bundled-skills/solidping/SKILL.md +87 -0
- package/bundled-skills/story-bible-continuity/SKILL.md +149 -0
- package/bundled-skills/story-bible-continuity/references/sbc-checker.md +367 -0
- package/bundled-skills/story-bible-continuity/references/story-bible-schema.md +91 -0
- package/bundled-skills/suno-lyrics-to-song/SKILL.md +109 -90
- package/bundled-skills/taasky/SKILL.md +376 -0
- package/bundled-skills/talking-avatar-video/SKILL.md +109 -90
- package/bundled-skills/uiverify-triage-visual-changes/SKILL.md +304 -0
- package/bundled-skills/unpaid-intern/SKILL.md +159 -0
- package/bundled-skills/viral-video-teardown-remake/SKILL.md +109 -90
- package/bundled-skills/voice-cloning-studio/SKILL.md +109 -90
- package/bundled-skills/voiceover-narration-studio/SKILL.md +109 -90
- package/package.json +1 -1
- package/skills_index.json +654 -24
|
@@ -11,7 +11,7 @@ author: beatra-ai
|
|
|
11
11
|
tags: [podcast, tts, voiceover, mcp, paid-api, beatra]
|
|
12
12
|
tools: [claude, codex, cursor, gemini]
|
|
13
13
|
license: "MIT-0"
|
|
14
|
-
license_source: "https://github.com/beatra-ai/ai-podcast-voiceover-skill/blob/
|
|
14
|
+
license_source: "https://github.com/beatra-ai/ai-podcast-voiceover-skill/blob/0fe5c523fc42754ba8d328e2db4df895a6276ee3/LICENSE"
|
|
15
15
|
---
|
|
16
16
|
|
|
17
17
|
# AI Podcast Voiceover Skill
|
|
@@ -24,21 +24,20 @@ Turn an article, notes, or a finished script into a solo podcast episode with a
|
|
|
24
24
|
This catalog entry is a **reviewed pointer, not the executable package**. It
|
|
25
25
|
contains no client code and performs no Beatra operation by itself. The package
|
|
26
26
|
it points to bundles three standard-library Python scripts that make network
|
|
27
|
-
calls
|
|
27
|
+
calls and store a credential. It has no self-updater: it never downloads
|
|
28
|
+
code and never changes its own files. Read
|
|
28
29
|
[Install](#install-pinned-verified-approved-twice) and
|
|
29
30
|
[Security & Safety Notes](#security--safety-notes) before activating it.
|
|
30
31
|
|
|
31
32
|
| Pinned identity | Value |
|
|
32
33
|
| --- | --- |
|
|
33
|
-
| Package | `ai-podcast-voiceover` `0.
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
| Source tree | [`beatra-ai/ai-podcast-voiceover-skill@ddca11e`](https://github.com/beatra-ai/ai-podcast-voiceover-skill/tree/ddca11ec6853184468eab57a5b4b3649e5293f4d/skills/ai-podcast-voiceover) (full SHA `ddca11ec6853184468eab57a5b4b3649e5293f4d`) |
|
|
34
|
+
| Package | `ai-podcast-voiceover` `0.2.5` |
|
|
35
|
+
| Source commit | [`beatra-ai/ai-podcast-voiceover-skill@0fe5c52`](https://github.com/beatra-ai/ai-podcast-voiceover-skill/tree/0fe5c523fc42754ba8d328e2db4df895a6276ee3/skills/ai-podcast-voiceover) (full SHA `0fe5c523fc42754ba8d328e2db4df895a6276ee3`) |
|
|
36
|
+
| Package tree | `3e9432060beedd7f2592804bc928fb26b595e2fd` (Git tree ID of `skills/ai-podcast-voiceover` at that commit) |
|
|
37
37
|
| License | MIT No Attribution (MIT-0) |
|
|
38
38
|
|
|
39
|
-
The
|
|
40
|
-
binaries). Confirm that with the inspect commands below.
|
|
41
|
-
byte-identical to the source tree at the pinned commit.
|
|
39
|
+
The pinned tree holds regular files only (no symlinks, no executable bits, no
|
|
40
|
+
binaries). Confirm that with the inspect commands below.
|
|
42
41
|
|
|
43
42
|
## When to Use This Skill
|
|
44
43
|
|
|
@@ -48,76 +47,55 @@ byte-identical to the source tree at the pinned commit.
|
|
|
48
47
|
|
|
49
48
|
## Install (pinned, verified, approved twice)
|
|
50
49
|
|
|
51
|
-
### Step 1:
|
|
50
|
+
### Step 1: Fetch the pinned tree into a review directory
|
|
52
51
|
|
|
53
|
-
Explain that this
|
|
52
|
+
Explain that this fetches an external package from `github.com`, then ask
|
|
54
53
|
for approval. Only after approval:
|
|
55
54
|
|
|
56
55
|
```bash
|
|
57
56
|
umask 077
|
|
58
57
|
review_dir="$(mktemp -d)"
|
|
59
58
|
cd "$review_dir" || exit 1
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
'ai-podcast-voiceover-skill-0.1.7.zip' | shasum -a 256 -c -
|
|
59
|
+
git clone --quiet --filter=blob:none --no-checkout https://github.com/beatra-ai/ai-podcast-voiceover-skill.git src
|
|
60
|
+
git -C src checkout --quiet 0fe5c523fc42754ba8d328e2db4df895a6276ee3 -- skills/ai-podcast-voiceover
|
|
61
|
+
test "$(git -C src rev-parse '0fe5c523fc42754ba8d328e2db4df895a6276ee3:skills/ai-podcast-voiceover')" = '3e9432060beedd7f2592804bc928fb26b595e2fd' && echo TREE-OK
|
|
64
62
|
```
|
|
65
63
|
|
|
66
|
-
Stop if the
|
|
67
|
-
catalog entry, not from
|
|
64
|
+
Stop if the last command does not print `TREE-OK`. The expected commit and
|
|
65
|
+
tree IDs come from this catalog entry, not from the package or its website,
|
|
66
|
+
and Git addresses every fetched object by its hash.
|
|
68
67
|
|
|
69
68
|
### Step 2: Inspect before activation
|
|
70
69
|
|
|
71
|
-
Before extraction, reject absolute/traversing or out-of-package member paths, duplicates/case collisions, links/devices/executable/binary files and excessive member count/expanded sizes. Extract only after this ZIP preflight passes into a fresh private directory; later link checks do not prevent an escape.
|
|
72
|
-
|
|
73
70
|
```bash
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
# Only after complete member preflight passes:
|
|
77
|
-
unzip -q ai-podcast-voiceover-skill-0.1.7.zip
|
|
78
|
-
find ai-podcast-voiceover -type l -print # expect no output
|
|
79
|
-
find ai-podcast-voiceover -type f -perm -111 -print # expect no output
|
|
80
|
-
grep -n '"auto_update": True' ai-podcast-voiceover/scripts/mcp_client.py
|
|
71
|
+
git -C src ls-tree -r 0fe5c523fc42754ba8d328e2db4df895a6276ee3 -- skills/ai-podcast-voiceover | awk '$1 != "100644"' # expect no output
|
|
72
|
+
grep -n -E 'maybe_auto_update|download_update|_apply_update' src/skills/ai-podcast-voiceover/scripts/mcp_client.py # expect no output
|
|
81
73
|
```
|
|
82
74
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
git clone --quiet --filter=blob:none --no-checkout https://github.com/beatra-ai/ai-podcast-voiceover-skill.git src
|
|
88
|
-
git -C src checkout --quiet ddca11ec6853184468eab57a5b4b3649e5293f4d -- skills/ai-podcast-voiceover
|
|
89
|
-
(cd ai-podcast-voiceover && find . -type f | LC_ALL=C sort | xargs shasum -a 256) > archive.sha
|
|
90
|
-
(cd src/skills/ai-podcast-voiceover && find . -type f | LC_ALL=C sort | xargs shasum -a 256) > tree.sha
|
|
91
|
-
cmp archive.sha tree.sha && echo IDENTICAL
|
|
92
|
-
```
|
|
75
|
+
The first check lists any symlink, executable, or submodule entry; the second
|
|
76
|
+
finds the entry points of the self-updater that earlier versions shipped.
|
|
93
77
|
|
|
94
|
-
Report to the user what the review found: `SKILL.md`, `manifest.json`,
|
|
95
|
-
|
|
78
|
+
Report to the user what the review found: `SKILL.md`, `manifest.json`,
|
|
79
|
+
`install-source.json` (the one-line marker `{"schema_version":1,"source":"github"}`),
|
|
80
|
+
the bundled Markdown references, and `scripts/authorize.py`,
|
|
96
81
|
`scripts/mcp_client.py`, `scripts/uninstall.py` (Python 3.10+, standard
|
|
97
82
|
library only, no dependency installation, no lifecycle hooks). Summarize the
|
|
98
|
-
network, credential, local-state, telemetry, and
|
|
99
|
-
under [Security & Safety Notes](#security--safety-notes).
|
|
83
|
+
network, credential, local-state, telemetry, and version-notice behavior
|
|
84
|
+
listed under [Security & Safety Notes](#security--safety-notes).
|
|
100
85
|
|
|
101
|
-
### Step 3: Copy in
|
|
86
|
+
### Step 3: Copy in
|
|
102
87
|
|
|
103
88
|
Ask for a **second, separate** approval, because this changes agent
|
|
104
89
|
configuration. Then copy the reviewed tree to the host's skills directory
|
|
105
|
-
(Claude Code shown; use the equivalent path for other hosts)
|
|
106
|
-
turn off silent self-update for that exact path:
|
|
90
|
+
(Claude Code shown; use the equivalent path for other hosts):
|
|
107
91
|
|
|
108
92
|
```bash
|
|
109
93
|
dest="$HOME/.claude/skills/ai-podcast-voiceover"
|
|
110
94
|
test ! -e "$dest" && test ! -L "$dest" || { echo "destination exists; stop and ask the user"; exit 1; }
|
|
111
|
-
cp -R ai-podcast-voiceover "$dest"
|
|
112
|
-
python3 "$dest/scripts/mcp_client.py" update --auto off
|
|
95
|
+
cp -R "src/skills/ai-podcast-voiceover" "$dest"
|
|
113
96
|
```
|
|
114
97
|
|
|
115
|
-
|
|
116
|
-
`Automatic Beatra package updates are disabled.` It writes only
|
|
117
|
-
`~/.beatra/updates/<id>/state.json` and makes no network request. Run it
|
|
118
|
-
before `authorize.py`, `verify`, `tools`, `upload`, or `call`: in this
|
|
119
|
-
pinned version self-update is **on by default**. The setting is keyed to the
|
|
120
|
-
resolved install path, so repeat it after moving or re-copying the directory.
|
|
98
|
+
There is no update switch to turn off in this version.
|
|
121
99
|
|
|
122
100
|
### Step 4: Authorize as its own decision
|
|
123
101
|
|
|
@@ -160,16 +138,17 @@ arguments; never submit a replacement while the task is running.
|
|
|
160
138
|
|
|
161
139
|
## Update
|
|
162
140
|
|
|
163
|
-
This
|
|
164
|
-
|
|
165
|
-
|
|
141
|
+
This pinned version cannot update itself: it has no code that downloads or
|
|
142
|
+
replaces package files. `update` only reports what the store or tool that
|
|
143
|
+
installed the copy offers; for a copy installed by the steps above it finds
|
|
144
|
+
no such record and says to update the way you installed it. See the version
|
|
145
|
+
notice under [Security & Safety Notes](#security--safety-notes).
|
|
166
146
|
|
|
167
|
-
To move to a newer version, repeat Steps 1 to 3 for that
|
|
168
|
-
review directory,
|
|
169
|
-
(
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
from `beatra.ai` without changing files.
|
|
147
|
+
To move to a newer version, repeat Steps 1 to 3 for that commit in a new
|
|
148
|
+
review directory, show the user the file-level changes against the installed
|
|
149
|
+
copy (for example `git -C src diff --stat 0fe5c52 <new-commit> -- skills/ai-podcast-voiceover`),
|
|
150
|
+
and replace the directory only after approval. A version not listed in this
|
|
151
|
+
entry has not been reviewed here.
|
|
173
152
|
|
|
174
153
|
## Uninstall
|
|
175
154
|
|
|
@@ -181,21 +160,25 @@ python3 "$dest/scripts/uninstall.py"
|
|
|
181
160
|
|
|
182
161
|
Read the JSON decision. `disconnected` means this was the last Beatra skill on
|
|
183
162
|
the device: the token was revoked (when `revoked` is `true`) and the files
|
|
184
|
-
`credentials.json`, `installation.json`, `host.json`, `skills.json`,
|
|
185
|
-
`
|
|
186
|
-
|
|
187
|
-
|
|
163
|
+
`credentials.json`, `installation.json`, `host.json`, `skills.json`,
|
|
164
|
+
`network.json`, `balance-holds.json`, `pending_authorization.json`, and
|
|
165
|
+
`.authorize.lock` under `~/.beatra` were removed. `keep_connection` means
|
|
166
|
+
another Beatra skill still uses the shared token, which stays.
|
|
167
|
+
`revoke_retry` means the server refused the revocation and nothing changed;
|
|
168
|
+
run it again shortly. The script never deletes the package directory: after
|
|
169
|
+
confirming the path it prints with the user, delete `$dest`.
|
|
188
170
|
|
|
189
171
|
`uninstall.py` does not remove `~/.beatra/updates/`. When the decision is
|
|
190
172
|
`disconnected` and no other Beatra skill is installed, remove that directory
|
|
191
|
-
|
|
192
|
-
days idle and can be revoked at once in the
|
|
173
|
+
and then the empty `~/.beatra`; otherwise leave them. A token that could not
|
|
174
|
+
be revoked expires after 15 days idle and can be revoked at once in the
|
|
175
|
+
Beatra Console under Agents.
|
|
193
176
|
|
|
194
177
|
## Best Practices
|
|
195
178
|
|
|
196
179
|
- ✅ Keep one approval per paid call, per upload set, and per install step.
|
|
197
180
|
- ✅ Report net charged credits from the terminal task, not the estimate.
|
|
198
|
-
- ❌ Do not
|
|
181
|
+
- ❌ Do not replace the installed copy with an unreviewed version silently.
|
|
199
182
|
- ❌ Do not print, paste, or move the token out of `~/.beatra/credentials.json`.
|
|
200
183
|
- ❌ Do not retry a paid call with a new request ID after an uncertain response.
|
|
201
184
|
|
|
@@ -206,47 +189,79 @@ days idle and can be revoked at once in the Beatra Console under Agents.
|
|
|
206
189
|
upstream model providers and can change; the service is provided as is.
|
|
207
190
|
- Outputs are probabilistic, not guaranteed unique or non-infringing, and need
|
|
208
191
|
human review before publication.
|
|
209
|
-
- This catalog entry reviews only the pinned
|
|
192
|
+
- This catalog entry reviews only the pinned tree above. A newer version is
|
|
210
193
|
a different review.
|
|
211
194
|
|
|
212
195
|
## Security & Safety Notes
|
|
213
196
|
|
|
214
197
|
`risk: critical` is deliberate.
|
|
215
198
|
|
|
216
|
-
- **Network.**
|
|
217
|
-
|
|
218
|
-
`
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
`
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
199
|
+
- **Network.** Every request is HTTPS and refuses redirects. Authorization
|
|
200
|
+
uses `api.beatra.ai` and tool calls go to `mcp.beatra.ai`; an upload is a
|
|
201
|
+
`PUT` of the approved file to the HTTPS address the server returns, without
|
|
202
|
+
the bearer token. Unless a cached decision is still valid (10 minutes to 7
|
|
203
|
+
days), each run first asks `https://api.beatra.ai/skill-route`, and also
|
|
204
|
+
`https://api.beatra.cn/skill-route` when the first is slow or answers `cn`,
|
|
205
|
+
which network to use. These probes carry no credential or package identity.
|
|
206
|
+
When the answer is `cn`, authorization and tool calls go to `api.beatra.cn`
|
|
207
|
+
and `mcp.beatra.cn` with the same bearer token, and the version notice
|
|
208
|
+
reads from `www.beatra.cn`; Beatra serves these `.cn` hosts from mainland
|
|
209
|
+
China.
|
|
210
|
+
`python3 "$dest/scripts/mcp_client.py" network --use ai` pins the `.ai`
|
|
211
|
+
hosts and stops the probes; a failed version-notice read can still retry
|
|
212
|
+
once on the other network.
|
|
213
|
+
- **Version notice, no self-update.** This version has no code that downloads
|
|
214
|
+
or replaces package files and writes nothing inside the install directory.
|
|
215
|
+
Before `verify`, `tools`, `upload`, or `call`, at most once every 24 hours
|
|
216
|
+
per install path, it records the check time and looks, read-only, for
|
|
217
|
+
records another installer left beside the package (ClawHub `origin.json`,
|
|
218
|
+
SkillHub or `skills` CLI lock entries, `gh skill` frontmatter). A copy
|
|
219
|
+
installed by the steps above normally has none and makes no request. When
|
|
220
|
+
one is found, it reads `https://beatra.ai/skills/ai-podcast-voiceover/sources.json`
|
|
221
|
+
(no credential, 3-second timeout, 64 KiB cap) and, if that installer offers a
|
|
222
|
+
newer version, prints one line to stderr with the installer's own update
|
|
223
|
+
command. It never runs the command.
|
|
227
224
|
- **Uploads and third parties.** Prompts and uploaded media are sent to Beatra
|
|
228
225
|
and forwarded to the third-party model provider executing the task. Beatra
|
|
229
|
-
|
|
226
|
+
runs the service outside mainland China; on the `cn` route (see Network)
|
|
227
|
+
requests reach it through Beatra's hosts in mainland China. See the
|
|
230
228
|
[privacy policy](https://beatra.ai/en/privacy).
|
|
231
229
|
- **Billing.** Paid tools consume prepaid credits. Credits for tasks that fail
|
|
232
230
|
for reasons attributable to Beatra or the upstream model are returned
|
|
233
231
|
automatically; otherwise purchases are non-refundable, and actual usage can
|
|
234
232
|
exceed the estimate and leave a negative balance. See the
|
|
235
233
|
[terms](https://beatra.ai/en/terms).
|
|
236
|
-
- **Credentials.** `authorize.py` runs an OAuth device flow, opens the browser
|
|
237
|
-
and stores one bearer token in
|
|
238
|
-
`0700`, file `0600`). The token never
|
|
239
|
-
or output. It carries full Beatra
|
|
240
|
-
sliding 15-day idle lifetime, and is
|
|
241
|
-
device.
|
|
234
|
+
- **Credentials.** `authorize.py` runs an OAuth device flow, opens the browser
|
|
235
|
+
on the approval page, and stores one bearer token in
|
|
236
|
+
`~/.beatra/credentials.json` (directory `0700`, file `0600`). The token never
|
|
237
|
+
goes into argv, environment variables, or output. It carries full Beatra
|
|
238
|
+
scope, including `wallet:spend`, has a sliding 15-day idle lifetime, and is
|
|
239
|
+
shared by every Beatra skill on the device. While the user has not yet
|
|
240
|
+
selected Allow, the pending device code is kept in
|
|
241
|
+
`~/.beatra/pending_authorization.json` (`0600`) so a rerun finishes the same
|
|
242
|
+
approval instead of opening a new one. When `verify`, `tools`, `upload`, or
|
|
243
|
+
`call` finds no working token, the client makes one check of that saved
|
|
244
|
+
approval and stores the token if the user has already selected Allow; it
|
|
245
|
+
never starts a new authorization or opens a browser.
|
|
242
246
|
- **Local state.** `~/.beatra/` also holds `installation.json` (random
|
|
243
247
|
installation reference), `host.json` (agent platform and hostname),
|
|
244
|
-
`skills.json` (installed Beatra skill paths), `
|
|
245
|
-
|
|
246
|
-
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
248
|
+
`skills.json` (installed Beatra skill paths), `network.json` (route
|
|
249
|
+
decision, with a country code when the route answer includes one),
|
|
250
|
+
`balance-holds.json` (after an insufficient-credit refusal, that tool is
|
|
251
|
+
answered locally for up to 30 minutes; `call --recheck-balance` sends one
|
|
252
|
+
call), a short-lived `.authorize.lock`, and, per install path,
|
|
253
|
+
`updates/<id>/state.json` (last version check), `source.json` (install
|
|
254
|
+
source), and `registration.json` (last registration). Files are `0600`
|
|
255
|
+
except `host.json`, which follows the umask.
|
|
256
|
+
- **Telemetry.** Authorization sends the hostname as the device name, the
|
|
257
|
+
package slug and version, the detected agent platform (for example
|
|
258
|
+
`claude-code`, from environment variables), and the installation reference.
|
|
259
|
+
After connecting, at most once a day unless the version, platform, route, or
|
|
260
|
+
install source changes, the client makes a non-billable
|
|
261
|
+
`beatra.installations.register` call with those package and platform
|
|
262
|
+
fields, the release channel, the network route, the install source
|
|
263
|
+
(`github` for this tree), and coarse runtime facts: OS and OS version, CPU
|
|
264
|
+
architecture, Python version, locale, and UTC offset. Every tool call adds
|
|
250
265
|
`source_package_slug` and `source_platform`. There is no opt-out for these
|
|
251
266
|
fields.
|
|
252
267
|
- **Retention.** Account data is kept for the life of the account. Task
|
|
@@ -258,7 +273,7 @@ days idle and can be revoked at once in the Beatra Console under Agents.
|
|
|
258
273
|
|
|
259
274
|
## Additional Resources
|
|
260
275
|
|
|
261
|
-
- [Source tree at the pinned commit](https://github.com/beatra-ai/ai-podcast-voiceover-skill/tree/
|
|
276
|
+
- [Source tree at the pinned commit](https://github.com/beatra-ai/ai-podcast-voiceover-skill/tree/0fe5c523fc42754ba8d328e2db4df895a6276ee3/skills/ai-podcast-voiceover)
|
|
262
277
|
- [Product page](https://beatra.ai/skills/ai-podcast-voiceover)
|
|
263
278
|
- [Terms](https://beatra.ai/en/terms) and [privacy policy](https://beatra.ai/en/privacy)
|
|
264
279
|
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aident-loadout
|
|
3
|
+
description: "Run multi-step work across apps the user connected in Aident Loadout: live action schemas, connection checks, cost preflight, and approval before side effects."
|
|
4
|
+
category: api-integration
|
|
5
|
+
risk: critical
|
|
6
|
+
source: "https://github.com/Aident-AI/aident-skill/tree/main/aident-loadout/skills/aident-loadout"
|
|
7
|
+
source_repo: Aident-AI/aident-skill
|
|
8
|
+
source_type: official
|
|
9
|
+
date_added: "2026-10-16"
|
|
10
|
+
author: Aident-AI
|
|
11
|
+
tags: [mcp, integrations, oauth, vault, audit, agent-tools]
|
|
12
|
+
tools: [claude-code, codex, cursor, gemini]
|
|
13
|
+
license: "MIT"
|
|
14
|
+
license_source: "https://github.com/Aident-AI/aident-skill/blob/main/LICENSE"
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Aident Loadout
|
|
18
|
+
|
|
19
|
+
Aident Loadout (https://aident.ai) is a capability layer for AI agents. The user
|
|
20
|
+
connects apps once (OAuth in the browser, API keys kept in Aident Vault), and
|
|
21
|
+
any MCP client can search those apps' actions by intent, read the live schema,
|
|
22
|
+
check cost, and run the action. Every run is recorded in Audit. The tools come
|
|
23
|
+
from the hosted `aident` MCP server.
|
|
24
|
+
|
|
25
|
+
## When to Use
|
|
26
|
+
|
|
27
|
+
- Use when the user asks you to look something up in, or do something with, a service they connected through Aident Loadout (for example Gmail, Slack, GitHub, Linear, Notion or Google Sheets).
|
|
28
|
+
- Use when the user wants to know which Aident action can do a task, what it will cost, or whether an account is connected.
|
|
29
|
+
- Use when the user needs a reusable multi-step procedure from Aident's 400+ Skills (research, outreach, content, operations).
|
|
30
|
+
- Do not use it for questions you can answer from the current conversation, or for services the user has not connected.
|
|
31
|
+
|
|
32
|
+
## Connect once
|
|
33
|
+
|
|
34
|
+
If the `aident` tools are missing, tell the user:
|
|
35
|
+
|
|
36
|
+
- Claude Code: `claude mcp add --transport http aident https://loadout.aident.ai/mcp`, then sign in with OAuth in the browser on first use.
|
|
37
|
+
- Other MCP clients: add a Streamable HTTP server at `https://loadout.aident.ai/mcp` and sign in with OAuth.
|
|
38
|
+
- Docs: https://docs.aident.ai/loadout/overview
|
|
39
|
+
|
|
40
|
+
Never ask for credentials, API keys, MFA codes or other secrets in chat.
|
|
41
|
+
|
|
42
|
+
## Workflow
|
|
43
|
+
|
|
44
|
+
1. Identify the concrete outcome and the services involved.
|
|
45
|
+
2. If the exact canonical action name is unknown, call `capabilities_search` with a short description of the operation.
|
|
46
|
+
3. Call `capabilities_get` before the first use of an action to read its current input schema, side effects, account requirements and approval behavior.
|
|
47
|
+
4. Use `vault` to check connection status. If a connection is missing, give the user the returned Aident-hosted connection URL.
|
|
48
|
+
5. Call `capabilities_preflight` before a metered or dynamically priced action, and explain the returned cost or approval requirement before going on.
|
|
49
|
+
6. Before a side-effecting action, state the target, the effect and the important inputs. Get any acknowledgement the action requires and keep the exact acknowledged request.
|
|
50
|
+
7. Call `capabilities_execute` with the exact canonical action name and schema-valid input. Report the result without exposing internal identifiers or private provider data the user did not ask for.
|
|
51
|
+
|
|
52
|
+
Use `skills_search` and `skills_read` when the user needs domain guidance or a multi-step procedure rather than a single known action.
|
|
53
|
+
|
|
54
|
+
## Examples
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
User: Find the open Linear issues assigned to me and post a summary in #standup on Slack.
|
|
58
|
+
|
|
59
|
+
1. capabilities_search "list Linear issues assigned to me" and "post Slack message"
|
|
60
|
+
2. capabilities_get on both actions to read their schemas
|
|
61
|
+
3. vault: confirm Linear and Slack are connected (if not, share the connection URL and stop)
|
|
62
|
+
4. capabilities_execute the Linear read, then draft the summary
|
|
63
|
+
5. Show the exact Slack message and channel, wait for the user's yes
|
|
64
|
+
6. capabilities_execute the Slack post and report the result
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
User: How much would it cost to scrape these 20 pages?
|
|
69
|
+
|
|
70
|
+
1. capabilities_search "scrape a web page"
|
|
71
|
+
2. capabilities_preflight with the 20 URLs
|
|
72
|
+
3. Report the returned cost and ask before running anything
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Rules
|
|
76
|
+
|
|
77
|
+
- Treat connection, acknowledgement and credit-approval requirements as hard gates.
|
|
78
|
+
- Do not send, publish, delete, disconnect or change external data unless the user asked for that effect and any required acknowledgement is satisfied.
|
|
79
|
+
- Do not use Aident Loadout to buy subscriptions, credits, tokens or other digital goods.
|
|
80
|
+
- Keep provider access inside the user's authorized accounts and the requested task.
|
|
81
|
+
- Do not claim an action succeeded until its terminal result confirms success.
|
|
82
|
+
|
|
83
|
+
## Limitations
|
|
84
|
+
|
|
85
|
+
- Requires an Aident account and the `aident` MCP server connected; actions only reach apps the user has connected or built-in Aident services.
|
|
86
|
+
- Built-in and metered services draw from the user's Aident balance; costs come from `capabilities_preflight` and can change.
|
|
87
|
+
- Action schemas change over time, so always read the live schema with `capabilities_get` instead of reusing remembered inputs.
|
|
88
|
+
- The hosted service is closed source; this skill file is MIT-licensed.
|