raycast-alfred-1-raycast-extension-development

Sub-skill of raycast-alfred: 1. Raycast Extension Development (+2).

5 stars

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

$curl -o ~/.claude/skills/1-raycast-extension-development/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/_archive/operations/devtools/raycast-alfred/1-raycast-extension-development/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/1-raycast-extension-development/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How raycast-alfred-1-raycast-extension-development Compares

Feature / Agentraycast-alfred-1-raycast-extension-developmentStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

Use when implementing any feature or bugfix, before writing implementation code. Enforces RED-GREEN-REFACTOR cycle with test-first approach.

subagent-driven-development

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

Sub-skill of vscode-extensions: Git Workflow Integration (+1).

vscode-extensions-7-profile-management

5
from vamseeachanta/workspace-hub

Sub-skill of vscode-extensions: 7. Profile Management.

vscode-extensions-6-workspace-configuration

5
from vamseeachanta/workspace-hub

Sub-skill of vscode-extensions: 6. Workspace Configuration.

vscode-extensions-5-custom-snippets

5
from vamseeachanta/workspace-hub

Sub-skill of vscode-extensions: 5. Custom Snippets.

vscode-extensions-4-keybindings-configuration

5
from vamseeachanta/workspace-hub

Sub-skill of vscode-extensions: 4. Keybindings Configuration.

vscode-extensions-3-language-specific-settings

5
from vamseeachanta/workspace-hub

Sub-skill of vscode-extensions: 3. Language-Specific Settings.

vscode-extensions-2-settings-configuration

5
from vamseeachanta/workspace-hub

Sub-skill of vscode-extensions: 2. Settings Configuration.

vscode-extensions-1-extension-management

5
from vamseeachanta/workspace-hub

Sub-skill of vscode-extensions: 1. Extension Management (+2).

vscode-extensions-1-essential-extensions-by-category

5
from vamseeachanta/workspace-hub

Sub-skill of vscode-extensions: 1. Essential Extensions by Category.