# GSAB — Google Sheets as a Backend > A database-like Python library + CLI for Google Sheets: typed schemas, validation, > field encryption, async CRUD, and server-side queries. Sign in once with > `gsab auth login` — no Google Cloud project required. Install: `pip install gsab` (add `pip install "gsab[pandas]"` for DataFrames). Python 3.9+. ## Docs - [Introduction](https://gsab.ajmalaksar.com/docs/introduction.md): What GSAB is and how it treats a Google Sheet like a database. - [Install](https://gsab.ajmalaksar.com/docs/install.md): Install GSAB from PyPI. Python 3.9+. - [Authentication](https://gsab.ajmalaksar.com/docs/authentication.md): Sign in once with the minimal drive.file scope — no Cloud project needed. DIY and service-account modes too. - [Schemas](https://gsab.ajmalaksar.com/docs/schemas.md): Declare a tab's typed columns, validation rules, keys and uniqueness. - [Connecting](https://gsab.ajmalaksar.com/docs/connecting.md): SheetConnection resolves credentials and builds the API client. - [CRUD](https://gsab.ajmalaksar.com/docs/crud.md): Async create, read, update, delete — plus bulk insert and upsert. - [Querying](https://gsab.ajmalaksar.com/docs/querying.md): Rich read() filters, plus server-side query() in the Google Visualization query language. - [Realtime](https://gsab.ajmalaksar.com/docs/realtime.md): Reactive watch() — your sheet, live. Experimental polling, not push. - [Charts](https://gsab.ajmalaksar.com/docs/charts.md): Embed native Google charts in the sheet, or plot with matplotlib/Plotly via to_dataframe(). - [Field encryption](https://gsab.ajmalaksar.com/docs/encryption.md): Seal sensitive fields with Fernet before they reach the sheet. - [Errors & exceptions](https://gsab.ajmalaksar.com/docs/errors.md): One exception hierarchy with clear, actionable messages for people and LLM agents. - [CLI reference](https://gsab.ajmalaksar.com/docs/cli.md): The gsab command — auth and version, from your shell. - [MCP server](https://gsab.ajmalaksar.com/docs/mcp.md): Use your Google Sheet as a database from any MCP client — Claude, Codex, Cursor, Zed and more. - [Access control](https://gsab.ajmalaksar.com/docs/access-control.md): AccessPolicy — guardrails for what the library, the MCP server, the TUI, or an AI agent may do. - [Servers & CI](https://gsab.ajmalaksar.com/docs/servers.md): Use a service account for headless environments. - [JavaScript / TypeScript client](https://gsab.ajmalaksar.com/docs/javascript.md): gsab-js on npm — no-auth browser reads, Node CRUD, a reactive cache, and a React hook. ## More - [Full docs as one file](https://gsab.ajmalaksar.com/llms-full.txt) - [PyPI](https://pypi.org/project/gsab/) - [GitHub](https://github.com/ajmalaksar25/gsab)