---
title: People
category: concept
slug: people
summary: "The Drop Directory roster — every signed-in @himarley.com user with their group + Space affiliations."
---
# People

The Drop Directory roster — every signed-in @himarley.com user with their group + Space affiliations.

The **People** tab of the Drop Directory is the live roster of every signed-in @himarley.com user, with their group and Space affiliations. V1 is small-scale (~150 rows), so the API returns the whole list in a single call — no pagination, no cursors.

## Two endpoints, two jobs

- `GET /api/people` — the **directory feed**: full list, full affiliations, sortable A–Z, suitable for rendering the People tab or driving a roster export.
- `GET /api/users/search` — the **picker typeahead**: at most 10 results, prefix-ranked, name + email + id only — optimized for the header palette and the "Add people" access panel.

## Visibility & hidden groups

Anyone signed in can read the People feed — the directory is intentionally open inside Hi Marley. The one guard: `ADMIN_ONLY` group affiliations are stripped from `groupSlugs` for non–People Admin callers. The People feed is not a side-channel for enumerating hidden groups (or even inferring their existence).

`isPeopleAdmin` on each row is derived from membership in the `@drop-people-admins` [system role group](/docs/user-groups#system-roles) (not a column).

## CLI commands

| Command | What it does |
|---|---|
| `drop people` | List the whole directory (substring `[query]` arg optional) |
| `drop people <query>` | Substring filter against name, title, email |
| `drop people list [query]` | Same as the bare command — explicit subcommand |
| `drop people get <email-or-id>` | Show one person: groups, Spaces, role badges |
| `drop people --show-deactivated` | Include deactivated users (forward-compat; no-op today) |
| `drop people --limit <n>` | Cap rows (default 50 unfiltered, all when filtered) |
| `drop people --json` | Pipe-friendly output; works on list and get |

## MCP tool

`drop_people` takes an optional `query` (substring across name/title/email) and an optional `limit` (max rows). Each result row carries email, name, title, group slugs (prefixed `@` in the rendered text), Space slugs, and the two admin flags. Registered in both the standalone Drop MCP server and the remote `/api/mcp` endpoint — same shape, same description, both alongside `drop_spaces`.


## Operations

### List people

Return the whole directory or a substring-filtered slice.

**CLI**

```bash
# Whole directory
drop people

# Substring filter
drop people jonathan

# Pipe-friendly
drop people --json | jq '.users[].email'
```

**MCP**

```json
{
  "tool": "drop_people",
  "arguments": {
    "query": "jonathan",
    "limit": 20
  }
}
```

**HTTP**

```bash
# Whole directory
curl https://drop.himarley.ai/api/people \
  -H "Authorization: Bearer $DROP_TOKEN"

# Substring filter
curl 'https://drop.himarley.ai/api/people?q=jonathan' \
  -H "Authorization: Bearer $DROP_TOKEN"
```

### Get one person

Look up one user by email or id. Returns groups, Spaces, and role badges.

**CLI**

```bash
drop people get colleague@himarley.com
```

**HTTP**

```bash
curl 'https://drop.himarley.ai/api/people/colleague@himarley.com' \
  -H "Authorization: Bearer $DROP_TOKEN"
```

### Typeahead search (picker)

Lighter endpoint for the access-panel "Add people" picker and header palette. Returns at most 10 results, prefix-ranked, name + email + id only — no group affiliations. Don't use for full directory queries.

**HTTP**

```bash
curl 'https://drop.himarley.ai/api/users/search?q=jon' \
  -H "Authorization: Bearer $DROP_TOKEN"
```

