[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-shinshin86--oh-my-logo":3,"tool-shinshin86--oh-my-logo":64},[4,16,27,35,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":15},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,14],"Agent","插件","ready",{"id":17,"name":18,"github_repo":19,"description_zh":20,"stars":21,"difficulty_score":22,"last_commit_at":23,"category_tags":24,"status":15},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,2,"2026-04-10T01:20:03",[14,13,25,26],"图像","开发框架",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":22,"last_commit_at":33,"category_tags":34,"status":15},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[14,26],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":22,"last_commit_at":41,"category_tags":42,"status":15},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85092,"2026-04-10T11:13:16",[25,43,44,14,13,45,46,26,47],"数据工具","视频","其他","语言模型","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":15},7525,"codex","openai\u002Fcodex","Codex 是 OpenAI 推出的一款轻量级编程智能体，专为在终端环境中高效运行而设计。它允许开发者直接在命令行界面与 AI 交互，完成代码生成、调试、重构及项目维护等任务，无需频繁切换至浏览器或集成开发环境，从而显著提升了编码流程的连贯性与专注度。\n\n这款工具主要解决了传统 AI 辅助编程中上下文割裂的问题。通过将智能体本地化运行，Codex 能够更紧密地结合当前工作目录的文件结构，提供更具针对性的代码建议，同时支持以自然语言指令驱动复杂的开发操作，让“对话即编码”成为现实。\n\nCodex 非常适合习惯使用命令行的软件工程师、全栈开发者以及技术研究人员。对于追求极致效率、偏好键盘操作胜过图形界面的极客用户而言，它更是理想的结对编程伙伴。\n\n其独特亮点在于灵活的部署方式：既可作为全局命令行工具通过 npm 或 Homebrew 一键安装，也能无缝对接现有的 ChatGPT 订阅计划（如 Plus 或 Pro），直接复用账户权益。此外，它还提供了从纯文本终端到桌面应用的多形态体验，并支持基于 API 密钥的深度定制，充分满足不同场景下的开发需求。",75220,"2026-04-14T14:40:34",[46,13,14],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":22,"last_commit_at":62,"category_tags":63,"status":15},51,"gstack","garrytan\u002Fgstack","gstack 是 Y Combinator CEO Garry Tan 亲自开源的一套 AI 工程化配置，旨在将 Claude Code 升级为你的虚拟工程团队。面对单人开发难以兼顾产品战略、架构设计、代码审查及质量测试的挑战，gstack 提供了一套标准化解决方案，帮助开发者实现堪比二十人团队的高效产出。\n\n这套配置特别适合希望提升交付效率的创始人、技术负责人，以及初次尝试 Claude Code 的开发者。gstack 的核心亮点在于内置了 15 个具有明确职责的 AI 角色工具，涵盖 CEO、设计师、工程经理、QA 等职能。用户只需通过简单的斜杠命令（如 `\u002Freview` 进行代码审查、`\u002Fqa` 执行测试、`\u002Fplan-ceo-review` 规划功能），即可自动化处理从需求分析到部署上线的全链路任务。\n\n所有操作基于 Markdown 和斜杠命令，无需复杂配置，完全免费且遵循 MIT 协议。gstack 不仅是一套工具集，更是一种现代化的软件工厂实践，让单人开发者也能拥有严谨的工程流程。",73956,"2026-04-16T23:09:21",[13,14],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":79,"owner_twitter":79,"owner_website":81,"owner_url":82,"languages":83,"stars":96,"forks":97,"last_commit_at":98,"license":99,"difficulty_score":10,"env_os":100,"env_gpu":101,"env_ram":102,"env_deps":103,"category_tags":111,"github_topics":112,"view_count":22,"oss_zip_url":79,"oss_zip_packed_at":79,"status":15,"created_at":117,"updated_at":118,"faqs":119,"releases":148},8130,"shinshin86\u002Foh-my-logo","oh-my-logo","Display giant ASCII-art logos with colorful gradients in your terminal — like Claude Code or Gemini CLI.","oh-my-logo 是一款能在终端中生成巨型彩色渐变 ASCII 艺术徽标的开源工具。它旨在解决传统命令行界面视觉单调的问题，让开发者轻松为项目启动页、脚本输出或个人环境打造如 Claude Code 或 Gemini CLI 般炫酷的横幅效果。\n\n这款工具特别适合开发者、DevOps 工程师以及喜欢定制终端体验的技术爱好者使用。无论是用于开源项目的 README 展示，还是单纯为了让日常工作界面更具个性，oh-my-logo 都能快速满足需求。其核心亮点在于无需安装即可通过 npx 直接运行，且完全零依赖。它提供两种渲染模式（轮廓字符与实心块），内置 13 种精美渐变色板，支持垂直、水平及对角线等多种渐变方向。此外，用户还能自定义字体阴影风格、调整字母间距甚至反转渐变色彩。生成的徽标采用 CC0 公共领域协议，可自由应用于任何场景。作为库使用时，它还能帮助程序实现动态动画效果，兼具实用性与趣味性。","# oh-my-logo\n\n[![Mentioned in Awesome Gemini CLI](https:\u002F\u002Fawesome.re\u002Fmentioned-badge.svg)](https:\u002F\u002Fgithub.com\u002FPiebald-AI\u002Fawesome-gemini-cli)\n\n![Logo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshinshin86_oh-my-logo_readme_b2ec3029705e.png)\n\nCreate stunning ASCII art logos with beautiful gradient colors in your terminal! Perfect for project banners, startup logos, or just making your terminal look awesome.\n\nYou can also create stunning animations like these by using it as a library in your programs!\n\n![GIF Demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshinshin86_oh-my-logo_readme_7d0f7de72fa4.gif)\n\n![GIF Demo 2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshinshin86_oh-my-logo_readme_1ed269305e5c.gif)\n\nThe logos produced by `oh-my-logo` are CC0 (public domain); feel free to use them anywhere.\n\n## ✨ Features\n\n- 🎨 **Two Rendering Modes**: Choose between outlined ASCII art or filled block characters\n- 🌈 **13 Beautiful Palettes**: From sunset gradients to matrix green\n- 📐 **Gradient Directions**: Vertical, horizontal, and diagonal gradients\n- 🔤 **Multi-line Support**: Create logos with multiple lines of text\n- ⚡ **Zero Dependencies**: Run instantly with `npx` - no installation required\n- 🎛️ **Customizable**: Use different fonts and create your own color schemes\n- 🎭 **Shadow Styles**: Customize shadow effects in filled mode with different block fonts\n- 🔄 **Letter Spacing**: For `--filled` mode: character spacing for different visual densities\n- 🔄 **Reverse Gradients**: Flip color palettes for unique effects\n\n## 🚀 Quick Start\n\nNo installation needed! Try it right now:\n\n```bash\nnpx oh-my-logo \"HELLO WORLD\"\n```\n\nWant filled characters? Add the `--filled` flag:\n\n```bash\nnpx oh-my-logo \"YOUR LOGO\" sunset --filled\n```\n\n### 🆕 New in v0.3.0\n\n**Customize shadow styles in filled mode:**\n```bash\n# Box-drawing shadows (default)\nnpx oh-my-logo \"STYLE\" fire --filled --block-font block\n\n# Minimal sleek shadows\nnpx oh-my-logo \"STYLE\" fire --filled --block-font chrome\n\n# Dotted\u002Fshaded shadows\nnpx oh-my-logo \"STYLE\" fire --filled --block-font shade\n```\n\n**Control letter spacing for block fonts:**\n```bash\n# Wide spacing (5 spaces between letters)\nnpx oh-my-logo \"WIDE\" ocean --filled --letter-spacing 5\n\n# Tight spacing (no spaces)\nnpx oh-my-logo \"TIGHT\" ocean --filled --letter-spacing 0\n```\n\n**Reverse gradients for unique effects:**\n```bash\n# Reverse any color palette\nnpx oh-my-logo \"REVERSE\" sunset --reverse-gradient\n\n# Works with filled mode too\nnpx oh-my-logo \"REVERSE\" sunset --filled --reverse-gradient\n```\n\n## 📦 Installation\n\n### Global Installation (CLI)\n```bash\nnpm install -g oh-my-logo\n```\n\n### Or Use Directly with npx\n```bash\nnpx oh-my-logo \"Your Text\"\n```\n\n### As a Library\n```bash\nnpm install oh-my-logo\n```\n\n## 🎯 Usage\n\n### CLI Usage\n\n```bash\noh-my-logo \u003Ctext> [palette] [options]\n```\n\n#### Custom Color Palettes (CLI)\n\nProvide custom gradients via `--palette-colors \u003Ccolors>`.\n\n```bash\n# JSON array (double quotes recommended)\nnpx oh-my-logo \"MY LOGO\" --palette-colors '[\"#00ff00\",\"#ffa500\",\"#ff0000\"]'\n\n# Simple comma-separated notation (wrap each color in quotes)\nnpx oh-my-logo \"MY LOGO\" --palette-colors \"'#00ff00', '#ffa500', '#ff0000'\"\n```\n\n- The comma-separated form is convenient for quick manual CLI usage and one-liners.\n- The JSON array form works well when you want to store the palette in shell scripts or CI variables, pass the result of `JSON.stringify` from Node.js, or keep the array in configuration files.\n- Extra whitespace is trimmed automatically.\n- Color strings can be hex codes or any CSS color supported by `gradient-string`.\n- You can combine custom palettes with other options like `--reverse-gradient` or `--filled`.\n- The positional `[palette]` argument continues to accept built-in palette names only.\n\n### Library Usage\n\n```javascript\nimport { render, renderFilled, PALETTES, getPaletteNames } from 'oh-my-logo';\n\n\u002F\u002F Basic ASCII art rendering\nconst logo = await render('HELLO WORLD', {\n  palette: 'sunset',\n  direction: 'horizontal'\n});\nconsole.log(logo);\n\n\u002F\u002F Using custom colors\nconst customLogo = await render('MY BRAND', {\n  palette: ['#ff0000', '#00ff00', '#0000ff'],\n  font: 'Big',\n  direction: 'diagonal'\n});\nconsole.log(customLogo);\n\n\u002F\u002F Filled block characters\nawait renderFilled('AWESOME', {\n  palette: 'fire'\n});\n\n\u002F\u002F Filled with custom shadow style\nawait renderFilled('SHADOW', {\n  palette: 'sunset',\n  font: 'shade'  \u002F\u002F Use dotted shadow effect\n});\n\n\u002F\u002F Filled with wide letter spacing\nawait renderFilled('WIDE', {\n  palette: 'fire',\n  letterSpacing: 3\n});\n\n\u002F\u002F TypeScript usage\nimport { render, RenderOptions, PaletteName } from 'oh-my-logo';\n\nconst options: RenderOptions = {\n  palette: 'ocean' as PaletteName,\n  direction: 'vertical',\n  font: 'Standard'\n};\n\nconst typedLogo = await render('TYPESCRIPT', options);\nconsole.log(typedLogo);\n\n\u002F\u002F Access palette information\nconsole.log('Available palettes:', getPaletteNames());\nconsole.log('Sunset colors:', PALETTES.sunset);\n```\n\n### Arguments\n\n- **`\u003Ctext>`**: Text to display\n  - Use `\"\\n\"` for newlines: `\"LINE1\\nLINE2\"`\n  - Use `\"-\"` to read from stdin\n- **`[palette]`**: Color palette name (default: `grad-blue`)\n\n### Options\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `-f, --font \u003Cname>` | Figlet font name | `Standard` |\n| `-d, --direction \u003Cdir>` | Gradient direction (`vertical`, `horizontal`, `diagonal`) | `vertical` |\n| `--filled` | Use filled block characters instead of outlined ASCII | `false` |\n| `--block-font \u003Cfont>` | Font for filled mode (`3d`, `block`, `chrome`, `grid`, `huge`, `pallet`, `shade`, `simple`, `simple3d`, `simpleBlock`, `slick`, `tiny`)\n| `--letter-spacing \u003Cn>` | Letter spacing for filled mode (integer spaces between characters, 0+) | `1` |\n| `--reverse-gradient` | Reverse gradient colors | `false` |\n| `--palette-colors \u003Ccolors>` | Custom colors (JSON array or comma-separated list) | - |\n| `-l, --list-palettes` | Show all available color palettes | - |\n| `--gallery` | Render text in all available palettes | - |\n| `--color` | Force color output (useful for pipes) | - |\n| `--no-color` | Disable color output | - |\n| `-v, --version` | Show version number | - |\n| `-h, --help` | Show help information | - |\n\n## 🎨 Available Palettes (13 Total)\n\nView all palettes with preview colors:\n\n```bash\nnpx oh-my-logo \"\" --list-palettes\n```\n\n| Palette | Colors | Description |\n|---------|--------|-------------|\n| `grad-blue` | `#4ea8ff → #7f88ff` | Blue gradient (default) |\n| `sunset` | `#ff9966 → #ff5e62 → #ffa34e` | Warm sunset colors |\n| `dawn` | `#00c6ff → #0072ff` | Cool morning blues |\n| `nebula` | `#654ea3 → #eaafc8` | Purple space nebula |\n| `ocean` | `#667eea → #764ba2` | Deep ocean blues |\n| `fire` | `#ff0844 → #ffb199` | Intense fire colors |\n| `forest` | `#134e5e → #71b280` | Natural green tones |\n| `gold` | `#f7971e → #ffd200` | Luxurious gold gradient |\n| `purple` | `#667db6 → #0082c8 → #0078ff` | Royal purple to blue |\n| `mint` | `#00d2ff → #3a7bd5` | Fresh mint colors |\n| `coral` | `#ff9a9e → #fecfef` | Soft coral pink |\n| `matrix` | `#00ff41 → #008f11` | Classic matrix green |\n| `mono` | `#f07178 → #f07178` | Single coral color |\n\n## 💡 Examples\n\n### Basic Usage\n\n```bash\n# Simple logo with default blue gradient\nnpx oh-my-logo \"STARTUP\"\n\n# Multi-line company logo\nnpx oh-my-logo \"MY\\nCOMPANY\" sunset\n\n# Matrix-style hacker text\nnpx oh-my-logo \"HACK THE PLANET\" matrix --filled\n```\n\n### Different Rendering Modes\n\n```bash\n# Outlined ASCII art (default)\nnpx oh-my-logo \"CODE\" fire\n\n# Filled block characters\nnpx oh-my-logo \"CODE\" fire --filled\n\n# Filled with different shadow styles\nnpx oh-my-logo \"CODE\" fire --filled --block-font chrome   # Minimal box shadows\nnpx oh-my-logo \"CODE\" fire --filled --block-font shade    # Dotted shadow effect\nnpx oh-my-logo \"CODE\" fire --filled --block-font simpleBlock # Simple ASCII shadows\n```\n\n### Shadow Styles (--filled mode only)\n\nCustomize the shadow characters in filled mode with `--block-font`:\n\n#### Visual Comparison of Shadow Styles\n\n**`block` (default)** - Box-drawing shadows:\n```\n ██╗  ██╗ ██╗\n ██║  ██║ ██║\n ███████║ ██║\n ██╔══██║ ██║\n ██║  ██║ ██║\n ╚═╝  ╚═╝ ╚═╝\n```\n\n**`chrome`** - Minimal sleek shadows:\n```\n ╦ ╦ ╦\n ╠═╣ ║\n ╩ ╩ ╩\n```\n\n**`shade`** - Dotted shadow effect:\n```\n░░░░░░░░░\n░█░░█░███\n░█░░█░ █\n░████░░█\n░█  █░░█\n░█░░█░███\n░ ░░ ░\n░░░░░░░░░\n```\n\n**`simpleBlock`** - Basic ASCII shadows:\n```\n  _|    _|  _|_|_|\n  _|    _|    _|\n  _|_|_|_|    _|\n  _|    _|    _|\n  _|    _|  _|_|_|\n```\n\n```bash\n# Try different shadow styles\nnpx oh-my-logo \"SHADOW\" sunset --filled --block-font block\nnpx oh-my-logo \"SHADOW\" sunset --filled --block-font chrome\nnpx oh-my-logo \"SHADOW\" sunset --filled --block-font shade\nnpx oh-my-logo \"SHADOW\" sunset --filled --block-font simpleBlock\n```\n\n### Letter Spacing Control\n\nAdjust the spacing between characters for different visual densities:\n\n```bash\n# Default spacing (1 space)\nnpx oh-my-logo \"HI\" --filled\n# Output:  ██╗  ██╗\n\n# Wide spacing (3 spaces)\nnpx oh-my-logo \"HI\" --filled --letter-spacing 3\n# Output:  ██╗   ██╗\n\n# No spacing (touching)\nnpx oh-my-logo \"HI\" --filled --letter-spacing 0  \n# Output: ██╗██╗\n\n# Note: Decimals are truncated (3.7 becomes 3)\nnpx oh-my-logo \"HI\" --filled --letter-spacing 3.7  # Uses 3 spaces\n```\n\n### Reverse Gradient Effect\n\nFlip any color palette for unique visual effects:\n\n```bash\n# Normal sunset gradient (red → orange)\nnpx oh-my-logo \"GRADIENT\" sunset\n\n# Reversed sunset gradient (orange → red)\nnpx oh-my-logo \"GRADIENT\" sunset --reverse-gradient\n\n# Works with filled mode too\nnpx oh-my-logo \"GRADIENT\" sunset --filled --reverse-gradient\n```\n\n### Gradient Directions\n\n```bash\n# Vertical gradient (default)\nnpx oh-my-logo \"LOGO\" ocean\n\n# Horizontal gradient\nnpx oh-my-logo \"LOGO\" ocean -d horizontal\n\n# Diagonal gradient\nnpx oh-my-logo \"LOGO\" ocean -d diagonal\n```\n\n### Custom Fonts\n\n```bash\n# List available fonts (depends on your figlet installation)\nfiglet -f\n\n# Use a different font\nnpx oh-my-logo \"RETRO\" purple -f \"Big\"\n```\n\n### Pipeline and Scripting\n\n```bash\n# Read from stdin\necho \"DYNAMIC LOGO\" | npx oh-my-logo - gold --filled\n\n# Force colors in scripts\nnpx oh-my-logo \"DEPLOY SUCCESS\" forest --color\n\n# Plain text output\nnpx oh-my-logo \"LOG ENTRY\" --no-color\n```\n\n### Gallery Mode\n\n```bash\n# Display text in all available palettes\nnpx oh-my-logo \"PREVIEW\" --gallery\n\n# Gallery with filled characters\nnpx oh-my-logo \"COLORS\" --gallery --filled\n\n# Compare multi-line text across all palettes\nnpx oh-my-logo \"MY\\nLOGO\" --gallery\n\n# Gallery with custom font\nnpx oh-my-logo \"STYLES\" --gallery -f Big\n```\n\n## 🎭 Use Cases\n\n- **Project Banners**: Add eye-catching headers to your README files\n- **Terminal Startup**: Display your company logo when opening terminals  \n- **CI\u002FCD Pipelines**: Make deployment logs more visually appealing\n- **Development Tools**: Brand your CLI applications\n- **Presentations**: Create stunning terminal demos\n- **Personal Branding**: Add flair to your shell prompt or scripts\n\n## ⚙️ Environment Variables\n\n| Variable | Description | Example |\n|----------|-------------|---------|\n| `OHMYLOGO_FONT` | Default figlet font | `export OHMYLOGO_FONT=\"Big\"` |\n\n## 📚 Library API\n\n### Core Functions\n\n#### `render(text, options?)`\nRenders ASCII art with gradient colors.\n\n```typescript\nasync function render(text: string, options?: RenderOptions): Promise\u003Cstring>\n```\n\n- **text** (string): Text to display\n- **options.palette** (PaletteName | string[]): Color palette name or custom colors\n- **options.font** (string): Figlet font name (default: 'Standard')\n- **options.direction** ('vertical' | 'horizontal' | 'diagonal'): Gradient direction\n\nReturns: `Promise\u003Cstring>` - The colored ASCII art\n\n#### `renderFilled(text, options?)`\nRenders filled block characters with gradient.\n\n```typescript\nasync function renderFilled(text: string, options?: RenderInkOptions): Promise\u003Cvoid>\n```\n\n- **text** (string): Text to display\n- **options.palette** (PaletteName | string[]): Color palette name or custom colors\n- **options.font** (BlockFont): Shadow style ('block' | 'chrome' | 'shade' | 'simpleBlock' | '3d')\n- **options.letterSpacing** (number): Integer number of spaces between characters (0 or greater, default: 1)\n\nReturns: `Promise\u003Cvoid>` - Renders directly to stdout\n\n### Palette Functions\n\n- **`PALETTES`**: Object containing all built-in color palettes\n- **`resolvePalette(name)`**: Get palette colors by name\n- **`getPaletteNames()`**: Get array of all palette names\n- **`getDefaultPalette()`**: Get the default palette colors\n- **`getPalettePreview(name)`**: Get a preview string of palette colors\n\n### Type Definitions\n\n```typescript\ntype PaletteName = 'grad-blue' | 'sunset' | 'dawn' | 'nebula' | 'ocean' | \n                   'fire' | 'forest' | 'gold' | 'purple' | 'mint' | \n                   'coral' | 'matrix' | 'mono';\n\ninterface RenderOptions {\n  palette?: PaletteName | string[];\n  font?: string;\n  direction?: 'vertical' | 'horizontal' | 'diagonal';\n}\n\ntype BlockFont = '3d' | 'block' | 'chrome' | 'console' | 'grid' | \n                 'huge' | 'pallet' | 'shade' | 'simple' | 'simple3d' | \n                 'simpleBlock' | 'slick' | 'tiny';\n\ninterface RenderInkOptions {\n  palette?: PaletteName | string[];\n  font?: BlockFont;\n  letterSpacing?: number;\n}\n```\n\n## 🛠️ Development\n\nWant to contribute or customize?\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyourusername\u002Foh-my-logo.git\ncd oh-my-logo\nnpm install\n\n# Development mode\nnpm run dev -- \"TEST\" sunset --filled\n\n# Build\nnpm run build\n\n# Test the built version\nnode dist\u002Findex.js \"HELLO\" matrix --filled\n```\n\n### 🧪 Testing\n\nRun the test suite with Vitest:\n\n```bash\n# Run all tests in watch mode\nnpm run test\n\n# Run tests once (CI mode)\nnpm run test:coverage\n\n# Run tests with UI\nnpm run test:ui\n\n# Run specific test file\nnpm test -- src\u002F__tests__\u002Fcli.test.ts\n```\n\nThe test suite includes:\n- Unit tests for all library functions\n- CLI integration tests\n- Color palette validation\n- Error handling scenarios\n- TTY\u002Fcolor detection logic\n\nTests are located in `src\u002F__tests__\u002F` with the following structure:\n- `cli.test.ts` - CLI command line behavior\n- `lib.test.ts` - Library API functions\n- `palettes.test.ts` - Color palette system\n- `renderer.test.ts` - ASCII art rendering\n- `utils\u002F` - Utility function tests\n\n### Testing Terminal Stability\n\nA test script is provided to verify that the `--filled` mode properly cleans up terminal state:\n\n```bash\n# Run terminal stability stress test\n.\u002Fscripts\u002Ftest-filled-mode.sh\n```\n\nThis script:\n- Runs 55 consecutive renders (5 iterations × 11 fonts)\n- Tests all available fonts with random color palettes\n- Verifies terminal display remains intact after extensive use\n- Helps detect any terminal corruption issues\n\nThis is particularly useful for:\n- Testing after making changes to the Ink renderer\n- Verifying terminal compatibility with different environments\n- Stress testing the `--filled` mode implementation\n\n### Adding New Palettes\n\nEdit `src\u002Fpalettes.ts` to add your own color combinations:\n\n```typescript\nexport const PALETTES = {\n  \u002F\u002F ... existing palettes\n  'my-palette': ['#ff0000', '#00ff00', '#0000ff'],\n} as const;\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. Whether it's:\n\n- 🎨 New color palettes\n- 🔧 Bug fixes\n- ✨ New features\n- 📖 Documentation improvements\n\n## 📄 License\n\nMIT AND CC0-1.0\n\n---\n\n**Made with ❤️ for the terminal lovers**\n\n*Transform your boring text into stunning visual logos!*\n","# oh-my-logo\n\n[![在 Awesome Gemini CLI 中被提及](https:\u002F\u002Fawesome.re\u002Fmentioned-badge.svg)](https:\u002F\u002Fgithub.com\u002FPiebald-AI\u002Fawesome-gemini-cli)\n\n![Logo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshinshin86_oh-my-logo_readme_b2ec3029705e.png)\n\n在你的终端中创建带有精美渐变色彩的惊艳 ASCII 艺术 Logo！非常适合用作项目横幅、初创公司 Logo，或者只是让你的终端看起来超酷。\n\n你还可以通过将其作为库集成到自己的程序中，生成类似这样的精彩动画！\n\n![GIF 演示](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshinshin86_oh-my-logo_readme_7d0f7de72fa4.gif)\n\n![GIF 演示 2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshinshin86_oh-my-logo_readme_1ed269305e5c.gif)\n\n`oh-my-logo` 生成的 Logo 均采用 CC0 协议（公有领域），你可以随意在任何地方使用它们。\n\n## ✨ 特性\n\n- 🎨 **两种渲染模式**：选择描边的 ASCII 艺术或填充的方块字符\n- 🌈 **13 种精美调色板**：从日落渐变到矩阵绿\n- 📐 **渐变方向**：垂直、水平和对角线渐变\n- 🔤 **多行支持**：创建包含多行文本的 Logo\n- ⚡ **零依赖**：只需 `npx` 即可立即运行，无需安装\n- 🎛️ **可定制化**：使用不同字体并自定义颜色方案\n- 🎭 **阴影样式**：在填充模式下，可通过不同的方块字体自定义阴影效果\n- 🔄 **字母间距**：针对 `--filled` 模式，调整字符间距以实现不同的视觉密度\n- 🔄 **反向渐变**：翻转颜色调色板，打造独特效果\n\n## 🚀 快速开始\n\n无需安装！现在就试试：\n\n```bash\nnpx oh-my-logo \"HELLO WORLD\"\n```\n\n想要填充字符吗？添加 `--filled` 标志：\n\n```bash\nnpx oh-my-logo \"YOUR LOGO\" sunset --filled\n```\n\n### 🆕 v0.3.0 新增功能\n\n**在填充模式下自定义阴影样式：**\n```bash\n# 方框绘制阴影（默认）\nnpx oh-my-logo \"STYLE\" fire --filled --block-font block\n\n# 极简流畅阴影\nnpx oh-my-logo \"STYLE\" fire --filled --block-font chrome\n\n# 点状\u002F阴影效果\nnpx oh-my-logo \"STYLE\" fire --filled --block-font shade\n```\n\n**控制方块字体的字母间距：**\n```bash\n# 宽间距（字母间空 5 格）\nnpx oh-my-logo \"WIDE\" ocean --filled --letter-spacing 5\n\n# 紧密间距（无空格）\nnpx oh-my-logo \"TIGHT\" ocean --filled --letter-spacing 0\n```\n\n**反向渐变带来独特效果：**\n```bash\n# 反转任意颜色调色板\nnpx oh-my-logo \"REVERSE\" sunset --reverse-gradient\n\n# 同样适用于填充模式\nnpx oh-my-logo \"REVERSE\" sunset --filled --reverse-gradient\n```\n\n## 📦 安装\n\n### 全局安装（CLI）\n```bash\nnpm install -g oh-my-logo\n```\n\n### 或直接使用 npx\n```bash\nnpx oh-my-logo \"Your Text\"\n```\n\n### 作为库\n```bash\nnpm install oh-my-logo\n```\n\n## 🎯 使用方法\n\n### CLI 使用\n\n```bash\noh-my-logo \u003Ctext> [palette] [options]\n```\n\n#### 自定义颜色调色板（CLI）\n\n通过 `--palette-colors \u003Ccolors>` 提供自定义渐变。\n\n```bash\n# JSON 数组（建议使用双引号）\nnpx oh-my-logo \"MY LOGO\" --palette-colors '[\"#00ff00\",\"#ffa500\",\"#ff0000\"]'\n\n# 简单的逗号分隔表示法（每种颜色用引号括起来）\nnpx oh-my-logo \"MY LOGO\" --palette-colors \"'#00ff00', '#ffa500', '#ff0000'\"\n```\n\n- 逗号分隔形式便于快速手动 CLI 使用和单行命令。\n- JSON 数组形式则适合将调色板存储在 Shell 脚本或 CI 变量中，从 Node.js 中传递 `JSON.stringify` 的结果，或将数组保存在配置文件中。\n- 多余的空白会自动被移除。\n- 颜色字符串可以是十六进制代码，也可以是 `gradient-string` 支持的任何 CSS 颜色。\n- 你可以将自定义调色板与其他选项结合使用，例如 `--reverse-gradient` 或 `--filled`。\n- 位置参数 `[palette]` 仍然只接受内置调色板名称。\n\n### 库使用\n\n```javascript\nimport { render, renderFilled, PALETTES, getPaletteNames } from 'oh-my-logo';\n\n\u002F\u002F 基础 ASCII 艺术渲染\nconst logo = await render('HELLO WORLD', {\n  palette: 'sunset',\n  direction: 'horizontal'\n});\nconsole.log(logo);\n\n\u002F\u002F 使用自定义颜色\nconst customLogo = await render('MY BRAND', {\n  palette: ['#ff0000', '#00ff00', '#0000ff'],\n  font: 'Big',\n  direction: 'diagonal'\n});\nconsole.log(customLogo);\n\n\u002F\u002F 填充方块字符\nawait renderFilled('AWESOME', {\n  palette: 'fire'\n});\n\n\u002F\u002F 填充并使用自定义阴影风格\nawait renderFilled('SHADOW', {\n  palette: 'sunset',\n  font: 'shade'  \u002F\u002F 使用点状阴影效果\n});\n\n\u002F\u002F 填充并设置宽间距\nawait renderFilled('WIDE', {\n  palette: 'fire',\n  letterSpacing: 3\n});\n\n\u002F\u002F TypeScript 使用\nimport { render, RenderOptions, PaletteName } from 'oh-my-logo';\n\nconst options: RenderOptions = {\n  palette: 'ocean' as PaletteName,\n  direction: 'vertical',\n  font: 'Standard'\n};\n\nconst typedLogo = await render('TYPESCRIPT', options);\nconsole.log(typedLogo);\n\n\u002F\u002F 获取调色板信息\nconsole.log('可用调色板：', getPaletteNames());\nconsole.log('日落调色板的颜色：', PALETTES.sunset);\n```\n\n### 参数\n\n- **`\u003Ctext>`**：要显示的文本\n  - 使用 `\"\\n\"` 表示换行：`\"LINE1\\nLINE2\"`\n  - 使用 `\"-\"` 从标准输入读取\n- **`[palette]`**：颜色调色板名称（默认：`grad-blue`）\n\n### 选项\n\n| 选项 | 描述 | 默认值 |\n|--------|-------------|---------|\n| `-f, --font \u003Cname>` | Figlet 字体名称 | `Standard` |\n| `-d, --direction \u003Cdir>` | 渐变方向（`vertical`、`horizontal`、`diagonal`） | `vertical` |\n| `--filled` | 使用填充的方块字符代替描边的 ASCII | `false` |\n| `--block-font \u003Cfont>` | 填充模式下的字体（`3d`、`block`、`chrome`、`grid`、`huge`、`pallet`、`shade`、`simple`、`simple3d`、`simpleBlock`、`slick`、`tiny`） | - |\n| `--letter-spacing \u003Cn>` | 填充模式下的字母间距（字符间的整数空格，≥0） | `1` |\n| `--reverse-gradient` | 反转渐变颜色 | `false` |\n| `--palette-colors \u003Ccolors>` | 自定义颜色（JSON 数组或逗号分隔列表） | - |\n| `-l, --list-palettes` | 显示所有可用的调色板 | - |\n| `--gallery` | 将文本以所有可用调色板渲染 | - |\n| `--color` | 强制启用彩色输出（适用于管道） | - |\n| `--no-color` | 禁用彩色输出 | - |\n| `-v, --version` | 显示版本号 | - |\n| `-h, --help` | 显示帮助信息 | - |\n\n## 🎨 可用调色板（共13种）\n\n查看所有带有预览颜色的调色板：\n\n```bash\nnpx oh-my-logo \"\" --list-palettes\n```\n\n| 调色板 | 颜色 | 描述 |\n|---------|--------|-------------|\n| `grad-blue` | `#4ea8ff → #7f88ff` | 蓝色渐变（默认） |\n| `sunset` | `#ff9966 → #ff5e62 → #ffa34e` | 温暖的日落色彩 |\n| `dawn` | `#00c6ff → #0072ff` | 清凉的晨间蓝色 |\n| `nebula` | `#654ea3 → #eaafc8` | 紫色的宇宙星云 |\n| `ocean` | `#667eea → #764ba2` | 深邃的海洋蓝 |\n| `fire` | `#ff0844 → #ffb199` | 强烈的火焰色彩 |\n| `forest` | `#134e5e → #71b280` | 自然的绿色调 |\n| `gold` | `#f7971e → #ffd200` | 奢华的金色渐变 |\n| `purple` | `#667db6 → #0082c8 → #0078ff` | 皇家紫到蓝色 |\n| `mint` | `#00d2ff → #3a7bd5` | 清新的薄荷色 |\n| `coral` | `#ff9a9e → #fecfef` | 柔和的珊瑚粉 |\n| `matrix` | `#00ff41 → #008f11` | 经典的黑客帝国绿色 |\n| `mono` | `#f07178 → #f07178` | 单一的珊瑚色 |\n\n## 💡 示例\n\n### 基本用法\n\n```bash\n# 使用默认蓝色渐变的简单标志\nnpx oh-my-logo \"STARTUP\"\n\n# 多行公司标志\nnpx oh-my-logo \"MY\\nCOMPANY\" sunset\n\n# 黑客风格的矩阵文字\nnpx oh-my-logo \"HACK THE PLANET\" matrix --filled\n```\n\n### 不同的渲染模式\n\n```bash\n# 默认的描边 ASCII 图形\nnpx oh-my-logo \"CODE\" fire\n\n# 填充的方块字符\nnpx oh-my-logo \"CODE\" fire --filled\n\n# 使用不同阴影风格的填充效果\nnpx oh-my-logo \"CODE\" fire --filled --block-font chrome   # 极简的方框阴影\nnpx oh-my-logo \"CODE\" fire --filled --block-font shade    # 点状阴影效果\nnpx oh-my-logo \"CODE\" fire --filled --block-font simpleBlock # 简单的 ASCII 阴影\n```\n\n### 阴影风格（仅限填充模式）\n\n在填充模式下，使用 `--block-font` 自定义阴影字符：\n\n#### 阴影风格的视觉对比\n\n**`block`（默认）** - 方框绘制的阴影：\n```\n ██╗  ██╗ ██╗\n ██║  ██║ ██║\n ███████║ ██║\n ██╔══██║ ██║\n ██║  ██║ ██║\n ╚═╝  ╚═╝ ╚═╝\n```\n\n**`chrome`** - 极简时尚的阴影：\n```\n ╦ ╦ ╦\n ╠═╣ ║\n ╩ ╩ ╩\n```\n\n**`shade`** - 点状阴影效果：\n```\n░░░░░░░░░\n░█░░█░███\n░█░░█░ █\n░████░░█\n░█  █░░█\n░█░░█░███\n░ ░░ ░\n░░░░░░░░░\n```\n\n**`simpleBlock`** - 基础的 ASCII 阴影：\n```\n  _|    _|  _|_|_|\n  _|    _|    _|\n  _|_|_|_|    _|\n  _|    _|    _|\n  _|    _|  _|_|_|\n```\n\n```bash\n# 尝试不同的阴影风格\nnpx oh-my-logo \"SHADOW\" sunset --filled --block-font block\nnpx oh-my-logo \"SHADOW\" sunset --filled --block-font chrome\nnpx oh-my-logo \"SHADOW\" sunset --filled --block-font shade\nnpx oh-my-logo \"SHADOW\" sunset --filled --block-font simpleBlock\n```\n\n### 字母间距控制\n\n调整字符之间的间距以获得不同的视觉密度：\n\n```bash\n# 默认间距（1个空格）\nnpx oh-my-logo \"HI\" --filled\n# 输出：  ██╗  ██╗\n\n# 宽间距（3个空格）\nnpx oh-my-logo \"HI\" --filled --letter-spacing 3\n# 输出：  ██╗   ██╗\n\n# 无间距（紧贴）\nnpx oh-my-logo \"HI\" --filled --letter-spacing 0  \n# 输出： ██╗██╗\n\n# 注意：小数会被截断（3.7变为3）\nnpx oh-my-logo \"HI\" --filled --letter-spacing 3.7  # 实际使用3个空格\n```\n\n### 反向渐变效果\n\n翻转任何调色板以获得独特的视觉效果：\n\n```bash\n# 正常的日落渐变（红色→橙色）\nnpx oh-my-logo \"GRADIENT\" sunset\n\n# 反向的日落渐变（橙色→红色）\nnpx oh-my-logo \"GRADIENT\" sunset --reverse-gradient\n\n# 填充模式同样适用\nnpx oh-my-logo \"GRADIENT\" sunset --filled --reverse-gradient\n```\n\n### 渐变方向\n\n```bash\n# 默认的垂直渐变\nnpx oh-my-logo \"LOGO\" ocean\n\n# 水平渐变\nnpx oh-my-logo \"LOGO\" ocean -d horizontal\n\n# 对角线渐变\nnpx oh-my-logo \"LOGO\" ocean -d diagonal\n```\n\n### 自定义字体\n\n```bash\n# 列出可用字体（取决于你的 figlet 安装）\nfiglet -f\n\n# 使用不同的字体\nnpx oh-my-logo \"RETRO\" purple -f \"Big\"\n```\n\n### 管道与脚本\n\n```bash\n# 从标准输入读取\necho \"DYNAMIC LOGO\" | npx oh-my-logo - gold --filled\n\n# 在脚本中强制指定颜色\nnpx oh-my-logo \"DEPLOY SUCCESS\" forest --color\n\n# 纯文本输出\nnpx oh-my-logo \"LOG ENTRY\" --no-color\n```\n\n### 画廊模式\n\n```bash\n# 以所有可用调色板显示文本\nnpx oh-my-logo \"PREVIEW\" --gallery\n\n# 填充字符的画廊\nnpx oh-my-logo \"COLORS\" --gallery --filled\n\n# 比较多行文本在所有调色板中的效果\nnpx oh-my-logo \"MY\\nLOGO\" --gallery\n\n# 使用自定义字体的画廊\nnpx oh-my-logo \"STYLES\" --gallery -f Big\n```\n\n## 🎭 使用场景\n\n- **项目横幅**：为你的 README 文件添加引人注目的标题\n- **终端启动时显示**：在打开终端时显示公司标志\n- **CI\u002FCD 流水线**：让部署日志更具视觉吸引力\n- **开发工具**：为你的命令行应用程序打造品牌\n- **演示文稿**：创建精彩的终端演示\n- **个人品牌**：为你的 shell 提示符或脚本增添特色\n\n## ⚙️ 环境变量\n\n| 变量 | 描述 | 示例 |\n|----------|-------------|---------|\n| `OHMYLOGO_FONT` | 默认 figlet 字体 | `export OHMYLOGO_FONT=\"Big\"` |\n\n## 📚 库 API\n\n### 核心函数\n\n#### `render(text, options?)`\n渲染带有渐变颜色的 ASCII 图形。\n\n```typescript\nasync function render(text: string, options?: RenderOptions): Promise\u003Cstring>\n```\n\n- **text**（字符串）：要显示的文本\n- **options.palette**（PaletteName | string[]）：调色板名称或自定义颜色\n- **options.font**（字符串）：Figlet 字体名称（默认：'Standard'）\n- **options.direction**（'vertical' | 'horizontal' | 'diagonal'）：渐变方向\n\n返回值：`Promise\u003Cstring>` - 彩色的 ASCII 图形\n\n#### `renderFilled(text, options?)`\n渲染带有渐变的填充方块字符。\n\n```typescript\nasync function renderFilled(text: string, options?: RenderInkOptions): Promise\u003Cvoid>\n```\n\n- **text**（字符串）：要显示的文本\n- **options.palette**（PaletteName | string[]）：调色板名称或自定义颜色\n- **options.font**（BlockFont）：阴影风格（'block' | 'chrome' | 'shade' | 'simpleBlock' | '3d'）\n- **options.letterSpacing**（数字）：字符之间的空格数（0 或以上，默认：1）\n\n返回值：`Promise\u003Cvoid>` - 直接渲染到标准输出\n\n### 调色板相关函数\n\n- **`PALETTES`**：包含所有内置调色板的对象\n- **`resolvePalette(name)`**：根据名称获取调色板颜色\n- **`getPaletteNames()`**：获取所有调色板名称的数组\n- **`getDefaultPalette()`**：获取默认调色板的颜色\n- **`getPalettePreview(name)`**：获取调色板颜色的预览字符串\n\n### 类型定义\n\n```typescript\ntype PaletteName = 'grad-blue' | 'sunset' | 'dawn' | 'nebula' | 'ocean' | \n                   'fire' | 'forest' | 'gold' | 'purple' | 'mint' | \n                   'coral' | 'matrix' | 'mono';\n\ninterface RenderOptions {\n  palette?: PaletteName | string[];\n  font?: string;\n  direction?: 'vertical' | 'horizontal' | 'diagonal';\n}\n\ntype BlockFont = '3d' | 'block' | 'chrome' | 'console' | 'grid' | \n                 'huge' | 'pallet' | 'shade' | 'simple' | 'simple3d' | \n                 'simpleBlock' | 'slick' | 'tiny';\n\ninterface RenderInkOptions {\n  palette?: PaletteName | string[];\n  font?: BlockFont;\n  letterSpacing?: number;\n}\n```\n\n## 🛠️ 开发\n\n想贡献代码或进行自定义吗？\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyourusername\u002Foh-my-logo.git\ncd oh-my-logo\nnpm install\n\n# 开发模式\nnpm run dev -- \"TEST\" sunset --filled\n\n# 构建\nnpm run build\n\n# 测试构建后的版本\nnode dist\u002Findex.js \"HELLO\" matrix --filled\n```\n\n### 🧪 测试\n\n使用 Vitest 运行测试套件：\n\n```bash\n# 在监听模式下运行所有测试\nnpm run test\n\n# 单次运行测试（CI 模式）\nnpm run test:coverage\n\n# 带 UI 的测试\nnpm run test:ui\n\n# 运行特定测试文件\nnpm test -- src\u002F__tests__\u002Fcli.test.ts\n```\n\n测试套件包括：\n- 所有库函数的单元测试\n- CLI 集成测试\n- 颜色调色板验证\n- 错误处理场景\n- TTY\u002F颜色检测逻辑\n\n测试文件位于 `src\u002F__tests__\u002F`，结构如下：\n- `cli.test.ts` - CLI 命令行行为\n- `lib.test.ts` - 库 API 函数\n- `palettes.test.ts` - 颜色调色板系统\n- `renderer.test.ts` - ASCII 艺术渲染\n- `utils\u002F` - 工具函数测试\n\n### 终端稳定性测试\n\n提供了一个测试脚本，用于验证 `--filled` 模式是否能正确清理终端状态：\n\n```bash\n# 运行终端稳定性压力测试\n.\u002Fscripts\u002Ftest-filled-mode.sh\n```\n\n该脚本：\n- 连续运行 55 次渲染（5 次迭代 × 11 种字体）\n- 使用随机颜色调色板测试所有可用字体\n- 验证在大量使用后终端显示仍保持完整\n- 帮助检测任何终端损坏问题\n\n这尤其适用于：\n- 对 Ink 渲染器进行修改后测试\n- 验证不同环境下的终端兼容性\n- 对 `--filled` 模式的实现进行压力测试\n\n### 添加新调色板\n\n编辑 `src\u002Fpalettes.ts` 来添加您自己的颜色组合：\n\n```typescript\nexport const PALETTES = {\n  \u002F\u002F ... 现有的调色板\n  'my-palette': ['#ff0000', '#00ff00', '#0000ff'],\n} as const;\n```\n\n## 🤝 贡献\n\n欢迎贡献！请随时提交 Pull Request。无论是：\n\n- 🎨 新的颜色调色板\n- 🔧 Bug 修复\n- ✨ 新功能\n- 📖 文档改进\n\n## 📄 许可证\n\nMIT 和 CC0-1.0\n\n---\n\n**为终端爱好者用心打造**\n\n*将枯燥的文字转化为惊艳的视觉 Logo！*","# oh-my-logo 快速上手指南\n\n`oh-my-logo` 是一个强大的命令行工具，用于在终端中生成带有精美渐变色彩的 ASCII 艺术 Logo。它无需复杂配置，支持多种渲染模式（轮廓或填充块）、13 种内置配色方案以及自定义字体，非常适合用于项目横幅、启动画面或 CLI 工具的品牌展示。\n\n## 环境准备\n\n*   **操作系统**：Windows, macOS, Linux\n*   **前置依赖**：\n    *   已安装 [Node.js](https:\u002F\u002Fnodejs.org\u002F) (建议版本 14.x 或更高)\n    *   已安装 `npm` (随 Node.js 自动安装)\n*   **网络提示**：由于 `npx` 需要从 npm 官方仓库拉取包，国内用户若遇到下载缓慢或超时问题，建议临时切换至淘宝镜像源：\n    ```bash\n    npm config set registry https:\u002F\u002Fregistry.npmmirror.com\n    ```\n\n## 安装步骤\n\n你可以选择**免安装直接使用**（推荐尝试）或**全局安装**。\n\n### 方式一：免安装直接使用 (npx)\n无需任何安装步骤，直接运行以下命令即可体验：\n```bash\nnpx oh-my-logo \"HELLO WORLD\"\n```\n\n### 方式二：全局安装 (CLI)\n如果你需要频繁使用该命令，建议全局安装：\n```bash\nnpm install -g oh-my-logo\n```\n安装完成后，可直接在任何目录运行 `oh-my-logo` 命令。\n\n### 方式三：作为库安装 (开发集成)\n若需在 Node.js 项目中通过代码调用：\n```bash\nnpm install oh-my-logo\n```\n\n## 基本使用\n\n### 1. 生成基础 Logo\n最简单的用法是直接传入文本，默认使用蓝色渐变和标准字体：\n```bash\nnpx oh-my-logo \"STARTUP\"\n```\n\n### 2. 指定配色方案\n在文本后添加内置配色名称（如 `sunset`, `fire`, `matrix` 等）：\n```bash\nnpx oh-my-logo \"MY LOGO\" sunset\n```\n\n### 3. 使用填充块模式 (--filled)\n生成更具视觉冲击力的实心块状 Logo：\n```bash\nnpx oh-my-logo \"AWESOME\" fire --filled\n```\n\n### 4. 多行文本支持\n使用 `\\n` 换行符创建多行 Logo：\n```bash\nnpx oh-my-logo \"LINE1\\nLINE2\" ocean\n```\n\n### 5. 预览所有配色\n查看支持的 13 种配色方案及其效果：\n```bash\nnpx oh-my-logo \"\" --list-palettes\n```\n\n> **提示**：生成的 ASCII 艺术图遵循 CC0 协议（公共领域），可自由用于任何商业或个人项目。","某初创团队在开发一款名为\"NovaCLI\"的命令行工具时，希望用户在终端启动程序时能看到极具视觉冲击力的品牌 Logo，以增强专业感和辨识度。\n\n### 没有 oh-my-logo 时\n- 开发者只能手动编写单调的纯文本 ASCII 字符画，不仅耗时费力，而且难以对齐，稍作修改就会导致整体布局错乱。\n- 终端输出缺乏色彩层次，无法利用渐变色展示品牌活力，导致启动界面显得陈旧且缺乏现代感。\n- 若需调整字体风格或阴影效果，必须重新查找字符映射表并逐行重写代码，维护成本极高且容易出错。\n- 团队内部对于 Logo 样式难以达成一致，因为缺乏快速预览不同配色方案（如日落渐变、矩阵绿）的工具，沟通效率低下。\n\n### 使用 oh-my-logo 后\n- 团队只需运行一行 `npx oh-my-logo \"NOVA CLI\" sunset --filled` 命令，即可瞬间生成带有精美渐变填充效果的品牌 Logo，无需手动绘制。\n- 通过切换内置的 13 种调色板和梯度方向，开发者能立即预览多种视觉风格，快速确定最符合品牌调性的配色方案。\n- 利用 `--block-font` 和 `--letter-spacing` 参数，可以轻松微调阴影风格和字符间距，实现从极简到厚重的多种视觉密度，灵活适配不同终端环境。\n- 将 oh-my-logo 作为库集成到项目代码中后，每次版本更新或配置变更时，Logo 都能自动渲染，彻底消除了人工维护字符画的繁琐工作。\n\noh-my-logo 将原本需要数小时的手工绘图与调试过程压缩为秒级的命令行操作，让终端应用也能拥有媲美图形界面的品牌表现力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshinshin86_oh-my-logo_b2ec3029.png","shinshin86","Yuki Shindo","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fshinshin86_bfed1bc4.jpg","I love Beatles and Animal Collective.",null,"Japan","https:\u002F\u002Fshinshin86.com","https:\u002F\u002Fgithub.com\u002Fshinshin86",[84,88,92],{"name":85,"color":86,"percentage":87},"TypeScript","#3178c6",84.3,{"name":89,"color":90,"percentage":91},"JavaScript","#f1e05a",13,{"name":93,"color":94,"percentage":95},"Shell","#89e051",2.7,1440,59,"2026-04-16T04:50:56","NOASSERTION","Linux, macOS, Windows","不需要 GPU","未说明",{"notes":104,"python":105,"dependencies":106},"该工具是基于 Node.js 的命令行工具，无需安装即可通过 npx 直接运行。主要依赖 figlet 生成 ASCII 艺术字和 gradient-string 实现渐变色彩。支持作为库在 JavaScript\u002FTypeScript 项目中调用。","不需要 Python",[107,108,109,110],"Node.js","npm\u002Fnpx","figlet","gradient-string",[14],[113,114,115,116],"ascii","ascii-art","cli","logo","2026-03-27T02:49:30.150509","2026-04-17T08:26:00.254994",[120,125,130,135,140,144],{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},36365,"如何在 CLI 模式下生成自定义渐变色的填充文本？","可以使用 `--palette-colors` 参数配合 JSON 数组格式的颜色代码来实现。首先确保安装了最新版本：`npm install -g oh-my-logo@latest`。然后运行如下命令：\n`npx oh-my-logo \"GEOL\" --filled --palette-colors '[\"#00ff00\",\"#ffa500\",\"#ff0000\"]'`\n其中颜色数组定义了从绿色到橙色再到红色的渐变效果。","https:\u002F\u002Fgithub.com\u002Fshinshin86\u002Foh-my-logo\u002Fissues\u002F19",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},36366,"如何增加输出 ASCII 艺术字的高度（字体大小）？","当前实现不支持通用的“字体大小”缩放选项，但可以通过切换不同的字体来获得更高大的输出效果：\n1. **填充模式 (`--filled`)**：使用 `--block-font` 参数切换块字体。例如默认 `block` 字体高 6 行，而 `huge` 字体对于短文本可达 11 行高。\n   命令示例：`npx oh-my-logo \"HI\" mint --filled --block-font huge`\n2. **普通模式**：使用 `-f` 或 `--font` 参数切换 figlet 字体（内置 295 种字体）。例如 `Standard` 为 5 行，`Epic` 为 8 行。\n   命令示例：`npx oh-my-logo \"MATRIX\" mint -f Epic`","https:\u002F\u002Fgithub.com\u002Fshinshin86\u002Foh-my-logo\u002Fissues\u002F21",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},36367,"为什么在使用 `--filled` 选项时，包含特殊符号（如 `>`）的文本会报错或无法显示？","这是因为 `--filled` 模式内部依赖 `ink-big-text` 库，而该库又基于 `cfonts`。`cfonts` 无法正确处理某些特殊字符（特别是 `>`），会返回空字符串，导致程序检测到“空文本”并报错。\n**解决方案**：\n- 如果文本中包含 `>` 等特殊符号，请**不要使用** `--filled` 选项，改用普通的 ASCII 艺术模式（基于 `figlet`），它可以正确处理这些字符。\n- 或者移除文本中的不支持字符后再使用填充模式。","https:\u002F\u002Fgithub.com\u002Fshinshin86\u002Foh-my-logo\u002Fissues\u002F11",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},36368,"频繁使用 `--filled` 模式后终端出现乱码或显示损坏怎么办？","这是一个已知问题，原因是 Ink 渲染器在卸载时未完全重置终端状态，导致转义序列累积。该问题已在 **v0.3.1** 版本中修复。\n**解决方案**：\n1. 升级包到最新版本：`npm install -g oh-my-logo@latest` (确保版本 >= 0.3.1)。\n2. 如果仍遇到问题，可以尝试手动重置终端样式，或者重启终端会话。\n维护者已添加了清理逻辑（重置样式、显示光标、清除行尾），通常升级即可解决。","https:\u002F\u002Fgithub.com\u002Fshinshin86\u002Foh-my-logo\u002Fissues\u002F16",{"id":141,"question_zh":142,"answer_zh":143,"source_url":124},36369,"如何将 oh-my-logo 生成的视觉效果嵌入到 Go 语言程序中？","虽然官方文档主要关注 CLI 使用，但根据社区反馈，集成非常平滑。你可以直接在 Go 程序中通过执行系统命令来调用 oh-my-logo。\n**建议步骤**：\n1. 确保目标环境中已全局安装 oh-my-logo (`npm install -g oh-my-logo`)。\n2. 在 Go 代码中使用 `os\u002Fexec` 包调用 `npx oh-my-logo` 命令，并捕获其标准输出。\n3. 将捕获到的带有 ANSI 颜色代码的字符串直接打印到 Go 程序的终端输出中即可保留彩色效果。\n参考命令格式：`npx oh-my-logo \"TEXT\" --filled --palette-colors '[\"#color1\", \"#color2\"]'`",{"id":145,"question_zh":146,"answer_zh":147,"source_url":129},36370,"oh-my-logo 支持哪些字体和颜色主题？","**字体方面**：\n- **普通模式**：支持 295 种 figlet 字体（如 Standard, Epic, Ghost 等），通过 `-f` 指定。\n- **填充模式**：支持多种 block 字体（如 block, huge, chrome, grid 等），通过 `--block-font` 指定。\n**颜色方面**：\n- 支持预设主题（如 `mint`, `fire` 等）直接作为参数传入。\n- 支持自定义渐变，通过 `--palette-colors` 传入十六进制颜色数组（例如 `[\"#ff0000\", \"#00ff00\"]`）。\n具体可用字体列表可通过尝试不同参数或查看 figlet\u002Fcfonts 文档获取。",[149,154,159,164,169,174],{"id":150,"version":151,"summary_zh":152,"released_at":153},289184,"v0.4.0","## 🎨 v0.4.0 新增功能\n* 添加了 `--palette-colors` CLI 选项，可通过 JSON 数组或逗号分隔的列表指定自定义渐变色。","2025-10-05T07:05:50",{"id":155,"version":156,"summary_zh":157,"released_at":158},289185,"v0.3.2","## 错误修复\n- 修复了 README.md 中的图片 URL，使其使用绝对路径\n- 图片现在能在 npm 包页面上正常显示","2025-08-31T05:12:44",{"id":160,"version":161,"summary_zh":162,"released_at":163},289186,"v0.3.1","## 🐛 错误修复\n\n### 修复了使用 `--filled` 模式时终端显示混乱的问题 (#16)\n\n本次发布修复了一个关键问题：频繁使用 `--filled` 模式可能导致终端显示出现混乱。\n\n## 变更内容\n\n- **终端清理优化**：在每次 `--filled` 模式渲染后，添加了完整的 ANSI 转义序列清理：\n  - 使用 SGR 重置代码清除颜色和样式\n  - 恢复光标可见性\n  - 清理残留的行迹\n- **新增终端稳定性测试**：引入新的压力测试脚本，用于验证多次渲染后终端的完整性。\n\n## 技术细节\n\n该问题是由 Ink 渲染器卸载时未完全清理终端状态导致的。此次修复确保每次渲染后都会正确重置所有终端属性，从而避免转义序列累积而引起显示混乱。\n\n### 测试\n\n现提供一个新的测试脚本来验证终端稳定性：\n```bash\n.\u002Fscripts\u002Ftest-filled-mode.sh\n```\n\n## 贡献者\n\n- @shinshin86 — 主要修复实现\n- @bl-ue — 添加了 Awesome Gemini CLI 徽章\n\n## 完整变更日志\n\nhttps:\u002F\u002Fgithub.com\u002Fshinshin86\u002Foh-my-logo\u002Fcompare\u002Fv0.3.0...v0.3.1","2025-08-30T23:14:48",{"id":165,"version":166,"summary_zh":167,"released_at":168},289187,"v0.3.0","## 🎨 v0.3.0 新增内容\n\n本次发布引入了三项强大的新功能，让您能够以更多自定义选项来提升 ASCII 艺术 Logo 的效果\\！\n\n### ✨ 新特性\n\n#### 1. 🎭 **可自定义的阴影样式** (`--block-font`)\n在填充模式下，您可以使用不同的方块字体来自定义阴影效果：\n- `block`（默认）—— 方框绘制风格的阴影\n- `chrome` —— 极简流畅的阴影  \n- `shade` —— 点状阴影效果\n- `simpleBlock` —— 基础 ASCII 阴影\n- 还有另外 9 种样式：`3d`、`grid`、`huge`、`pallet`、`simple`、`simple3d`、`slick`、`tiny`\n\n```sh\n# 尝试不同的阴影样式\nnpx oh-my-logo \"STYLE\" fire --filled --block-font chrome\nnpx oh-my-logo \"STYLE\" fire --filled --block-font shade\n```\n\n#### 2. 🔤 **字母间距控制** (`--letter-spacing`)\n调整字符之间的间距，以实现不同的视觉密度：\n\n```sh\n# 宽间距（字母间相隔 5 个空格）\nnpx oh-my-logo \"WIDE\" ocean --filled --letter-spacing 5\n\n# 紧密间距（无空格）\nnpx oh-my-logo \"TIGHT\" ocean --filled --letter-spacing 0\n```\n\n#### 3. 🔄 **反向渐变效果** (`--reverse-gradient`)\n反转任何颜色调色板，创造出独特的视觉效果：\n\n```sh\n# 反转任意调色板\nnpx oh-my-logo \"REVERSE\" sunset --reverse-gradient\n\n# 同样适用于填充模式\nnpx oh-my-logo \"REVERSE\" sunset --filled --reverse-gradient\n```\n\n### 📚 库 API 更新\n\n`renderFilled()` 新增选项：\n```typescript\nawait renderFilled('AWESOME', {\n  palette: 'fire',\n  font: 'chrome',        \u002F\u002F 新增：阴影样式\n  letterSpacing: 3       \u002F\u002F 新增：字符间距\n});\n```\n\n### 🧪 测试\n- 为所有新功能添加了全面的测试覆盖\n- 增强了对无效输入的错误处理（例如负值的字母间距）\n- 包含 CLI 和库 API 的测试用例\n\n### 📖 文档\n- 更新了 README，加入了可视化示例\n- 添加了 TypeScript 类型定义\n- 为每项功能提供了详细的使用示例\n\n### 🙏 致谢\n特别感谢 @anthonywu 在 PR #12 中实现了这些超赞的功能\\！\n\n### 📦 安装\n```bash\n# npm\nnpm install -g oh-my-logo@0.3.0\n\n# 或直接使用 npx\nnpx oh-my-logo@0.3.0 \"HELLO\" sunset --filled\n```\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fshinshin86\u002Foh-my-logo\u002Fcompare\u002Fv0.2.1...v0.3.0","2025-08-10T23:56:36",{"id":170,"version":171,"summary_zh":172,"released_at":173},289188,"v0.2.1","## 更改日志\n* [chore(license): 项目采用双重许可（MIT AND CC0‑1.0）并澄清徽标采用 CC0 许可 (#8)](https:\u002F\u002Fgithub.com\u002Fshinshin86\u002Foh-my-logo\u002Fpull\u002F8)\n  * _本次更新仅对许可进行了澄清；它并未增加任何额外义务，并且代码及生成的徽标仍可自由使用。_\n* [fix: 在将测试文件从 src\u002Ftests\u002F 移至 tests\u002F 后，更新测试配置和导入语句 (#9)](https:\u002F\u002Fgithub.com\u002Fshinshin86\u002Foh-my-logo\u002Fpull\u002F9)\n* [添加使用 Biome 的代码格式化工具 (#10)](https:\u002F\u002Fgithub.com\u002Fshinshin86\u002Foh-my-logo\u002Fpull\u002F10)","2025-07-25T07:58:07",{"id":175,"version":176,"summary_zh":177,"released_at":178},289189,"v0.2.0","  ## 🎉 新特性\n\n  ### 图库模式\n  - **新增 `--gallery` 选项**，可在所有可用调色板中显示文本\n  - 同时支持 ASCII 艺术和填充字符模式\n  - 支持跨所有调色板的多行文本渲染\n  - 与现有选项（如 `--filled`、自定义字体等）兼容。\n\n  ```bash\n  # 示例\n  npx oh-my-logo \"PREVIEW\" --gallery\n  npx oh-my-logo \"COLORS\" --gallery --filled\n  npx oh-my-logo \"MY\\nLOGO\" --gallery -f Big\n\n  🐛 错误修复\n\n  CLI 参数处理\n\n  - 修复了 `--list-palettes` 选项，使其无需提供文本参数即可正常工作\n  - `--list-palettes` 和 `-l` 现在可独立使用\n  - 改进了错误提示信息，提升用户体验\n\n  # 现在可以正确运行\n  npx oh-my-logo --list-palettes\n  npx oh-my-logo -l\n\n  🧪 测试\n\n  - 添加了全面的 CLI 测试（src\u002F__tests__\u002Fcli.test.ts）\n  - 提升了命令行参数处理的测试覆盖率\n  - 增加了对新图库模式和修复后的调色板列表功能的测试\n\n  📚 文档\n\n  - 更新了 README，添加了图库模式的示例和用法\n  - 新增测试章节，提供了完整的测试命令\n  - 改进了 CLI 选项的文档说明\n\n  🔧 技术改进\n\n  - 增强了 CLI 参数的 TypeScript 类型安全性\n  - 改进了边缘情况下的错误处理\n  - 保持了与现有功能的向后兼容性\n\n  ---\n  完整变更日志：https:\u002F\u002Fgithub.com\u002Fshinshin86\u002Foh-my-logo\u002Fcompare\u002Fv0.1.0...v0.2.0\n\n  感谢 @anthonywu 的出色贡献！🙏","2025-07-21T11:38:41"]