@framers/agentos-skills 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/README.md +78 -0
- package/package.json +40 -0
- package/registry/curated/1password/SKILL.md +53 -0
- package/registry/curated/apple-notes/SKILL.md +45 -0
- package/registry/curated/apple-reminders/SKILL.md +46 -0
- package/registry/curated/coding-agent/SKILL.md +40 -0
- package/registry/curated/discord-helper/SKILL.md +43 -0
- package/registry/curated/git/SKILL.md +32 -0
- package/registry/curated/github/SKILL.md +54 -0
- package/registry/curated/healthcheck/SKILL.md +43 -0
- package/registry/curated/image-gen/SKILL.md +44 -0
- package/registry/curated/notion/SKILL.md +43 -0
- package/registry/curated/obsidian/SKILL.md +42 -0
- package/registry/curated/slack-helper/SKILL.md +42 -0
- package/registry/curated/spotify-player/SKILL.md +44 -0
- package/registry/curated/summarize/SKILL.md +40 -0
- package/registry/curated/trello/SKILL.md +43 -0
- package/registry/curated/weather/SKILL.md +37 -0
- package/registry/curated/whisper-transcribe/SKILL.md +58 -0
- package/registry.json +363 -0
- package/types.d.ts +76 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: slack-helper
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Manage Slack workspaces, channels, messages, and integrations through the Slack API.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: communication
|
|
8
|
+
tags: [slack, messaging, workspace, notifications, team-chat]
|
|
9
|
+
requires_secrets: [slack.bot_token, slack.app_token]
|
|
10
|
+
requires_tools: []
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\uD83D\uDCAC"
|
|
14
|
+
primaryEnv: SLACK_BOT_TOKEN
|
|
15
|
+
homepage: https://api.slack.com
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Slack Workspace Helper
|
|
19
|
+
|
|
20
|
+
You can interact with Slack workspaces to send messages, manage channels, search conversation history, and handle notifications. Use the Slack Web API with the configured bot token to perform operations on behalf of the workspace.
|
|
21
|
+
|
|
22
|
+
When sending messages, format them using Slack's Block Kit for rich layouts including sections, buttons, and interactive elements. Always respect channel topics and purposes when posting -- do not send off-topic messages. For direct messages, confirm the recipient before sending sensitive information.
|
|
23
|
+
|
|
24
|
+
For channel management, you can create, archive, and configure channels. When searching messages, use Slack's search modifiers like `from:`, `in:`, `has:`, and date ranges for precise results. Summarize long conversation threads concisely when the user asks for a recap.
|
|
25
|
+
|
|
26
|
+
Handle file sharing by uploading to appropriate channels with descriptive titles. Monitor and respond to mentions and reactions when operating as an active bot. Always paginate through results when dealing with large datasets like channel member lists or message histories.
|
|
27
|
+
|
|
28
|
+
## Examples
|
|
29
|
+
|
|
30
|
+
- "Send a message to #engineering: 'Deploy completed successfully'"
|
|
31
|
+
- "Search for messages about the auth bug in #backend from last week"
|
|
32
|
+
- "Create a new channel called #project-alpha and invite the backend team"
|
|
33
|
+
- "Summarize the last 20 messages in #general"
|
|
34
|
+
- "Set a reminder in Slack for the team standup at 9am"
|
|
35
|
+
|
|
36
|
+
## Constraints
|
|
37
|
+
|
|
38
|
+
- Bot token scopes determine which operations are available. Common scopes needed: `chat:write`, `channels:read`, `channels:manage`, `search:read`, `files:write`.
|
|
39
|
+
- Rate limits apply: Tier 1 methods allow 1 request/second, Tier 2 allow 20/minute.
|
|
40
|
+
- Cannot access messages in channels the bot has not been invited to.
|
|
41
|
+
- File uploads are limited to 1GB per file.
|
|
42
|
+
- Message history retention depends on the workspace plan.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spotify-player
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Control Spotify playback, manage playlists, search music, and get recommendations via the Spotify API.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: media
|
|
8
|
+
tags: [spotify, music, playback, playlists, streaming, audio]
|
|
9
|
+
requires_secrets: [spotify.client_id, spotify.client_secret, spotify.refresh_token]
|
|
10
|
+
requires_tools: []
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\uD83C\uDFB5"
|
|
14
|
+
primaryEnv: SPOTIFY_CLIENT_ID
|
|
15
|
+
homepage: https://developer.spotify.com
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Spotify Playback Control
|
|
19
|
+
|
|
20
|
+
You can control Spotify playback, manage playlists, search the music catalog, and get personalized recommendations using the Spotify Web API. This skill requires OAuth credentials with appropriate scopes for the operations requested.
|
|
21
|
+
|
|
22
|
+
For playback control, you can play, pause, skip, seek, adjust volume, toggle shuffle, and set repeat mode on the user's active devices. Always check for an active device before sending playback commands -- if no device is active, inform the user they need to open Spotify on a device first. Queue tracks for upcoming playback with the add-to-queue endpoint.
|
|
23
|
+
|
|
24
|
+
When searching for music, use Spotify's search API with type filters (track, album, artist, playlist) for precise results. Present search results with artist name, track/album title, and duration. For playlist management, create, modify, and reorder playlists. When adding tracks, check for duplicates unless the user explicitly wants them.
|
|
25
|
+
|
|
26
|
+
For recommendations, use the recommendations endpoint with seed tracks, artists, or genres, combined with tunable attributes (energy, danceability, tempo, valence) to match the user's mood or activity. Present recommendations with enough context (genre, popularity, preview) for the user to make informed choices.
|
|
27
|
+
|
|
28
|
+
## Examples
|
|
29
|
+
|
|
30
|
+
- "Play 'Bohemian Rhapsody' by Queen"
|
|
31
|
+
- "Skip to the next track"
|
|
32
|
+
- "Create a playlist called 'Morning Focus' with chill electronic tracks"
|
|
33
|
+
- "What's currently playing?"
|
|
34
|
+
- "Recommend upbeat tracks similar to Daft Punk for a workout"
|
|
35
|
+
- "Add this song to my 'Favorites 2026' playlist"
|
|
36
|
+
|
|
37
|
+
## Constraints
|
|
38
|
+
|
|
39
|
+
- Playback control requires Spotify Premium on the target account.
|
|
40
|
+
- An active Spotify device (app, web player, smart speaker) must be open for playback commands.
|
|
41
|
+
- OAuth scopes needed: `user-modify-playback-state`, `user-read-playback-state`, `playlist-modify-public`, `playlist-modify-private`, `user-library-read`.
|
|
42
|
+
- Spotify API rate limits apply; batch operations when possible.
|
|
43
|
+
- 30-second preview URLs are available for most tracks but full playback requires the Spotify client.
|
|
44
|
+
- Cannot download or export audio files.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: summarize
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Summarize text content, web pages, documents, and long-form articles into concise, structured summaries.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: information
|
|
8
|
+
tags: [summarization, text-processing, tldr, reading, content-analysis]
|
|
9
|
+
requires_secrets: []
|
|
10
|
+
requires_tools: [web-search]
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\uD83D\uDCDD"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Text and URL Summarization
|
|
17
|
+
|
|
18
|
+
You can summarize text content, web pages, articles, documents, and other long-form material into concise, structured summaries. Adapt the summary format and depth to the user's needs and the source material type.
|
|
19
|
+
|
|
20
|
+
When summarizing, first identify the content type (news article, technical documentation, research paper, meeting transcript, etc.) and adjust your approach accordingly. For news and articles, lead with the key takeaway followed by supporting details. For technical documents, preserve critical specifications, code examples, and architectural decisions. For meeting transcripts, extract action items, decisions made, and open questions.
|
|
21
|
+
|
|
22
|
+
Provide summaries at multiple levels when appropriate: a one-line TLDR, a paragraph-length executive summary, and a structured bullet-point breakdown of key sections. Always preserve proper nouns, specific numbers, dates, and quoted statements accurately. Flag any claims that appear unsubstantiated or controversial.
|
|
23
|
+
|
|
24
|
+
When summarizing URLs, fetch the page content and extract the main article body, ignoring navigation, ads, and sidebar content. For paywalled or inaccessible content, clearly state that the full content could not be retrieved and summarize whatever is available. Support chaining multiple URLs for comparative summaries.
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
|
|
28
|
+
- "Summarize this article: https://example.com/long-article"
|
|
29
|
+
- "Give me a TLDR of the last 3 messages in this conversation"
|
|
30
|
+
- "Summarize these meeting notes into action items and decisions"
|
|
31
|
+
- "Compare and summarize these two technical proposals"
|
|
32
|
+
- "Summarize this research paper, focusing on methodology and findings"
|
|
33
|
+
|
|
34
|
+
## Constraints
|
|
35
|
+
|
|
36
|
+
- Summary quality depends on the completeness of source material available.
|
|
37
|
+
- Paywalled or authentication-gated content may not be fully accessible.
|
|
38
|
+
- Very long documents (100+ pages) should be summarized in sections rather than all at once.
|
|
39
|
+
- Summaries are interpretive; always offer to provide the original text for verification of specific claims.
|
|
40
|
+
- Cannot summarize audio/video content directly (requires transcription first).
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: trello
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Manage Trello boards, lists, cards, checklists, and team workflows via the Trello API.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: productivity
|
|
8
|
+
tags: [trello, kanban, project-management, boards, tasks, workflow]
|
|
9
|
+
requires_secrets: [trello.api_key, trello.token]
|
|
10
|
+
requires_tools: []
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\uD83D\uDCCB"
|
|
14
|
+
primaryEnv: TRELLO_API_KEY
|
|
15
|
+
homepage: https://developer.atlassian.com/cloud/trello
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Trello Board Management
|
|
19
|
+
|
|
20
|
+
You can manage Trello boards, lists, and cards to organize projects and track workflows. Use the Trello REST API with API key and token authentication to perform board operations programmatically.
|
|
21
|
+
|
|
22
|
+
When managing cards, always provide complete information: title, description, due dates, labels, and assigned members. Move cards between lists to reflect workflow progress (e.g., To Do -> In Progress -> Done). Create checklists on cards for multi-step tasks and update individual checklist items as they are completed. Use labels consistently with the board's established color/naming conventions.
|
|
23
|
+
|
|
24
|
+
For board operations, create new boards with predefined list structures that match common workflows (Backlog, To Do, In Progress, Review, Done). When querying boards, filter cards by list, label, member, or due date to provide focused views. Archive completed cards periodically to keep boards clean, but never delete cards without explicit user confirmation.
|
|
25
|
+
|
|
26
|
+
When organizing work, use card descriptions for detailed specifications, attach relevant files and links, and add comments for status updates and discussions. Support Power-Up integrations where applicable (Calendar, Custom Fields). Batch related operations together to minimize API calls and provide atomic updates.
|
|
27
|
+
|
|
28
|
+
## Examples
|
|
29
|
+
|
|
30
|
+
- "Create a new card 'Implement login page' in the To Do list with a checklist of subtasks"
|
|
31
|
+
- "Move all cards labeled 'urgent' to the top of the In Progress list"
|
|
32
|
+
- "Show me all cards assigned to me that are due this week"
|
|
33
|
+
- "Archive all cards in the Done list that were completed more than 30 days ago"
|
|
34
|
+
- "Add a comment to card #42: 'Blocked by API dependency -- see PR #15'"
|
|
35
|
+
|
|
36
|
+
## Constraints
|
|
37
|
+
|
|
38
|
+
- API rate limits: 100 requests per 10-second window per token.
|
|
39
|
+
- Each board is limited to 5,000 cards (including archived).
|
|
40
|
+
- Attachments are limited to 250 per card, 10MB each per file.
|
|
41
|
+
- Cannot execute Trello Automations (Butler rules) via API; only manual operations.
|
|
42
|
+
- Board templates and Power-Up configurations require additional API access.
|
|
43
|
+
- Webhook creation requires a publicly accessible callback URL.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: weather
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Look up current weather conditions, forecasts, and severe weather alerts for any location worldwide.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: information
|
|
8
|
+
tags: [weather, forecast, climate, location]
|
|
9
|
+
requires_secrets: []
|
|
10
|
+
requires_tools: [web-search]
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\u2600\uFE0F"
|
|
14
|
+
homepage: https://openweathermap.org
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Weather Lookup
|
|
18
|
+
|
|
19
|
+
You can retrieve current weather conditions, multi-day forecasts, and severe weather alerts for any location the user specifies. Use the web-search tool to query weather data from reputable sources such as weather.gov, OpenWeatherMap, or AccuWeather.
|
|
20
|
+
|
|
21
|
+
When the user asks about weather, always clarify the location if it is ambiguous. Provide temperatures in both Fahrenheit and Celsius unless the user specifies a preference. Include relevant details like humidity, wind speed, precipitation chance, and UV index when available.
|
|
22
|
+
|
|
23
|
+
For forecasts, present information in a concise, scannable format. Highlight any severe weather warnings or advisories prominently at the top of your response. If the user asks about historical weather or climate averages, note that your data is limited to what is available through web search results.
|
|
24
|
+
|
|
25
|
+
## Examples
|
|
26
|
+
|
|
27
|
+
- "What's the weather in San Francisco right now?"
|
|
28
|
+
- "Give me a 5-day forecast for Tokyo"
|
|
29
|
+
- "Are there any severe weather alerts in the Midwest?"
|
|
30
|
+
- "What's the temperature in Berlin in Celsius?"
|
|
31
|
+
|
|
32
|
+
## Constraints
|
|
33
|
+
|
|
34
|
+
- Weather data accuracy depends on the web search results available at query time.
|
|
35
|
+
- Historical weather data may be limited or unavailable.
|
|
36
|
+
- Hyper-local micro-climate data (e.g., specific street-level conditions) is not reliably available.
|
|
37
|
+
- Always attribute the data source when possible.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: whisper-transcribe
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Transcribe audio and video files to text using OpenAI Whisper or compatible speech-to-text APIs.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: media
|
|
8
|
+
tags: [transcription, whisper, speech-to-text, audio, stt, voice]
|
|
9
|
+
requires_secrets: [openai.api_key]
|
|
10
|
+
requires_tools: [filesystem]
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\uD83C\uDF99\uFE0F"
|
|
14
|
+
primaryEnv: OPENAI_API_KEY
|
|
15
|
+
homepage: https://platform.openai.com/docs/guides/speech-to-text
|
|
16
|
+
requires:
|
|
17
|
+
anyBins: ['ffmpeg', 'ffprobe']
|
|
18
|
+
install:
|
|
19
|
+
- id: brew-ffmpeg
|
|
20
|
+
kind: brew
|
|
21
|
+
formula: ffmpeg
|
|
22
|
+
bins: ['ffmpeg', 'ffprobe']
|
|
23
|
+
label: 'Install ffmpeg (brew)'
|
|
24
|
+
- id: apt-ffmpeg
|
|
25
|
+
kind: apt
|
|
26
|
+
package: ffmpeg
|
|
27
|
+
bins: ['ffmpeg', 'ffprobe']
|
|
28
|
+
os: ['linux']
|
|
29
|
+
label: 'Install ffmpeg (apt)'
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
# Audio Transcription with Whisper
|
|
33
|
+
|
|
34
|
+
You can transcribe audio and video files into text using OpenAI's Whisper API or compatible speech-to-text services. Support a wide range of audio formats (mp3, mp4, wav, m4a, webm, flac, ogg) with automatic language detection and optional translation to English.
|
|
35
|
+
|
|
36
|
+
When transcribing, first check the file format and size. If the file exceeds the API's size limit (25MB for OpenAI Whisper), use `ffmpeg` to split it into smaller segments or compress it. For video files, extract the audio track with `ffmpeg` before sending to the transcription API. Always inform the user of the detected language and confidence level.
|
|
37
|
+
|
|
38
|
+
Present transcription results in a clean, readable format. For long recordings, add timestamps at regular intervals or at natural paragraph breaks. Support different output formats: plain text, SRT subtitles, VTT captions, and timestamped segments. When the user requests a summary alongside the transcription, provide both the full transcript and a concise summary.
|
|
39
|
+
|
|
40
|
+
For multi-speaker recordings, attempt speaker diarization when the API supports it, or offer to label speakers manually based on context. Handle background noise and poor audio quality gracefully -- flag low-confidence segments rather than silently producing incorrect text. Support batch transcription of multiple files in a directory.
|
|
41
|
+
|
|
42
|
+
## Examples
|
|
43
|
+
|
|
44
|
+
- "Transcribe this meeting recording: /path/to/meeting.mp3"
|
|
45
|
+
- "Create SRT subtitles for this video file"
|
|
46
|
+
- "Transcribe and summarize this 2-hour podcast episode"
|
|
47
|
+
- "Transcribe all .wav files in the interviews/ directory"
|
|
48
|
+
- "Translate this Spanish audio recording to English text"
|
|
49
|
+
|
|
50
|
+
## Constraints
|
|
51
|
+
|
|
52
|
+
- Maximum file size for OpenAI Whisper API: 25MB per request. Use ffmpeg to split larger files.
|
|
53
|
+
- Supported audio formats: mp3, mp4, mpeg, mpga, m4a, wav, webm, flac, ogg.
|
|
54
|
+
- Transcription accuracy depends on audio quality, background noise, and speaker clarity.
|
|
55
|
+
- Speaker diarization (who said what) is not natively supported by all APIs and may require post-processing.
|
|
56
|
+
- Real-time/streaming transcription is not supported; only file-based transcription.
|
|
57
|
+
- API costs apply per minute of audio transcribed.
|
|
58
|
+
- ffmpeg is required for audio conversion, splitting, and video audio extraction.
|
package/registry.json
ADDED
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.0",
|
|
3
|
+
"updated": "2026-02-07T00:00:00.000Z",
|
|
4
|
+
"categories": {
|
|
5
|
+
"curated": [
|
|
6
|
+
"weather",
|
|
7
|
+
"github",
|
|
8
|
+
"slack-helper",
|
|
9
|
+
"discord-helper",
|
|
10
|
+
"notion",
|
|
11
|
+
"obsidian",
|
|
12
|
+
"summarize",
|
|
13
|
+
"coding-agent",
|
|
14
|
+
"healthcheck",
|
|
15
|
+
"spotify-player",
|
|
16
|
+
"trello",
|
|
17
|
+
"apple-notes",
|
|
18
|
+
"apple-reminders",
|
|
19
|
+
"1password",
|
|
20
|
+
"image-gen",
|
|
21
|
+
"whisper-transcribe",
|
|
22
|
+
"git"
|
|
23
|
+
],
|
|
24
|
+
"community": []
|
|
25
|
+
},
|
|
26
|
+
"skills": {
|
|
27
|
+
"curated": [
|
|
28
|
+
{
|
|
29
|
+
"id": "com.framers.skill.weather",
|
|
30
|
+
"name": "weather",
|
|
31
|
+
"version": "1.0.0",
|
|
32
|
+
"path": "registry/curated/weather",
|
|
33
|
+
"description": "Look up current weather conditions, forecasts, and severe weather alerts for any location worldwide.",
|
|
34
|
+
"verified": true,
|
|
35
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
36
|
+
"keywords": ["weather", "forecast", "climate", "location"],
|
|
37
|
+
"metadata": {
|
|
38
|
+
"emoji": "\u2600\uFE0F"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "com.framers.skill.github",
|
|
43
|
+
"name": "github",
|
|
44
|
+
"version": "1.0.0",
|
|
45
|
+
"path": "registry/curated/github",
|
|
46
|
+
"description": "Manage GitHub repositories, issues, pull requests, releases, and Actions workflows using the gh CLI.",
|
|
47
|
+
"verified": true,
|
|
48
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
49
|
+
"keywords": ["github", "gh", "issues", "pull-requests", "ci-cd", "code-review"],
|
|
50
|
+
"metadata": {
|
|
51
|
+
"emoji": "\uD83D\uDC19",
|
|
52
|
+
"primaryEnv": "GITHUB_TOKEN",
|
|
53
|
+
"requires": {
|
|
54
|
+
"bins": ["gh"]
|
|
55
|
+
},
|
|
56
|
+
"install": [
|
|
57
|
+
{
|
|
58
|
+
"id": "brew",
|
|
59
|
+
"kind": "brew",
|
|
60
|
+
"formula": "gh",
|
|
61
|
+
"bins": ["gh"],
|
|
62
|
+
"label": "Install GitHub CLI (brew)"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "apt",
|
|
66
|
+
"kind": "apt",
|
|
67
|
+
"package": "gh",
|
|
68
|
+
"bins": ["gh"],
|
|
69
|
+
"os": ["linux"],
|
|
70
|
+
"label": "Install GitHub CLI (apt)"
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"id": "com.framers.skill.slack-helper",
|
|
77
|
+
"name": "slack-helper",
|
|
78
|
+
"version": "1.0.0",
|
|
79
|
+
"path": "registry/curated/slack-helper",
|
|
80
|
+
"description": "Manage Slack workspaces, channels, messages, and integrations through the Slack API.",
|
|
81
|
+
"verified": true,
|
|
82
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
83
|
+
"keywords": ["slack", "messaging", "workspace", "notifications", "team-chat"],
|
|
84
|
+
"metadata": {
|
|
85
|
+
"emoji": "\uD83D\uDCAC",
|
|
86
|
+
"primaryEnv": "SLACK_BOT_TOKEN"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "com.framers.skill.discord-helper",
|
|
91
|
+
"name": "discord-helper",
|
|
92
|
+
"version": "1.0.0",
|
|
93
|
+
"path": "registry/curated/discord-helper",
|
|
94
|
+
"description": "Manage Discord servers, channels, roles, and messages through the Discord API.",
|
|
95
|
+
"verified": true,
|
|
96
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
97
|
+
"keywords": ["discord", "messaging", "server", "moderation", "community"],
|
|
98
|
+
"metadata": {
|
|
99
|
+
"emoji": "\uD83C\uDFAE",
|
|
100
|
+
"primaryEnv": "DISCORD_BOT_TOKEN"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"id": "com.framers.skill.notion",
|
|
105
|
+
"name": "notion",
|
|
106
|
+
"version": "1.0.0",
|
|
107
|
+
"path": "registry/curated/notion",
|
|
108
|
+
"description": "Read, create, and manage pages, databases, and content blocks in Notion workspaces.",
|
|
109
|
+
"verified": true,
|
|
110
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
111
|
+
"keywords": ["notion", "wiki", "database", "notes", "project-management", "knowledge-base"],
|
|
112
|
+
"metadata": {
|
|
113
|
+
"emoji": "\uD83D\uDCD3",
|
|
114
|
+
"primaryEnv": "NOTION_API_KEY"
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "com.framers.skill.obsidian",
|
|
119
|
+
"name": "obsidian",
|
|
120
|
+
"version": "1.0.0",
|
|
121
|
+
"path": "registry/curated/obsidian",
|
|
122
|
+
"description": "Read, create, and manage notes, links, and metadata in Obsidian vaults via the local filesystem.",
|
|
123
|
+
"verified": true,
|
|
124
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
125
|
+
"keywords": ["obsidian", "markdown", "notes", "knowledge-graph", "zettelkasten", "pkm"],
|
|
126
|
+
"metadata": {
|
|
127
|
+
"emoji": "\uD83D\uDC8E"
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"id": "com.framers.skill.summarize",
|
|
132
|
+
"name": "summarize",
|
|
133
|
+
"version": "1.0.0",
|
|
134
|
+
"path": "registry/curated/summarize",
|
|
135
|
+
"description": "Summarize text content, web pages, documents, and long-form articles into concise, structured summaries.",
|
|
136
|
+
"verified": true,
|
|
137
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
138
|
+
"keywords": ["summarization", "text-processing", "tldr", "reading", "content-analysis"],
|
|
139
|
+
"metadata": {
|
|
140
|
+
"emoji": "\uD83D\uDCDD"
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"id": "com.framers.skill.coding-agent",
|
|
145
|
+
"name": "coding-agent",
|
|
146
|
+
"version": "1.0.0",
|
|
147
|
+
"path": "registry/curated/coding-agent",
|
|
148
|
+
"description": "Write, review, debug, refactor, and explain code across multiple programming languages and frameworks.",
|
|
149
|
+
"verified": true,
|
|
150
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
151
|
+
"keywords": [
|
|
152
|
+
"coding",
|
|
153
|
+
"programming",
|
|
154
|
+
"code-review",
|
|
155
|
+
"debugging",
|
|
156
|
+
"refactoring",
|
|
157
|
+
"development"
|
|
158
|
+
],
|
|
159
|
+
"metadata": {
|
|
160
|
+
"emoji": "\uD83D\uDCBB"
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"id": "com.framers.skill.healthcheck",
|
|
165
|
+
"name": "healthcheck",
|
|
166
|
+
"version": "1.0.0",
|
|
167
|
+
"path": "registry/curated/healthcheck",
|
|
168
|
+
"description": "Monitor health and availability of systems, services, APIs, and infrastructure endpoints.",
|
|
169
|
+
"verified": true,
|
|
170
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
171
|
+
"keywords": ["monitoring", "health", "uptime", "infrastructure", "diagnostics", "status"],
|
|
172
|
+
"metadata": {
|
|
173
|
+
"emoji": "\uD83C\uDFE5",
|
|
174
|
+
"requires": {
|
|
175
|
+
"anyBins": ["curl", "wget"]
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"id": "com.framers.skill.spotify-player",
|
|
181
|
+
"name": "spotify-player",
|
|
182
|
+
"version": "1.0.0",
|
|
183
|
+
"path": "registry/curated/spotify-player",
|
|
184
|
+
"description": "Control Spotify playback, manage playlists, search music, and get recommendations via the Spotify API.",
|
|
185
|
+
"verified": true,
|
|
186
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
187
|
+
"keywords": ["spotify", "music", "playback", "playlists", "streaming", "audio"],
|
|
188
|
+
"metadata": {
|
|
189
|
+
"emoji": "\uD83C\uDFB5",
|
|
190
|
+
"primaryEnv": "SPOTIFY_CLIENT_ID"
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"id": "com.framers.skill.trello",
|
|
195
|
+
"name": "trello",
|
|
196
|
+
"version": "1.0.0",
|
|
197
|
+
"path": "registry/curated/trello",
|
|
198
|
+
"description": "Manage Trello boards, lists, cards, checklists, and team workflows via the Trello API.",
|
|
199
|
+
"verified": true,
|
|
200
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
201
|
+
"keywords": ["trello", "kanban", "project-management", "boards", "tasks", "workflow"],
|
|
202
|
+
"metadata": {
|
|
203
|
+
"emoji": "\uD83D\uDCCB",
|
|
204
|
+
"primaryEnv": "TRELLO_API_KEY"
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"id": "com.framers.skill.apple-notes",
|
|
209
|
+
"name": "apple-notes",
|
|
210
|
+
"version": "1.0.0",
|
|
211
|
+
"path": "registry/curated/apple-notes",
|
|
212
|
+
"description": "Create, read, search, and manage notes in Apple Notes using AppleScript and macOS automation.",
|
|
213
|
+
"verified": true,
|
|
214
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
215
|
+
"keywords": ["apple-notes", "macos", "notes", "applescript", "automation"],
|
|
216
|
+
"metadata": {
|
|
217
|
+
"emoji": "\uD83D\uDCF1",
|
|
218
|
+
"os": ["darwin"],
|
|
219
|
+
"requires": {
|
|
220
|
+
"bins": ["osascript"]
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"id": "com.framers.skill.apple-reminders",
|
|
226
|
+
"name": "apple-reminders",
|
|
227
|
+
"version": "1.0.0",
|
|
228
|
+
"path": "registry/curated/apple-reminders",
|
|
229
|
+
"description": "Create, manage, and query reminders and lists in Apple Reminders using AppleScript and macOS automation.",
|
|
230
|
+
"verified": true,
|
|
231
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
232
|
+
"keywords": ["apple-reminders", "macos", "reminders", "tasks", "applescript", "automation"],
|
|
233
|
+
"metadata": {
|
|
234
|
+
"emoji": "\u2705",
|
|
235
|
+
"os": ["darwin"],
|
|
236
|
+
"requires": {
|
|
237
|
+
"bins": ["osascript"]
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"id": "com.framers.skill.1password",
|
|
243
|
+
"name": "1password",
|
|
244
|
+
"version": "1.0.0",
|
|
245
|
+
"path": "registry/curated/1password",
|
|
246
|
+
"description": "Query and retrieve items from 1Password vaults using the 1Password CLI for secure credential access.",
|
|
247
|
+
"verified": true,
|
|
248
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
249
|
+
"keywords": ["1password", "passwords", "secrets", "vault", "credentials", "security"],
|
|
250
|
+
"metadata": {
|
|
251
|
+
"emoji": "\uD83D\uDD10",
|
|
252
|
+
"primaryEnv": "OP_SERVICE_ACCOUNT_TOKEN",
|
|
253
|
+
"requires": {
|
|
254
|
+
"bins": ["op"]
|
|
255
|
+
},
|
|
256
|
+
"install": [
|
|
257
|
+
{
|
|
258
|
+
"id": "brew",
|
|
259
|
+
"kind": "brew",
|
|
260
|
+
"formula": "1password-cli",
|
|
261
|
+
"bins": ["op"],
|
|
262
|
+
"label": "Install 1Password CLI (brew)"
|
|
263
|
+
}
|
|
264
|
+
]
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"id": "com.framers.skill.image-gen",
|
|
269
|
+
"name": "image-gen",
|
|
270
|
+
"version": "1.0.0",
|
|
271
|
+
"path": "registry/curated/image-gen",
|
|
272
|
+
"description": "Generate images from text prompts using AI image generation APIs like DALL-E, Stable Diffusion, or Midjourney.",
|
|
273
|
+
"verified": true,
|
|
274
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
275
|
+
"keywords": [
|
|
276
|
+
"image-generation",
|
|
277
|
+
"ai-art",
|
|
278
|
+
"dall-e",
|
|
279
|
+
"stable-diffusion",
|
|
280
|
+
"creative",
|
|
281
|
+
"visual"
|
|
282
|
+
],
|
|
283
|
+
"metadata": {
|
|
284
|
+
"emoji": "\uD83C\uDFA8",
|
|
285
|
+
"primaryEnv": "OPENAI_API_KEY"
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"id": "com.framers.skill.whisper-transcribe",
|
|
290
|
+
"name": "whisper-transcribe",
|
|
291
|
+
"version": "1.0.0",
|
|
292
|
+
"path": "registry/curated/whisper-transcribe",
|
|
293
|
+
"description": "Transcribe audio and video files to text using OpenAI Whisper or compatible speech-to-text APIs.",
|
|
294
|
+
"verified": true,
|
|
295
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
296
|
+
"keywords": ["transcription", "whisper", "speech-to-text", "audio", "stt", "voice"],
|
|
297
|
+
"metadata": {
|
|
298
|
+
"emoji": "\uD83C\uDF99\uFE0F",
|
|
299
|
+
"primaryEnv": "OPENAI_API_KEY",
|
|
300
|
+
"requires": {
|
|
301
|
+
"anyBins": ["ffmpeg", "ffprobe"]
|
|
302
|
+
},
|
|
303
|
+
"install": [
|
|
304
|
+
{
|
|
305
|
+
"id": "brew-ffmpeg",
|
|
306
|
+
"kind": "brew",
|
|
307
|
+
"formula": "ffmpeg",
|
|
308
|
+
"bins": ["ffmpeg", "ffprobe"],
|
|
309
|
+
"label": "Install ffmpeg (brew)"
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"id": "apt-ffmpeg",
|
|
313
|
+
"kind": "apt",
|
|
314
|
+
"package": "ffmpeg",
|
|
315
|
+
"bins": ["ffmpeg", "ffprobe"],
|
|
316
|
+
"os": ["linux"],
|
|
317
|
+
"label": "Install ffmpeg (apt)"
|
|
318
|
+
}
|
|
319
|
+
]
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"id": "com.framers.skill.git",
|
|
324
|
+
"name": "git",
|
|
325
|
+
"version": "1.0.0",
|
|
326
|
+
"path": "registry/curated/git",
|
|
327
|
+
"description": "Work with Git repositories from the command line.",
|
|
328
|
+
"verified": true,
|
|
329
|
+
"verifiedAt": "2026-02-07T00:00:00.000Z",
|
|
330
|
+
"keywords": ["git", "vcs", "workflow"],
|
|
331
|
+
"metadata": {
|
|
332
|
+
"emoji": "\uD83E\uDDF0",
|
|
333
|
+
"requires": {
|
|
334
|
+
"bins": ["git"]
|
|
335
|
+
},
|
|
336
|
+
"install": [
|
|
337
|
+
{
|
|
338
|
+
"id": "brew",
|
|
339
|
+
"kind": "brew",
|
|
340
|
+
"formula": "git",
|
|
341
|
+
"bins": ["git"],
|
|
342
|
+
"label": "Install git (brew)"
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"id": "apt",
|
|
346
|
+
"kind": "apt",
|
|
347
|
+
"package": "git",
|
|
348
|
+
"bins": ["git"],
|
|
349
|
+
"os": ["linux"],
|
|
350
|
+
"label": "Install git (apt)"
|
|
351
|
+
}
|
|
352
|
+
]
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
],
|
|
356
|
+
"community": []
|
|
357
|
+
},
|
|
358
|
+
"stats": {
|
|
359
|
+
"totalSkills": 17,
|
|
360
|
+
"curatedCount": 17,
|
|
361
|
+
"communityCount": 0
|
|
362
|
+
}
|
|
363
|
+
}
|