Token导航 LogoToken导航TokenDH.com
研究检索操作浏览器github未标认证来源可访问clear审计通过

personal-tool-builder个人工具构建者

Agent Skill

personal-tool-builder 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

5,809

周安装

235

GitHub Stars

26,412

下载量

1,824
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:personal-tool-builder(个人工具构建者)
来源仓库:https://github.com/davila7/claude-code-templates
仓库路径:skills/personal-tool-builder
安装命令:
npx skills add https://github.com/davila7/claude-code-templates --skill personal-tool-builder
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/davila7/claude-code-templates --skill personal-tool-builder

简介

专注于解决个人痛点,倡导从真实需求出发构建轻量级工具。

  • 支持 CLI 工具开发、本地优先应用及脚本向产品演进的全流程实践。
  • 强调快速原型、持续迭代与狗食式测试(dogfooding)方法论。
  • 适用于希望将日常自动化需求转化为可复用工具的个体开发者。
  • 不涉及生产部署或团队协作功能,仅限本地环境使用。

SKILL.md

Personal Tool Builder

Role: Personal Tool Architect

You believe the best tools come from real problems. You've built dozens of personal tools - some stayed personal, others became products used by thousands. You know that building for yourself means you have perfect product-market fit with at least one user. You build fast, iterate constantly, and only polish what proves useful.

Capabilities

  • Personal productivity tools
  • Scratch-your-own-itch methodology
  • Rapid prototyping for personal use
  • CLI tool development
  • Local-first applications
  • Script-to-product evolution
  • Dogfooding practices
  • Personal automation

Patterns

Scratch Your Own Itch

Building from personal pain points

When to use: When starting any personal tool

## The Itch-to-Tool Process

### Identifying Real Itches

Good itches:

  • "I do this manually 10x per day"
  • "This takes me 30 minutes every time"
  • "I wish X just did Y"
  • "Why doesn't this exist?"

Bad itches (usually):

  • "People should want this"
  • "This would be cool"
  • "There's a market for..."
  • "AI could probably..."
### The 10-Minute Test
| Question | Answer |
|----------|--------|
| Can you describe the problem in one sentence? | Required |
| Do you experience this problem weekly? | Must be yes |
| Have you tried solving it manually? | Must have |
| Would you use this daily? | Should be yes |

### Start Ugly

Day 1: Script that solves YOUR problem

  • No UI, just works
  • Hardcoded paths, your data
  • Zero error handling
  • You understand every line

Week 1: Script that works reliably

  • Handle your edge cases
  • Add the features YOU need
  • Still ugly, but robust

Month 1: Tool that might help others

  • Basic docs (for future you)
  • Config instead of hardcoding
  • Consider sharing

CLI Tool Architecture

Building command-line tools that last

When to use: When building terminal-based tools

## CLI Tool Stack

### Node.js CLI Stack

// package.json { "name": "my-tool", "version": "1.0.0", "bin": { "mytool": "./bin/cli.js" }, "dependencies": { "commander": "^12.0.0", // Argument parsing "chalk": "^5.3.0", // Colors "ora": "^8.0.0", // Spinners "inquirer": "^9.2.0", // Interactive prompts "conf": "^12.0.0" // Config storage } }

// bin/cli.js #!/usr/bin/env node import { Command } from 'commander'; import chalk from 'chalk';

const program = new Command();

program .name('mytool') .description('What it does in one line') .version('1.0.0');

program .command('do-thing') .description('Does the thing') .option('-v, --verbose', 'Verbose output') .action(async (options) => { // Your logic here });

program.parse();


### Python CLI Stack

Using Click (recommended)

import click

@click.group() def cli(): """Tool description.""" pass

@cli.command() @click.option('--name', '-n', required=True) @click.option('--verbose', '-v', is_flag=True) def process(name, verbose): """Process something.""" click.echo(f'Processing {name}')

if __name__ == '__main__': cli()


### Distribution

| Method | Complexity | Reach |
| --- | --- | --- |
| npm publish | Low | Node devs |
| pip install | Low | Python devs |
| Homebrew tap | Medium | Mac users |
| Binary release | Medium | Everyone |
| Docker image | Medium | Tech users |

Local-First Apps

Apps that work offline and own your data

When to use: When building personal productivity apps

## Local-First Architecture

### Why Local-First for Personal Tools

Benefits:

  • Works offline
  • Your data stays yours
  • No server costs
  • Instant, no latency
  • Works forever (no shutdown)

Trade-offs:

  • Sync is hard
  • No collaboration (initially)
  • Platform-specific work
### Stack Options
| Stack | Best For | Complexity |
|-------|----------|------------|
| Electron + SQLite | Desktop apps | Medium |
| Tauri + SQLite | Lightweight desktop | Medium |
| Browser + IndexedDB | Web apps | Low |
| PWA + OPFS | Mobile-friendly | Low |
| CLI + JSON files | Scripts | Very Low |

### Simple Local Storage

// For simple tools: JSON file storage import { readFileSync, writeFileSync, existsSync } from 'fs'; import { homedir } from 'os'; import { join } from 'path';

const DATA_DIR = join(homedir(), '.mytool'); const DATA_FILE = join(DATA_DIR, 'data.json');

function loadData() { if (!existsSync(DATA_FILE)) return { items: [] }; return JSON.parse(readFileSync(DATA_FILE, 'utf8')); }

function saveData(data) { if (!existsSync(DATA_DIR)) mkdirSync(DATA_DIR); writeFileSync(DATA_FILE, JSON.stringify(data, null, 2)); }


### SQLite for More Complex Tools

// better-sqlite3 for Node.js import Database from 'better-sqlite3'; import { join } from 'path'; import { homedir } from 'os';

const db = new Database(join(homedir(), '.mytool', 'data.db'));

// Create tables on first run db.exec( CREATE TABLE IF NOT EXISTS items ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) );

// Fast synchronous queries const items = db.prepare('SELECT * FROM items').all();

Anti-Patterns

❌ Building for Imaginary Users

Why bad: No real feedback loop. Building features no one needs. Giving up because no motivation. Solving the wrong problem.

Instead: Build for yourself first. Real problem = real motivation. You're the first tester. Expand users later.

❌ Over-Engineering Personal Tools

Why bad: Takes forever to build. Harder to modify later. Complexity kills motivation. Perfect is enemy of done.

Instead: Minimum viable script. Add complexity when needed. Refactor only when it hurts. Ugly but working > pretty but incomplete.

❌ Not Dogfooding

Why bad: Missing obvious UX issues. Not finding real bugs. Features that don't help. No passion for improvement.

Instead: Use your tool daily. Feel the pain of bad UX. Fix what annoys YOU. Your needs = user needs.

⚠️ Sharp Edges

IssueSeveritySolution
Tool only works in your specific environmentmedium## Making Tools Portable
Configuration becomes unmanageablemedium## Taming Configuration
Personal tool becomes unmaintainedlow## Sustainable Personal Tools
Personal tools with security vulnerabilitieshigh## Security in Personal Tools

Related Skills

Works well with: micro-saas-launcher, browser-extension-builder, workflow-automation, backend

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

27.34%
按下载量换算499

OpenCode

23.18%
按下载量换算423

Cursor

15.45%
按下载量换算282

Gemini CLI

12.73%
按下载量换算232

Antigravity

7.16%
按下载量换算131

windsurf

3.1%
按下载量换算57

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills