handlers
A technical utility for navigating and modifying IPC handlers in the wallhaven codebase.
Install
mkdir -p .claude/skills/handlers && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/12296" && unzip -o skill.zip -d .claude/skills/handlers && rm skill.zipInstalls to .claude/skills/handlers
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Skill for the Handlers area of wallhaven. 39 symbols across 14 files.Key capabilities
- →Understand IPC message handlers within the wallhaven project
- →Work with code in the `electron/` directory
- →Explore key entry points like `createErrorResponse` and `withTransaction`
- →Identify relevant files for specific handler functionalities
- →Trace execution flows related to handler registration
How it works
The skill provides structured access to IPC message handlers by listing key files, entry points, and symbols within the `electron/` directory of the wallhaven project. It also outlines execution flows.
Inputs & outputs
When to use handlers
- →Modify wallpaper download logic
- →Update IPC store handlers
- →Implement new database transactions
- →Debug window communication handlers
About this skill
Handlers
39 symbols | 14 files | Cohesion: 78%
When to Use
- Working with code in
electron/ - Understanding how createErrorResponse, withTransaction, registerWindowHandlers work
- Modifying handlers-related functionality
Key Files
| File | Symbols |
|---|---|
electron/main/ipc/handlers/download.handler.ts | getStateFilePath, writeStateFile, readStateFile, shouldPersistState, cleanupDownload (+8) |
electron/main/ipc/handlers/download-queue.ts | remove, clear, getQueueInstance, has, enqueue (+2) |
electron/main/database.ts | withTransaction, getAppSetting, getDownloadPath, getMaxConcurrentDownloads |
electron/main/ipc/handlers/base.ts | getImageDimensions, generateThumbnail, logHandler |
electron/main/ipc/handlers/store.handler.ts | keyToTable, registerStoreHandlers |
src/types/ipc.ts | isResumeDownloadParams, isPendingDownload |
src/errors/index.ts | createErrorResponse |
electron/main/ipc/handlers/window.handler.ts | registerWindowHandlers |
electron/main/ipc/handlers/wallpaper.handler.ts | registerWallpaperHandlers |
electron/main/ipc/handlers/index.ts | registerAllHandlers |
Entry Points
Start here when exploring this area:
createErrorResponse(Function) —src/errors/index.ts:61withTransaction(Function) —electron/main/database.ts:245registerWindowHandlers(Function) —electron/main/ipc/handlers/window.handler.ts:6registerWallpaperHandlers(Function) —electron/main/ipc/handlers/wallpaper.handler.ts:9registerStoreHandlers(Function) —electron/main/ipc/handlers/store.handler.ts:41
Key Symbols
| Symbol | Type | File | Line |
|---|---|---|---|
createErrorResponse | Function | src/errors/index.ts | 61 |
withTransaction | Function | electron/main/database.ts | 245 |
registerWindowHandlers | Function | electron/main/ipc/handlers/window.handler.ts | 6 |
registerWallpaperHandlers | Function | electron/main/ipc/handlers/wallpaper.handler.ts | 9 |
registerStoreHandlers | Function | electron/main/ipc/handlers/store.handler.ts | 41 |
registerAllHandlers | Function | electron/main/ipc/handlers/index.ts | 69 |
registerFileHandlers | Function | electron/main/ipc/handlers/file.handler.ts | 13 |
registerFavoritesHandlers | Function | electron/main/ipc/handlers/favorites.handler.ts | 13 |
getQueueInstance | Function | electron/main/ipc/handlers/download-queue.ts | 189 |
registerCacheHandlers | Function | electron/main/ipc/handlers/cache.handler.ts | 12 |
getImageDimensions | Function | electron/main/ipc/handlers/base.ts | 18 |
generateThumbnail | Function | electron/main/ipc/handlers/base.ts | 40 |
logHandler | Function | electron/main/ipc/handlers/base.ts | 85 |
registerApiHandlers | Function | electron/main/ipc/handlers/api.handler.ts | 12 |
isResumeDownloadParams | Function | src/types/ipc.ts | 425 |
isPendingDownload | Function | src/types/ipc.ts | 442 |
executeDownload | Function | electron/main/ipc/handlers/download.handler.ts | 317 |
registerDownloadHandlers | Function | electron/main/ipc/handlers/download.handler.ts | 721 |
getAppSetting | Function | electron/main/database.ts | 263 |
getDownloadPath | Function | electron/main/database.ts | 285 |
Execution Flows
| Flow | Type | Steps |
|---|---|---|
RegisterDownloadHandlers → _getActiveCount | cross_community | 4 |
RegisterDownloadHandlers → _onDequeue | cross_community | 4 |
RegisterAllHandlers → Has | cross_community | 4 |
RegisterAllHandlers → _emitProgress | cross_community | 4 |
RegisterAllHandlers → LogHandler | cross_community | 4 |
RegisterAllHandlers → _getActiveCount | cross_community | 4 |
RegisterFavoritesHandlers → GetDbPath | cross_community | 4 |
RegisterFavoritesHandlers → InitializeSchema | cross_community | 4 |
RegisterFavoritesHandlers → RunMigration | cross_community | 4 |
RegisterFavoritesHandlers → StartPeriodicCheckpoint | cross_community | 4 |
Connected Areas
| Area | Connections |
|---|---|
| Main | 4 calls |
How to Explore
gitnexus_context({name: "createErrorResponse"})— see callers and calleesgitnexus_query({query: "handlers"})— find related execution flows- Read key files listed above for implementation details
When not to use it
- →When the task is not related to IPC message handlers or the `electron/` directory
- →When the user is working on areas outside of wallhaven's handler implementation
- →When the user needs to implement features not involving IPC communication
Limitations
- →Specific to the wallhaven project's handler implementation
- →Focuses on code within the `electron/` directory
- →Information is limited to documented symbols and files
How it compares
This skill offers a focused view into the IPC handler architecture of the wallhaven project, providing specific file and symbol references that a general code search would not immediately highlight.
Compared to similar skills
handlers side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| handlers (this skill) | 0 | 3mo | No flags | Intermediate |
| supabase-developer | 95 | 7mo | Review | Intermediate |
| dependency-upgrade | 26 | 5mo | Review | Intermediate |
| telegram-mini-app | 62 | 6mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
supabase-developer
daffy0208
Build full-stack applications with Supabase (PostgreSQL, Auth, Storage, Real-time, Edge Functions). Use when implementing authentication, database design with RLS, file storage, real-time features, or serverless functions.
dependency-upgrade
wshobson
Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing breaking changes in libraries.
telegram-mini-app
davila7
Expert in building Telegram Mini Apps (TWA) - web apps that run inside Telegram with native-like experience. Covers the TON ecosystem, Telegram Web App API, payments, user authentication, and building viral mini apps that monetize. Use when: telegram mini app, TWA, telegram web app, TON app, mini app.
stripe-integration
wshobson
Implement Stripe payment processing for robust, PCI-compliant payment flows including checkout, subscriptions, and webhooks. Use when integrating Stripe payments, building subscription systems, or implementing secure checkout flows.
nodejs-best-practices
davila7
Node.js development principles and decision-making. Framework selection, async patterns, security, and architecture. Teaches thinking, not copying.
bullmq-specialist
davila7
BullMQ expert for Redis-backed job queues, background processing, and reliable async execution in Node.js/TypeScript applications. Use when: bullmq, bull queue, redis queue, background job, job queue.