gws-people — команда для Claude Code: контакты Google Workspace
Слэш-команда для Claude Code, которая через CLI gws управляет контактами и профилями Google Workspace: создаёт, ищет, обновляет и удаляет записи.
npx claude-code-templates@latest --command google-workspace/gws-peopleЧто делает gws-people
Команда принимает аргументы вида [resource] [method] [flags] и передаёт их в gws people. Ресурсы: contactGroups, otherContacts и people. Внутри — методы вроде createContact, batchUpdateContacts, searchContacts, listDirectoryPeople и работа с фотографиями контактов.
Перед запуском нужен установленный Google Workspace CLI (gws) и настроенная авторизация: проверить её можно через gws auth status. Список всех команд смотрите в gws people --help, а параметры конкретного метода — в gws schema people.<resource>.<method>. Без настроенной авторизации команда не сработает.
Учтите: мутирующие запросы для одного пользователя Google советует отправлять последовательно, иначе растёт задержка и появляются ошибки. Поиск по контактам требует предварительного «прогревающего» запроса с пустым поиском, иначе кеш не обновится.
Какие задачи решает
- создать пачку новых контактов одним запросом
- найти человека по имени, почте или телефону
- обновить фотографию контакта
- выгрузить профили сотрудников домена
- перенести контакт из «Других контактов» в свою группу
Примеры запросов агенту
- Создай контакт в Google People с именем и почтой из файла
contacts.csv - Найди в контактах всех с доменом
example.comи выведи список - Обнови фотографию контакта
people/c12345из файлаavatar.png
Как установить gws-people
1Через claude-code-templates
npx claude-code-templates@latest --command google-workspace/gws-people2Вручную: положить файлы
.claude/commands/gws-people.mdВызов — /gws-people. Для всех проектов — ~/.claude/commands/
Вручную: положить файлы
~/.codex/prompts/gws-people.mdВызов — /prompts:gws-people. В Codex этот формат помечен устаревшим, замена — скиллы
Вручную: положить файлы
.github/prompts/gws-people.prompt.mdВручную: положить файлы
.gemini/commands/gws-people.tomlGemini хранит команды в TOML: текст запроса — в поле prompt
Вопросы о gws-people
Как установить gws-people в Claude Code?
Выполните npx claude-code-templates@latest --command google-workspace/gws-people, затем убедитесь, что файл появился по пути .claude/commands/gws-people.md.
Что делает gws-people?
Запускает операции Google People API через CLI gws: управление контактными группами, контактами, «Другими контактами» и профилями домена.
Что нужно для работы gws-people?
Установленный Google Workspace CLI (gws) и настроенная авторизация. Проверить статус можно командой gws auth status.
Исходный текст
gws-people.md · MIT
--- allowed-tools: Bash, Read, Write, Edit argument-hint: "[resource] [method] [flags]" description: "Google People: Manage contacts and profiles." --- # Google Workspace People Execute Google Workspace People operations: $ARGUMENTS ## Prerequisites - Google Workspace CLI (`gws`) must be installed - Authentication configured: Run `gws auth status` to verify - Review `gws people --help` for all available commands ## Available Resources and Methods # people (v1) > **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it. ```bash gws people <resource> <method> [flags] ``` ## API Resources ### contactGroups - `batchGet` — Get a list of contact groups owned by the authenticated user by specifying a list of contact group resource names. - `create` — Create a new contact group owned by the authenticated user. Created contact group names must be unique to the users contact groups. Attempting to create a group with a duplicate name will return a HTTP 409 error. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures. - `delete` — Delete an existing contact group owned by the authenticated user by specifying a contact group resource name. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures. - `get` — Get a specific contact group owned by the authenticated user by specifying a contact group resource name. - `list` — List all contact groups owned by the authenticated user. Members of the contact groups are not populated. - `update` — Update the name of an existing contact group owned by the authenticated user. Updated contact group names must be unique to the users contact groups. Attempting to create a group with a duplicate name will return a HTTP 409 error. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures. - `members` — Operations on the 'members' resource ### otherContacts - `copyOtherContactToMyContactsGroup` — Copies an "Other contact" to a new contact in the user's "myContacts" group Mutate requests for the same user should be sent sequentially to avoid increased latency and failures. - `list` — List all "Other contacts", that is contacts that are not in a contact group. "Other contacts" are typically auto created contacts from interactions. Sync tokens expire 7 days after the full sync. A request with an expired sync token will get an error with an [google.rpc.ErrorInfo](https://cloud.google.com/apis/design/errors#error_info) with reason "EXPIRED_SYNC_TOKEN". In the case of such an error clients should make a full sync request without a `sync_token`. - `search` — Provides a list of contacts in the authenticated user's other contacts that matches the search query. The query matches on a contact's `names`, `emailAddresses`, and `phoneNumbers` fields that are from the OTHER_CONTACT source. **IMPORTANT**: Before searching, clients should send a warmup request with an empty query to update the cache. See https://developers.google.com/people/v1/other-contacts#search_the_users_other_contacts ### people - `batchCreateContacts` — Create a batch of new contacts and return the PersonResponses for the newly Mutate requests for the same user should be sent sequentially to avoid increased latency and failures. - `batchDeleteContacts` — Delete a batch of contacts. Any non-contact data will not be deleted. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures. - `batchUpdateContacts` — Update a batch of contacts and return a map of resource names to PersonResponses for the updated contacts. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures. - `createContact` — Create a new contact and return the person resource for that contact. The request returns a 400 error if more than one field is specified on a field that is a singleton for contact sources: * biographies * birthdays * genders * names Mutate requests for the same user should be sent sequentially to avoid increased latency and failures. - `deleteContact` — Delete a contact person. Any non-contact data will not be deleted. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures. - `deleteContactPhoto` — Delete a contact's photo. Mutate requests for the same user should be done sequentially to avoid // lock contention. - `get` — Provides information about a person by specifying a resource name. Use `people/me` to indicate the authenticated user. The request returns a 400 error if 'personFields' is not specified. - `getBatchGet` — Provides information about a list of specific people by specifying a list of requested resource names. Use `people/me` to indicate the authenticated user. The request returns a 400 error if 'personFields' is not specified. - `listDirectoryPeople` — Provides a list of domain profiles and domain contacts in the authenticated user's domain directory. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. - `searchContacts` — Provides a list of contacts in the authenticated user's grouped contacts that matches the search query. The query matches on a contact's `names`, `nickNames`, `emailAddresses`, `phoneNumbers`, and `organizations` fields that are from the CONTACT source. **IMPORTANT**: Before searching, clients should send a warmup request with an empty query to update the cache. See https://developers.google.com/people/v1/contacts#search_the_users_contacts - `searchDirectoryPeople` — Provides a list of domain profiles and domain contacts in the authenticated user's domain directory that match the search query. - `updateContact` — Update contact data for an existing contact person. Any non-contact data will not be modified. Any non-contact data in the person to update will be ignored. All fields specified in the `update_mask` will be replaced. The server returns a 400 error if `person.metadata.sources` is not specified for the contact to be updated or if there is no contact source. - `updateContactPhoto` — Update a contact's photo. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures. - `connections` — Operations on the 'connections' resource ## Discovering Commands Before calling any API method, inspect it: ```bash # Browse resources and methods gws people --help # Inspect a method's required params, types, and defaults gws schema people.<resource>.<method> ``` Use `gws schema` output to build your `--params` and `--json` flags. ## Usage ```bash # List available resources and methods gws people --help # Inspect method schema before calling gws schema people.<resource>.<method> # Execute command with arguments gws people $ARGUMENTS ``` ## Task Execute the requested People operation: $ARGUMENTS 1. **Verify Prerequisites** - Check `gws` is installed: `gws --version` - Verify authentication: `gws auth status` - Review available commands: `gws people --help` 2. **Inspect Method Schema** - Before calling any method, inspect its parameters - Use `gws schema` to understand required fields - Review parameter types and constraints 3. **Execute Operation** - Build command with appropriate flags - Use `--params` for query/path parameters - Use `--json` for request body - Handle pagination with `--max-results` or `--page-token` 4. **Error Handling** - Check command output for errors - Review API quotas and rate limits - Handle authentication issues - Retry transient failures --- **License**: Apache License 2.0 **Source**: [Google Workspace CLI](https://github.com/googleworkspace/cli) **Original Skill**: `gws-people`
© davila7 · MIT · davila7/claude-code-templates