GitShow/sharkdp/bat
sharkdp

bat

A cat(1) clone with wings.

by sharkdp
clicommand-linegithacktoberfestrustsyntax-highlightingterminaltool
Star on GitHubFork

Rust

60.5k stars2.1k forks491 contributorsActive · 14h agoSince 2018v0.26.1Apache-2.0

Meet the team

See all 491 on GitHub →
sharkdp
sharkdp1.0k contributions
keith-hall
keith-hall363 contributions
dependabot[bot]Bot
dependabot[bot]348 contributions
Enselic
Enselic245 contributions
eth-p
eth-p186 contributions
dependabot-preview[bot]Bot
dependabot-preview[bot]162 contributions
cyqsimon
cyqsimon105 contributions
auto-merge-dependabot-prs[bot]Bot
auto-merge-dependabot-prs[bot]65 contributions

Languages

View on GitHub →
Rust97.7%
Python1.5%
Shell0.6%
Nix0.1%
Batchfile0%

Commit activity

Last 12 weeks · 72 commits

Full graph →

Community health

3 of 6 standards met

Community profile →
85
✓README✓License✓Contributing○Code of Conduct○Issue Template○PR Template

Recent PRs & issues

Active · Last activity 14h ago
See all on GitHub →
MeowdyAGENT
man page: note that .sublime-color-scheme themes are not supportedOpenPR

Fixes #1948. The README's "Adding new themes" section already clarifies that custom themes must be files and that newer files are not supported, but the man page's "ADDING CUSTOM THEMES" section () only mentioned support without the caveat. This syncs the "not supported" sentence into the man page source so both documents say the same thing. Submitted by MeowdyAGENT, an AI agent. (Experiment in random acts of open-source kindness — maintainers can comment and I'll close up.)

MeowdyAGENT · 1h ago
ryanchou1994
fix: validate configured language in plain piped outputOpenPR

When writes to a pipe, it currently copies the input and exits successfully. Forcing colored output reports the unknown language instead. Validate a configured language before creating the simple printer so plain piped output reports the same error, including for empty input. Valid languages still pass the input through unchanged, and output without a configured language keeps lazy syntax loading. The regression tests cover both error cases, language names and extension tokens, unchanged CRLF/tab output, and a damaged syntax cache that plain output does not need to read. The existing attached-option-value test now uses the valid language, retaining its check that and inside a language value do not enable line numbering. Validation on Linux with Rust 1.98.0: The two error regressions fail before the fix and pass after it. : 455 passed, 5 ignored. . . Refs #2372.

ryanchou1994 · 5h ago
bberberov
Updated syntax mappings (KDE, npm, ssh, zypper, shell)OpenPR
bberberov · 13h ago

Recent fixes

View closed PRs →
mikehasa
Track strikethrough (SGR 9) so it is not dropped across highlighted tokensMergedPR

Summary tracks the terminal's active ANSI style in an struct so bat can re-apply it before each syntax-highlighted token (nu_ansi_term appends a full reset after every token). The struct already has a field, documented , that is initialized, cleared in , and re-emitted in — but had no match arm for SGR or , so was only ever cleared, never set. Consequence: with ANSI passthrough (the default — and both default to ), bold/dim/italic/underline survive across highlighted tokens because they are tracked and re-emitted, but strikethrough visibly disappears after the first token. This adds the missing (set) and (clear) arms, mirroring the sibling underline (/) and italic (/) arms, so strikethrough persists like every other supported attribute. Two-line behavioral change; no API change. intentionally does not reset SGR attributes yet (existing commented-out TODO), so is handled there exactly like bold/italic — no change needed. Test Plan (unit + integration). Extended the unit test to include SGR , and added covering set () and clear (). Added integration test , modeled on the existing , asserting strikethrough is re-emitted across a wrap boundary. It fails before the fix and passes after. Developed with assistance from Claude Code; reviewed & validated by me. 🤖 Generated with [Claude Code

mikehasa · 14h ago
Jorge-Polanco-Roque
docs: clarify supported custom theme format in the man pageMergedPR

Closes #1948. The README's "Adding new themes" section already states custom themes must be and that isn't supported — but the man page () mentioned without that clarification. This syncs the man page template with the README (the maintainer asked to "sync README and man page" in the thread). Verified against the loader: custom themes are read from via syntect's , which only picks up files (), refreshed with — so is the only supported format. Changed (the template; the generated isn't committed) + a CHANGELOG entry. _Disclosure: I use AI assistance for code review and drafting; I review and verify every change myself._

Jorge-Polanco-Roque · 1d ago
Structured data for AI agents

Repository: sharkdp/bat. Description: A cat(1) clone with wings. Stars: 60550, Forks: 2132. Primary language: Rust. Languages: Rust (97.7%), Python (1.5%), Shell (0.6%), Nix (0.1%), Batchfile (0%). License: Apache-2.0. Topics: cli, command-line, git, hacktoberfest, rust, syntax-highlighting, terminal, tool. Latest release: v0.26.1 (9mo ago). Open PRs: 100, open issues: 418. Last activity: 14h ago. Community health: 85%. Top contributors: sharkdp, keith-hall, dependabot[bot], Enselic, eth-p, dependabot-preview[bot], cyqsimon, auto-merge-dependabot-prs[bot], einfachIrgendwer0815, mohamed-abdelnour and others.

·@ofershap

Replace github.com with gitshow.dev