rich-terminal-output by autumnsgrove/groveengine
npx skills add https://github.com/autumnsgrove/groveengine --skill rich-terminal-output在以下情况下激活此技能:
uv add rich
# 快速测试
python -c "from rich import print; print('[bold green]Rich working![/]')"
from rich.console import Console
console = Console()
# 基本输出
console.print("Hello, World!")
# 样式化输出
console.print("[bold red]Error:[/] Something went wrong")
console.print("[green]Success![/] Operation completed")
"[bold]Bold[/]"
"[italic]Italic[/]"
"[red]Red text[/]"
"[blue on white]Blue on white background[/]"
"[bold red]Combined styles[/]"
"[link=https://example.com]Click here[/]"
from rich import print
print("[bold cyan]Styled text[/]")
print({"key": "value"}) # 自动美化打印
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
from rich.console import Console
from rich.table import Table
console = Console()
table = Table(title="User List")
table.add_column("ID", style="cyan", justify="right")
table.add_column("Name", style="magenta")
table.add_column("Email", style="green")
table.add_column("Status", justify="center")
table.add_row("1", "Alice", "alice@example.com", "✓ Active")
table.add_row("2", "Bob", "bob@example.com", "✓ Active")
table.add_row("3", "Charlie", "charlie@example.com", "✗ Inactive")
console.print(table)
from rich.console import Console
from rich.panel import Panel
console = Console()
# 简单面板
console.print(Panel("Operation completed!"))
# 样式化面板
console.print(Panel(
"[green]All tests passed![/]\n\n"
"Total: 42 tests\n"
"Time: 3.2s",
title="Test Results",
border_style="green"
))
# 错误面板
console.print(Panel(
"[red]Connection refused[/]\n\n"
"Host: localhost:5432",
title="[bold red]Error[/]",
border_style="red"
))
from rich.progress import track
import time
for item in track(range(100), description="Processing..."):
time.sleep(0.01)
from rich.progress import Progress
with Progress() as progress:
task1 = progress.add_task("[red]Downloading...", total=100)
task2 = progress.add_task("[green]Processing...", total=100)
while not progress.finished:
progress.update(task1, advance=0.9)
progress.update(task2, advance=0.6)
time.sleep(0.02)
from rich.console import Console
from rich.syntax import Syntax
console = Console()
code = '''
def hello():
print("Hello, World!")
'''
syntax = Syntax(code, "python", theme="monokai", line_numbers=True)
console.print(syntax)
from rich.console import Console
from rich.tree import Tree
console = Console()
tree = Tree("[bold blue]MyProject/[/]")
src = tree.add("[bold]src/[/]")
src.add("main.py")
src.add("config.py")
tests = tree.add("[bold]tests/[/]")
tests.add("test_main.py")
console.print(tree)
import logging
from rich.logging import RichHandler
logging.basicConfig(
level=logging.INFO,
format="%(message)s",
handlers=[RichHandler(rich_tracebacks=True)]
)
logger = logging.getLogger("myapp")
logger.info("Application started")
logger.error("Connection failed")
from rich.traceback import install
# 在启动时调用一次
install(show_locals=True)
# 现在所有异常都有美观的回溯信息了
# ❌ 不好
def show(msg):
Console().print(msg) # 每次都创建新实例
# ✅ 好
console = Console()
def show(msg):
console.print(msg)
from rich.markup import escape
username = "user[admin]"
# ❌ 不好 - 方括号会破坏 markup
console.print(f"[blue]{username}[/]")
# ✅ 好
console.print(f"[blue]{escape(username)}[/]")
import sys
console = Console(force_terminal=sys.stdout.isatty())
import click
from rich.console import Console
from rich.panel import Panel
console = Console()
@click.command()
@click.argument('filename')
def process(filename):
console.print(f"[bold]Processing:[/] {filename}")
with console.status("[bold green]Working..."):
result = do_work(filename)
if result.success:
console.print(Panel(
f"[green]Processed {result.count} items[/]",
title="Success"
))
else:
console.print(f"[red]Error:[/] {result.error}")
查看 AgentUsage/rich_formatting.md 获取完整文档,包括:
每周安装数
54
代码仓库
GitHub 星标数
2
首次出现
2026年2月5日
安全审计
安装于
opencode53
gemini-cli52
codex52
github-copilot51
amp51
cline51
Activate this skill when:
uv add rich
# Quick test
python -c "from rich import print; print('[bold green]Rich working![/]')"
from rich.console import Console
console = Console()
# Basic output
console.print("Hello, World!")
# Styled output
console.print("[bold red]Error:[/] Something went wrong")
console.print("[green]Success![/] Operation completed")
"[bold]Bold[/]"
"[italic]Italic[/]"
"[red]Red text[/]"
"[blue on white]Blue on white background[/]"
"[bold red]Combined styles[/]"
"[link=https://example.com]Click here[/]"
from rich import print
print("[bold cyan]Styled text[/]")
print({"key": "value"}) # Auto-pretty-prints
from rich.console import Console
from rich.table import Table
console = Console()
table = Table(title="User List")
table.add_column("ID", style="cyan", justify="right")
table.add_column("Name", style="magenta")
table.add_column("Email", style="green")
table.add_column("Status", justify="center")
table.add_row("1", "Alice", "alice@example.com", "✓ Active")
table.add_row("2", "Bob", "bob@example.com", "✓ Active")
table.add_row("3", "Charlie", "charlie@example.com", "✗ Inactive")
console.print(table)
from rich.console import Console
from rich.panel import Panel
console = Console()
# Simple panel
console.print(Panel("Operation completed!"))
# Styled panel
console.print(Panel(
"[green]All tests passed![/]\n\n"
"Total: 42 tests\n"
"Time: 3.2s",
title="Test Results",
border_style="green"
))
# Error panel
console.print(Panel(
"[red]Connection refused[/]\n\n"
"Host: localhost:5432",
title="[bold red]Error[/]",
border_style="red"
))
from rich.progress import track
import time
for item in track(range(100), description="Processing..."):
time.sleep(0.01)
from rich.progress import Progress
with Progress() as progress:
task1 = progress.add_task("[red]Downloading...", total=100)
task2 = progress.add_task("[green]Processing...", total=100)
while not progress.finished:
progress.update(task1, advance=0.9)
progress.update(task2, advance=0.6)
time.sleep(0.02)
from rich.console import Console
from rich.syntax import Syntax
console = Console()
code = '''
def hello():
print("Hello, World!")
'''
syntax = Syntax(code, "python", theme="monokai", line_numbers=True)
console.print(syntax)
from rich.console import Console
from rich.tree import Tree
console = Console()
tree = Tree("[bold blue]MyProject/[/]")
src = tree.add("[bold]src/[/]")
src.add("main.py")
src.add("config.py")
tests = tree.add("[bold]tests/[/]")
tests.add("test_main.py")
console.print(tree)
import logging
from rich.logging import RichHandler
logging.basicConfig(
level=logging.INFO,
format="%(message)s",
handlers=[RichHandler(rich_tracebacks=True)]
)
logger = logging.getLogger("myapp")
logger.info("Application started")
logger.error("Connection failed")
from rich.traceback import install
# Call once at startup
install(show_locals=True)
# All exceptions now have beautiful tracebacks
# ❌ Bad
def show(msg):
Console().print(msg) # Creates new instance each time
# ✅ Good
console = Console()
def show(msg):
console.print(msg)
from rich.markup import escape
username = "user[admin]"
# ❌ Bad - brackets break markup
console.print(f"[blue]{username}[/]")
# ✅ Good
console.print(f"[blue]{escape(username)}[/]")
import sys
console = Console(force_terminal=sys.stdout.isatty())
import click
from rich.console import Console
from rich.panel import Panel
console = Console()
@click.command()
@click.argument('filename')
def process(filename):
console.print(f"[bold]Processing:[/] {filename}")
with console.status("[bold green]Working..."):
result = do_work(filename)
if result.success:
console.print(Panel(
f"[green]Processed {result.count} items[/]",
title="Success"
))
else:
console.print(f"[red]Error:[/] {result.error}")
See AgentUsage/rich_formatting.md for complete documentation including:
Weekly Installs
54
Repository
GitHub Stars
2
First Seen
Feb 5, 2026
Security Audits
Gen Agent Trust HubFailSocketPassSnykPass
Installed on
opencode53
gemini-cli52
codex52
github-copilot51
amp51
cline51
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
163,300 周安装