HFCS(1) | General Commands Manual | HFCS(1)

# NAME

`hfcs` — honk filtering and censorship system

# DESCRIPTION

The honk filtering and censorship system, `hfcs`, controls what messages are seen and how they are presented to the user. Filter rules are based on a series of matches and actions. It is accessed via the filters menu item.

Each filter has an optional name and notes for user defined purposes.

The following match types are possible. All nonempty criteria must match.

who
  Match an actor or domain name. Matches against actor property.
include audience
  Previous match is applied against
only unknowns
  Previous (domain) match is applied only to unknown actors.
text
  Regular expression match against the post content. The special value of "." will match any post with a summary only.
is reply
  A reply to another post.
is announce
  Is announced (shared).
announce of
  Limit prevous match to only specified actor or domain name.

The following actions may be applied. Multiple actions may be applied, but some are subsumed by others.

reject
  Reject this message entirely.
skip media
  Don't include images or attachments.
hide
  Remove this message from most feeds.
collapse
  Show only a short summary with click to view content.
rewrite
  Rewrite message content, using replace replacement text.

The text and rewrite fields are case insensitive word anchored regular expressions. Specifically, an argument ‘`re`’ will be automatically rewritten as ‘`\b(?i:re)\b`’. The replace text may refer to submatches using $1, etc.

A post marked sensitive that does not otherwise contain a summary will have an invisible summary of “unspecified horror” that can be matched against and will appear if the post is collapsed.

An optional expiration may be specified as a duration. XdYhZm for X days, Y hours, and Z minutes.

# EXAMPLES

A rudimentary spam filter to reject randos shilling their discord. It will expire after two days.
screenshot of filter

Following a group my result in the timeline being flooded with replies. These may also be rejected.
screenshot of filter

# SEE ALSO

honk(1)

# CAVEATS

Not seeing is not erasing.

June 6, 2025 | macOS 13.7