Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/fix-readme-typography.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@googleworkspace/cli": patch
---

Fix README typography and spacing
20 changes: 5 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,24 @@

<h1 align="center">gws</h1>

<p align="center">
<strong>One CLI for all of Google Workspace — built for humans and AI agents.</strong><br>
Drive, Gmail, Calendar, and every Workspace API. Zero boilerplate. Structured JSON output. 40+ agent skills included.
</p>
**One CLI for all of Google Workspace — built for humans and AI agents.**<br>
Drive, Gmail, Calendar, and every Workspace API. Zero boilerplate. Structured JSON output. 40+ agent skills included.

<p align="center">
<p>
<a href="https://www.npmjs.com/package/@googleworkspace/cli"><img src="https://img.shields.io/npm/v/@googleworkspace/cli" alt="npm version"></a>
<a href="https://github.com/googleworkspace/cli/blob/main/LICENSE"><img src="https://img.shields.io/github/license/googleworkspace/cli" alt="license"></a>
<a href="https://github.com/googleworkspace/cli/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/googleworkspace/cli/ci.yml?branch=main&label=CI" alt="CI status"></a>
<a href="https://www.npmjs.com/package/@googleworkspace/cli"><img src="https://img.shields.io/npm/unpacked-size/@googleworkspace/cli" alt="install size"></a>
</p>
<br>

---

```bash
npm install -g @googleworkspace/cli
```

---
`gws` doesn't ship a static list of commands. It reads Google's own [Discovery Service](https://developers.google.com/discovery) at runtime and builds its entire command surface dynamically. When Google Workspace adds an API endpoint or method, `gws` picks it up automatically.

`gws` doesn't ship a static list of commands. It reads Google's own [Discovery Service](https://developers.google.com/discovery) at runtime and builds its entire command surface dynamically. When Google adds an API endpoint, `gws` picks it up automatically.

> [!IMPORTANT]
> This project is under active development. Expect breaking changes as we march toward v1.0.
Expand Down Expand Up @@ -58,7 +55,6 @@ Or build from source:
cargo install --path .
```

---

## Why gws?

Expand Down Expand Up @@ -86,7 +82,6 @@ gws schema drive.files.list
gws drive files list --params '{"pageSize": 100}' --page-all | jq -r '.files[].name'
```

---

## Authentication

Expand Down Expand Up @@ -150,7 +145,6 @@ export GOOGLE_WORKSPACE_CLI_TOKEN=$(gcloud auth print-access-token)

Environment variables can also live in a `.env` file.

---

## AI Agent Skills

Expand Down Expand Up @@ -180,7 +174,6 @@ The `gws-shared` skill includes an `install` block so OpenClaw auto-installs the

</details>

---

## Advanced Usage

Expand Down Expand Up @@ -212,7 +205,6 @@ gws gmail users messages get --params '...' \
| `GOOGLE_WORKSPACE_CLI_SANITIZE_TEMPLATE` | Default Model Armor template |
| `GOOGLE_WORKSPACE_CLI_SANITIZE_MODE` | `warn` (default) or `block` |

---

## Architecture

Expand All @@ -226,7 +218,6 @@ gws gmail users messages get --params '...' \

All output — success, errors, download metadata — is structured JSON.

---

## Development

Expand All @@ -237,7 +228,6 @@ cargo test # unit tests
./scripts/coverage.sh # HTML coverage report → target/llvm-cov/html/
```

---

## License

Expand Down
Loading