raycast-alfred-1-raycast-extension-development
Sub-skill of raycast-alfred: 1. Raycast Extension Development (+2).
Best use case
raycast-alfred-1-raycast-extension-development is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Sub-skill of raycast-alfred: 1. Raycast Extension Development (+2).
Teams using raycast-alfred-1-raycast-extension-development should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/1-raycast-extension-development/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How raycast-alfred-1-raycast-extension-development Compares
| Feature / Agent | raycast-alfred-1-raycast-extension-development | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Sub-skill of raycast-alfred: 1. Raycast Extension Development (+2).
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 1. Raycast Extension Development (+2)
## 1. Raycast Extension Development
```typescript
// Use proper error handling
import { showToast, Toast } from "@raycast/api";
async function safeFetch(url: string) {
try {
const response = await fetch(url);
if (!response.ok) {
throw new Error(`HTTP ${response.status}`);
}
return response.json();
} catch (error) {
showToast({
style: Toast.Style.Failure,
title: "Request failed",
message: String(error),
});
return null;
}
}
// Use LocalStorage for persistence
import { LocalStorage } from "@raycast/api";
async function saveData(key: string, data: any) {
await LocalStorage.setItem(key, JSON.stringify(data));
}
async function loadData<T>(key: string, defaultValue: T): Promise<T> {
const json = await LocalStorage.getItem<string>(key);
return json ? JSON.parse(json) : defaultValue;
}
```
## 2. Alfred Workflow Best Practices
```python
# Always output valid JSON for Script Filters
import json
import sys
def output_items(items):
"""Output Alfred JSON format"""
print(json.dumps({"items": items}))
def output_error(message):
"""Output error as Alfred item"""
output_items([{
"title": "Error",
"subtitle": message,
"icon": {"path": "error.png"}
}])
# Handle keyboard interrupt gracefully
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
sys.exit(0)
except Exception as e:
output_error(str(e))
sys.exit(1)
```
## 3. Performance Optimization
```typescript
// Debounce search queries
import { useState, useCallback } from "react";
import { useDebouncedValue } from "@raycast/utils";
function SearchCommand() {
const [query, setQuery] = useState("");
const debouncedQuery = useDebouncedValue(query, 300);
// Use debouncedQuery for API calls
}
// Cache API responses
const cache = new Map<string, { data: any; timestamp: number }>();
const CACHE_TTL = 5 * 60 * 1000; // 5 minutes
async function cachedFetch(url: string) {
const cached = cache.get(url);
if (cached && Date.now() - cached.timestamp < CACHE_TTL) {
return cached.data;
}
const data = await fetch(url).then((r) => r.json());
cache.set(url, { data, timestamp: Date.now() });
return data;
}
```Related Skills
oss-wiki-development-arc
Three-phase methodology (Substrate → Depth → Quality) for building open-source engineering wikis efficiently. Skip 70%+ of empirical iteration cost by pre-loading the pattern.
test-driven-development
Use when implementing any feature or bugfix, before writing implementation code. Enforces RED-GREEN-REFACTOR cycle with test-first approach.
subagent-driven-development
Use when executing implementation plans with independent tasks. Dispatches fresh delegate_task per task with two-stage review (spec compliance then code quality).
vscode-extensions-git-workflow-integration
Sub-skill of vscode-extensions: Git Workflow Integration (+1).
vscode-extensions-7-profile-management
Sub-skill of vscode-extensions: 7. Profile Management.
vscode-extensions-6-workspace-configuration
Sub-skill of vscode-extensions: 6. Workspace Configuration.
vscode-extensions-5-custom-snippets
Sub-skill of vscode-extensions: 5. Custom Snippets.
vscode-extensions-4-keybindings-configuration
Sub-skill of vscode-extensions: 4. Keybindings Configuration.
vscode-extensions-3-language-specific-settings
Sub-skill of vscode-extensions: 3. Language-Specific Settings.
vscode-extensions-2-settings-configuration
Sub-skill of vscode-extensions: 2. Settings Configuration.
vscode-extensions-1-extension-management
Sub-skill of vscode-extensions: 1. Extension Management (+2).
vscode-extensions-1-essential-extensions-by-category
Sub-skill of vscode-extensions: 1. Essential Extensions by Category.