Skip to main content

Overview

The /search command lets you find anime or manga using a natural-language description. Instead of knowing the exact title, describe what you’re looking for and the bot will try to match it.
/search uses an LLM (large language model) to interpret your query. If the LLM service is unavailable, the bot falls back to a raw text search.

Command syntax

Parameters

string
required
A natural-language description of the anime or manga you’re looking for. Examples: “the one with the kid who wants to be king of the pirates”, “isekai with a female lead who uses books as weapons”

Usage examples

The bot interprets your description and searches for the best match.

How it works

1

Parse your query

The bot sends your description to the LLM, which extracts a structured search intent: media type (anime, manga, or unknown) and a normalized search term. If the LLM is unavailable, the bot uses your raw query as a fallback.
2

Search AniList

The bot searches AniList using the parsed term. If the media type is “unknown”, it tries anime first, then manga, until it finds a match.
3

Return results

The bot shows an embed with the same details as /anime or /manga, along with a short interpretation line. Annie Mei chooses from several playful phrasings for each search.

Response data

The bot returns a rich media embed for the anime or manga it finds, plus an interpretation message telling you what it searched for.
A short, randomized message such as “I think you’re thinking of the anime One Piece.” or “Anime radar says: One Piece.” The wording can change when you repeat the same search; the resolved title does not change because of the wording.
Same core media fields as /anime or /manga — title, metadata, genres, description, and links. /search does not include Discord server member status overlays.

Search tips

Be descriptive. The more context you give, the better the LLM can find the right match. Phrases like “the anime with the titanium swords” or “manga about a detective who can kill with a notebook” work well.
Include media type keywords to guide the search:If no hint is found, the bot tries anime first and then manga.
If the LLM service is unavailable or returns an invalid result, the bot falls back to media-type hints from your query and searches AniList with the normalized query text. If it finds a result, the response still includes an interpretation line.

Input validation

The bot validates your search input before processing:
  • Empty queries are rejected
  • Queries that exceed the maximum length are rejected
If validation fails, you’ll see a message like: “Invalid search input: search cannot be empty.”

Privacy

Search queries are processed by the LLM provider configured for the bot. Your query may be sent to that provider for intent parsing. If PostHog LLM analytics is enabled, prompts and outputs may be captured depending on POSTHOG_CAPTURE_LLM_CONTENT. User IDs are hashed before being sent to observability tools.

Source code reference

Implementation: src/commands/search/command.rs:50 The register() function defines the command structure: