raycast-alfred-project-switcher-integration
Sub-skill of raycast-alfred: Project Switcher Integration.
Best use case
raycast-alfred-project-switcher-integration is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Sub-skill of raycast-alfred: Project Switcher Integration.
Teams using raycast-alfred-project-switcher-integration 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/project-switcher-integration/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How raycast-alfred-project-switcher-integration Compares
| Feature / Agent | raycast-alfred-project-switcher-integration | 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: Project Switcher Integration.
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
# Project Switcher Integration
## Project Switcher Integration
```tsx
// src/project-switcher.tsx
// ABOUTME: Unified project switcher
// ABOUTME: Integrates with multiple project sources
import {
ActionPanel,
Action,
List,
Icon,
LocalStorage,
getPreferenceValues,
} from "@raycast/api";
import { useState, useEffect } from "react";
import { exec } from "child_process";
import { promisify } from "util";
import fs from "fs";
import path from "path";
const execAsync = promisify(exec);
interface Preferences {
projectDirs: string;
githubEnabled: boolean;
gitlabEnabled: boolean;
}
interface Project {
name: string;
path: string;
source: "local" | "github" | "gitlab";
url?: string;
lastAccessed?: number;
}
export default function Command() {
const [projects, setProjects] = useState<Project[]>([]);
const [isLoading, setIsLoading] = useState(true);
const preferences = getPreferenceValues<Preferences>();
useEffect(() => {
loadAllProjects();
}, []);
async function loadAllProjects() {
const allProjects: Project[] = [];
// Load local projects
const dirs = preferences.projectDirs.split(",").map((d) => d.trim());
for (const dir of dirs) {
const expandedDir = dir.replace("~", process.env.HOME || "");
if (fs.existsSync(expandedDir)) {
const entries = fs.readdirSync(expandedDir, { withFileTypes: true });
for (const entry of entries) {
if (entry.isDirectory() && !entry.name.startsWith(".")) {
allProjects.push({
name: entry.name,
path: path.join(expandedDir, entry.name),
source: "local",
});
}
}
}
}
// Load access times
const accessJson = await LocalStorage.getItem<string>("project-access");
const accessTimes = accessJson ? JSON.parse(accessJson) : {};
allProjects.forEach((p) => {
p.lastAccessed = accessTimes[p.path] || 0;
});
// Sort by last accessed
allProjects.sort((a, b) => (b.lastAccessed || 0) - (a.lastAccessed || 0));
setProjects(allProjects);
setIsLoading(false);
}
async function openProject(project: Project, app: string) {
const cmd =
app === "code"
? `code "${project.path}"`
: app === "terminal"
? `open -a Terminal "${project.path}"`
: `open "${project.path}"`;
await execAsync(cmd);
// Update access time
const accessJson = await LocalStorage.getItem<string>("project-access");
const accessTimes = accessJson ? JSON.parse(accessJson) : {};
accessTimes[project.path] = Date.now();
await LocalStorage.setItem("project-access", JSON.stringify(accessTimes));
}
const sourceIcons = {
local: Icon.Folder,
github: Icon.Globe,
gitlab: Icon.Globe,
};
return (
<List isLoading={isLoading} searchBarPlaceholder="Search projects...">
{projects.map((project) => (
<List.Item
key={project.path}
title={project.name}
subtitle={project.path}
icon={sourceIcons[project.source]}
accessories={[
project.lastAccessed
? { text: new Date(project.lastAccessed).toLocaleDateString() }
: {},
]}
actions={
<ActionPanel>
<Action
title="Open in VS Code"
icon={Icon.Code}
onAction={() => openProject(project, "code")}
/>
<Action
title="Open in Terminal"
icon={Icon.Terminal}
onAction={() => openProject(project, "terminal")}
/>
<Action
title="Open in Finder"
icon={Icon.Finder}
onAction={() => openProject(project, "finder")}
/>
</ActionPanel>
}
/>
))}
</List>
);
}
```Related Skills
library-evaluation-integration
Create evaluation scripts and integration tests for Python scientific libraries in the digitalmodel package. Follows the established pattern from fluids, ht, meshio, sectionproperties, and pygmt evaluations.
clean-worktree-integration-from-dirty-main
Land validated issue work from isolated worktrees when the main checkout is dirty by creating a fresh integration worktree, cherry-picking only implementation commits, re-running combined validation, and preparing push/closeout artifacts.
hermes-ecosystem-integration
Wire Hermes into workspace-hub ecosystem — multi-repo skills, config sync, session export to learning pipeline, memory cross-pollination, skill patch tracking, and cross-machine health checks.
python-project-template
Generate standardized Python project structure with pyproject.toml, UV environment, pytest configuration, and workspace-hub compliance. Creates production-ready project scaffolding.
github-project-board
Synchronize AI swarms with GitHub Projects for visual task management and progress tracking. Use for project board automation, task synchronization, sprint management, and team coordination with GitHub Projects.
api-integration
Integrate offshore engineering software APIs with mock testing for OrcaFlex, AQWA, and WAMIT
llm-wiki-roadmap-integration
Integrate repo-ecosystem work into an existing llm-wiki / knowledge-roadmap issue without creating duplicate GitHub issues.
mkdocs-integration-with-python-package
Sub-skill of mkdocs: Integration with Python Package (+2).
improve-integration
Sub-skill of improve: Integration.
clean-code-pre-commit-integration
Sub-skill of clean-code: Pre-commit Integration.
agent-teams-work-queue-integration
Sub-skill of agent-teams: Work Queue Integration.
vscode-extensions-git-workflow-integration
Sub-skill of vscode-extensions: Git Workflow Integration (+1).