> ## Documentation Index
> Fetch the complete documentation index at: https://platform.atlan.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> To act on Atlan objects, use the Atlan MCP server at https://api.atlan.com/mcp or the atlanai CLI; `atlanai --map json` prints its command map. Run a read-only identity check before any write.
> The docs MCP server at /mcp searches these docs only. It cannot read or change Atlan objects.
> SDK packages: Python `atlanai` (PyPI) and TypeScript `@atlanai/sdk` (npm). Show Python first, then TypeScript.

# atlanai search

> Search visible artifacts across the account or one workspace.

`search` queries the Registry discovery index. Use kind-specific list commands
when you need complete enumeration.

## Usage

```text theme={null}
atlanai search <query> [flags]
```

`<query>` is required and accepts a keyword or natural-language phrase.

## Options

| Option | Type | Default | Description |
| - | - | - | - |
| `--kind` | string | none | Restrict results to one artifact kind. |
| `--strategy` | enum | `fts` | `fts`, `vector`, `hybrid`, `agent`, or `group`. |
| `--workspace`, `-w` | string | none | Scope to one workspace. |
| `--all-workspaces`, `-A` | Boolean | `false` | Make account-wide intent explicit. |
| `--filter` | expression, repeatable | none | Filter `field=value` or `field[op]=value`; operators: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `contains`. |
| `--fields` | string list | none | Return only selected fields. |
| `--sort` | string, repeatable | relevance/default | Sort by field; prefix with `-` for descending. |
| `--limit`, `-L` | integer | server default | Maximum results, up to `500`. |
| `--include-system` | Boolean | `false` | Include system-owned artifacts. |
| `--json` | string list | none | Select `description`, `id`, `kind`, `name`, `score`, `updated_at`, or `workspace_id`. |
| `--jq`, `-q` | string | none | Filter JSON output with jq. |
| `--template`, `-t` | string | none | Render JSON data with a Go template. |

`--workspace` and `--all-workspaces` express opposite scopes and should not be
combined.

## Examples

```bash theme={null}
atlanai search "customer support" --limit 20
atlanai search "incident review" --strategy hybrid --kind harness
atlanai search "platform" \
  --workspace workspace_123 \
  --filter 'status=active' \
  --json id,kind,name,workspace_id
```

## Output and behavior

* Skills are not in the discovery index. Use `atlanai skill list` for skills,
  even though `--kind skill` is accepted by the generic surface.
* The server counts before access filtering. Treat `page.total` as an upper
  bound when it exceeds the visible rows.
* Empty results exit with code `0`.
* Human output shows ID, kind, name, and truncated description. JSON can also
  include score and workspace.

## Related

* [Work with Registry](/tools/cli/how-tos/registry)
* [`atlanai skill`](/tools/cli/references/commands/skill)
* [`atlanai harness`](/tools/cli/references/commands/harness)
* [`atlanai workspace`](/tools/cli/references/commands/workspace)
