realodix/haiku

A tool to manage and maintain Adblock filter lists.

Maintainers

Package info

github.com/realodix/haiku

pkg:composer/realodix/haiku

Statistics

Installs: 1 345

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 0

v1.13.1 2026-04-22 18:32 UTC

README

Ask DeepWiki

Realodix Haiku

Haiku is a powerful command-line tool for managing adblock filter lists efficiently. It automates repetitive tasks such as merging sources, optimizing, and tidying up filter lists effortlessly.

# Features

  1. Fixing: Sorts, combines, normalizes, and optimizes filter rules to produce cleaner and easier-to-maintain filter list.
  2. Lint: Analyzes your filter list to quickly identify potential issues.
  3. Building: Compiles multiple filter list sources (local files and/or remote URLs) into single unified output files, including regenerating headers metadata and removing unnecessary lines such as comments.

Haiku supports multiple adblock syntaxes including Adblock Plus, AdGuard, and uBlock Origin. It uses an incremental caching system to skip unchanged files, enabling efficient processing of large filter lists.

!## BEFORE
[$path=/page.html,domain=b.com|a.com]##.textad
example.com##+js(aopw, Fingerprint2)
-banner-$image,domain=example.org
-banner-$image,domain=example.com
b.com,a.com##.ads

!## AFTER
-banner-$image,domain=example.com|example.org
a.com,b.com##.ads
[$domain=a.com|b.com,path=/page.html]##.textad
example.com##+js(aopw, Fingerprint2)

For a complete list of transformations, see docs/fixer-feature.md.

##.ads
example.com##.ads
example.com##+js(nowolf)
------ ----------------------------------------------------------------------------
Line   filter.txt
------ ----------------------------------------------------------------------------
:2     Redundant filter: 'example.com##.ads' already covered by '##.ads' on line 1.
        ✏️  filter.txt:2
:3     Unknown scriptlet: "nowolf"
        💡 Did you mean "nowoif"?
        ✏️  filter.txt:3

Installation

Install the package via Composer:

composer require realodix/haiku

Composer will install Haiku executable in its bin-dir which defaults to vendor/bin.

Commands

Initialize configuration

Creates a haiku.yml configuration file in your project.

vendor/bin/haiku init

Fixer

vendor/bin/haiku fix

Linter

vendor/bin/haiku lint

Builder

vendor/bin/haiku build

For detailed command usage, available options, and more examples, see docs/usage.md.

Configuration

See configuration file documentation or AdBlockID-src/haiku.yml for a production configuration example.

Contributing

Contributions are welcome! Please:

  1. Fork the repo and create a feature branch.
  2. Add tests for new features.
  3. Ensure code passes composer check.
  4. Submit a PR with a clear description.

Report bugs or suggest features via Issues.

License

This project is licensed under the MIT License.