返回目录
开源项目文档办公类新手

GitHub - gristlabs/grist-core: Grist is the evolution of spreadsheets.

Grist Grist is a modern relational spreadsheet. It combines the flexibility of a spreadsheet with the robustness of a database. - grist-core (this repo – also known as Grist Community edition) has what you need to run a powerful server for hosting

0 次阅读2026/09/16 发布
GitHub - gristlabs/grist-core: Grist is the evolution of spreadsheets. 来源图片

社区作者 · zZz

它解决什么问题

Grist

Grist is a modern relational spreadsheet. It combines the flexibility of a spreadsheet with the robustness of a database.

  • grist-core (this repo – also known as Grist Community edition) has what you need to run a powerful server for hosting spreadsheets.
  • grist-desktop is a Linux/macOS/Windows desktop app for viewing and editing spreadsheets stored locally.
  • grist-static is a fully in-browser build of Grist for displaying spreadsheets on a website without back-end support.

Grist is developed by Grist Labs , an NYC-based company 🇺🇸🗽. The French government 🇫🇷 organizations ANCT Données et Territoires and DINUM (Direction Interministérielle du Numérique) have also made significant contributions to the codebase.

The grist-core , grist-desktop , and grist-static repositories are all open-source (Apache License, Version 2.0). Grist Labs sells an edition of Grist with additional features . Grist Labs also offers free and paid hosted services at getgrist.com , as well as cloud packaging .

Questions? Feedback? Want to share what you're building with Grist? Join our official Discord server or visit our Community forum .

To keep up-to-date with everything that's going on, you can sign up for Grist's monthly newsletter .

what-is-grist.mp4

Features in grist-core

To see exactly what is present in grist-core , you can run the desktop app , or use docker . The absolute fastest way to try Grist out is to visit docs.getgrist.

com and play with a spreadsheet there immediately – though if you do, please read the list of additional features that are not in grist-core .

However you try it, you'll quickly see that Grist is a hybrid database/spreadsheet, meaning that:

  • Columns work like they do in databases: they are named, and they hold one kind of data.
  • Columns can be filled by formula, spreadsheet-style, with automatic updates when referenced cells change.

This difference can confuse people coming directly from Excel or Google Sheets. Give it a chance! There's also a Grist for Spreadsheet Users article to help get you oriented.

If you're coming from Airtable, you'll find the model familiar (and there's also our Grist vs Airtable article for a direct comparison).

Here are some specific feature highlights of Grist (🇫🇷 marks heavy French govt. contributions):

可复制命令
Python formulas.
  • Full Python syntax is supported , including the standard library.
  • Many Excel functions also available.
  • An AI Formula Assistant specifically tuned for formula generation (works with OpenAI, Llama , and many other models via OpenRouter or any OpenAI-compatible endpoint).
  • A formula timer for diagnosing slow formulas.
  • A portable, self-contained format.
  • Based on SQLite, the most widely deployed database engine.
  • Any tool that can read SQLite can read numeric and text data from a Grist file.
  • Enables backups that you can confidently restore in full.
  • Great for moving between different hosts.
  • Can be displayed on a static website with grist-static – no special server needed.
  • A self-contained desktop app for viewing and editing locally: grist-desktop .
  • Convenient editing and formatting features.
  • Choices and choice lists , for adding colorful tags to records.
  • References and reference lists, for cross-referencing records in other tables.
  • Two-way references that automatically synchronize between tables.
  • Attachments , to include media or document files in records.
  • Dates and times, toggles, and special numerics such as currency all have specialized editors and formatting options.
  • Conditional Formatting , letting you control the style of cells with formulas to draw attention to important information.
  • Markdown formatting in text cells.
  • Drag-and-drop dashboards.
  • Charts , card views and a calendar widget for visualization.
  • Summary tables for summing and counting across groups.

Grist has a unique approach to visualization, where you can lay out and link distinct widgets to show together, without cramming mixed material into a table.

  • Widget linking streamlines filtering and editing data.
  • Filter bar for quick slicing and dicing.
  • Duplicate widgets to quickly build variations of a view.
  • Compare documents to see what changed.
  • Incremental imports .
  • Import a CSV of the last three months activity from your bank...
  • ...and import new activity a month later without fuss or duplication.
  • Native forms . Create forms that feed directly into your spreadsheet without fuss.
  • Supports file attachments, hidden fields, and pre-population via URL parameters.
  • Integrations.
  • A REST API with an interactive API console , Zapier actions/triggers , and support from similar integrators .
  • Import/export to Google Drive, Excel format, CSV. Import directly from Airtable.
  • Link data with custom widgets , hosted externally.
  • Configurable outgoing webhooks , with support for authorization headers, column-specific triggers, and formula conditions.
  • Service accounts for fine-tuned API access (🇫🇷).
  • SCIM for standard user and group provisioning (🇫🇷).
  • Many templates to get you started, from investment research to organizing treasure hunts.
  • Access control options.
  • (You'll need logins set up to make use of these options — see Logins )
  • Share individual documents , workspaces, or team sites .
  • Control access to individual rows, columns, and tables .
  • Control access based on cell values and user attributes.
  • Collaboration.
  • Comments on cells, with threaded replies and @-mentions.
  • See who else is viewing a document in real time.
  • Suggest changes for others to review and approve, inspired by source control workflows.
  • Self-maintainable.
  • Useful for intranet operation and specific compliance requirements.
  • Sign in with getgrist.com for easy authentication without running your own auth server.
  • Store attachments externally in S3-compatible storage to keep .grist files small (🇫🇷).
  • HTTP long polling as an alternative to WebSockets for restrictive network environments (🇫🇷).
  • Sandboxing options for untrusted documents.
  • On Linux or with Docker, you can enable gVisor sandboxing at the individual document level.
  • On macOS, you can use native sandboxing.
  • On any OS, including Windows, you can use a Wasm-based sandbox via Deno and Pyodide .
  • Translated to many languages (🇫🇷).
  • A high-contrast theme meeting WCAG level AA requirements (🇫🇷).
  • Accessibility support, including screen readers and keyboard navigation across grid views, menus, and the page widget picker (🇫🇷).
  • F1 key brings up some quick help. This used to go without saying, but in general Grist has good keyboard support (🇫🇷).
  • We post progress on 𝕏 or Twitter or whatever and publish monthly newsletters .

If you are curious about where Grist is heading, see our roadmap , drop a question in our forum , or browse our extensive documentation .

Features not in grist-core

If you evaluate Grist by using the hosted version at getgrist.com , be aware that it includes some features that aren't present in grist-core . To be sure you're seeing exactly what is present in grist-core , you can run the desktop app , or use docker .

Here is a list of features available in the full edition of Grist that are not in grist-core , in chronological order of creation. If self-hosting, you can get access to a free trial of all of them by selecting the full edition of Grist on the Admin Panel .

The full edition of Grist is free for individuals and small orgs with less than US $1 million in total annual funding. Learn more about that here .

  • GristConnect (2022)
  • Any site that has plugins for letting Discourse use its logins (such as WordPress) can also let Grist use its logins.
  • GristConnect is a niche feature built for a specific client which you probably don't care about.
  • Azure back-end for document storage (2022)
  • With grist-core you can store document versions in anything S3-compatible, which covers a lot of services, but not Azure specifically. The Azure back-end fills that gap.
  • Unless you are a Microsoft shop you probably don't care about this.
  • Audit log streaming (2024)
  • With grist-core a lot of useful information is logged, but not organized specifically with auditing in mind. Audit log streaming supplies that organization, and a UI for setting things up.
  • Enterprises may care about this.
  • Advanced Admin Controls (2025)
  • This is a special page for a Grist installation administrator to monitor and edit user access to resources.
  • It uses a special set of administrative endpoints not present on grist-core .
  • If you're going to be running a large Grist installation, with employees coming and going, you may care about this.
  • Grist Assistant (2025)
  • An AI Formula Assistant - limited to working with formulas - is present in grist-core , but the newer Assistant can help with a wider range of tasks like building tables and dashboards, styling and formatting, explaining access rules, and modifying data.
  • If you have many users who need help building documents or working with data, you may care about this one.
  • Invite Notifications (2025)
  • When a user is added to a document, or a workspace, or a site, with email notifications they will get emailed a link to access the resource.
  • This link isn't special, with grist-core you can just send a link yourself or a colleague.
  • For a big Grist installation with users who aren't in close communication, emails might be nice? Hard to guess if you'll care about this one.
  • Document Change and Comment Notifications (2025)
  • You can achieve change notifications in grist-core using webhooks, but it is less convenient.
  • People have been asking for this one for years. If you need an excuse to get your boss to pay for Grist, this might finally be the one that works?
  • Automations (2026)

A tool for document owners to build trigger-driven workflows:

可复制命令
set conditions on any table, then send emails (with dynamic recipients and Markdown) or fire webhooks when rows match, and watch the results in a delivery log.
  • You can build similar flows in grist-core with webhooks, but you'd be wiring up the email side and the monitoring yourself.
  • OAuth apps (2026)
  • Register and authorize OAuth applications, scope them to specific orgs, workspaces, or documents, and review or revoke that access later.
  • A way to give external tools connection to Grist with scoped, revocable access instead of handing over a full API key. If you're connecting Grist to other software, you may care about this, as an alternative to API keys.
  • MCP server (2026)
  • A built-in Model Context Protocol endpoint that lets AI clients such as Claude or ChatGPT read and edit Grist documents over JSON-RPC. Enabled with GRIST_MCP_ENABLED (see environment variables ).
  • With grist-core you can still use one of the many community MCP servers that talks to Grist through its REST API . The built-in server saves you that work.
  • Single sign-on (SSO) via OIDC or SAML (2026)

Using Grist

To get the default version of grist-core running on your computer with Docker , do:

命令
docker pull gristlabs/grist
命令
docker run -p 8484:8484 -it gristlabs/grist

Then visit http://localhost:8484 in your browser.

On a brand new install you'll land on a Quick setup page that walks you through choosing an admin email, picking how people sign in, and setting who can use the site.

To get past the first screen, look in the container's startup log for a line containing a generated boot key, and paste it in when prompted. Once you click Apply and go live!

at the end of Quick setup, the site is open for business and you'll be able to create, edit, import, and export documents. There's a step-by-step walkthrough at First-run setup .

If you'd rather skip Quick setup entirely and start with an open, single-user setup, set GRIST_IN_SERVICE=true . You can come back to the same settings later from the Admin Panel .

To preserve your work across docker runs, share a directory as /persist :

命令
docker run -p 8484:8484 -v $PWD /persist:/persist -it gristlabs/grist

Get templates at templates.getgrist.com for payroll, inventory management, invoicing, D&D encounter tracking, and a lot more, or use any document you've created on docs.getgrist.com .

If you need to change the port Grist runs on, set a PORT variable, don't just change the port mapping:

命令
docker run --env PORT=9999 -p 9999:9999 -v $PWD/persist:/persist -it gristlabs/grist

To enable gVisor sandboxing, set --env GRIST_SANDBOX_FLAVOR=gvisor . This should work with default docker settings, but may not work in all environments.

You can find a lot more about configuring Grist, setting up authentication, and running it on a public server in our Self-Managed Grist documentation.

Using Grist with OpenRouter for Model Agnostic and Claude Support

(Instructions contributed by @lshalon)

Grist's AI Formula Assistant can be configured to use OpenRouter instead of connecting directly to OpenAI, allowing you to access a wide range of AI models including Anthropic's Claude models.

This isn't the only way to use Claude models, but it's a good option if you want to use Claude models with Grist or intend to use other cheaper, faster, or potentially newer models.

That's because this configuration gives you more flexibility in choosing the AI model that works best for your formula generation needs. To set up OpenRouter integration, configure the following environment variables:

Required

Required
Set the endpoint to OpenRouter's API
命令
ASSISTANT_CHAT_COMPLETION_ENDPOINT=https://openrouter.ai/api/v1/chat/completions

Required: Your OpenRouter API key

命令
ASSISTANT_API_KEY=your_openrouter_api_key_here

Sign up for an OpenRouter API key at https://openrouter.ai/

Optional: Specify which model to use (examples below)

命令
ASSISTANT_MODEL=anthropic/claude-3.7-sonnet

or other options like

命令
ASSISTANT_MODEL=deepseek/deepseek-r1-zero:free
命令
ASSISTANT_MODEL=qwen/qwq-32b:free
命令
ASSISTANT_MODEL=mistralai/mistral-saba

Optional

Optional
Set a larger context model for fallback
命令
ASSISTANT_LONGER_CONTEXT_MODEL=anthropic/claude-3-opus-20240229

With this configuration, Grist's AI Formula Assistant will route requests through OpenRouter to your specified model. This allows you to:

Access Anthropic's Claude models which excel at understanding context and generating accurate formulas Switch between different AI models without changing your Grist configuration Take advantage of OpenRouter's routing capabilities to optimize for cost, speed, or quality

You can find the available models and their identifiers on the OpenRouter website.

Note

Note
Make sure not to set the OPENAI_API_KEY variable when using OpenRouter, as this would override the OpenRouter configuration.

Available Docker images

The default Docker image is gristlabs/grist . This contains all of the Grist Community edition features, as well as extra source-available code for the full edition of Grist.

This extra code is not under a free or open-source license, though by default is completely inert and inactive. This code becomes active only when enabled from the Admin Panel.

If you would rather use an image that contains exclusively free and open-source code, the gristlabs/grist-oss Docker image is available for this purpose. It is by default functionally equivalent to the gristlabs/grist image.

The Admin Panel

The Admin Panel is where you inspect and tweak your installation: check health probes, change a few settings, toggle features. Visit /admin on your Grist server to find it.

If you're not yet signed in as the installation admin, the panel will prompt you to do a boot key login, and from there you can paste in the key.

New installs generate a boot key automatically and print it to the container log on startup. Watch for a line like:

BOOT KEY: <random-string>

If you'd rather pick your own boot key, set GRIST_BOOT_KEY :

命令
docker run -p 8484:8484 -e GRIST_BOOT_KEY=secret -it gristlabs/grist

The panel collects probes for common problems. If you hit one that isn't covered, please add a probe in BootProbes , or file an issue so someone else can.

Building from source

To build Grist from source, follow these steps:

命令
yarn install
命令
yarn install:python
命令
yarn build
命令
yarn start

Grist will be available at http://localhost:8484/

By default, the build is the full edition

By default, the build is the full edition
yarn install downloads optional

extensions (into an ext directory) that are only enabled when switching to the full edition of Grist from the Admin Panel . Note that this will add non-OSS code to your build.

If you wish to skip including extensions in your build, the steps are as follows:

命令
yarn run set-community-edition
命令
yarn install:python
命令
yarn build
命令
yarn start

Grist will be available at http://localhost:8484/

You may toggle between the full Grist and Community editions in the Admin Panel.

The first time you start Grist it'll show the Quick setup page, just like a fresh Docker install. Look at the terminal where you ran

命令
yarn start for the boot key. If you'd rather skip Quick setup while

hacking, run with GRIST_IN_SERVICE=true .

Grist formulas in documents will be run using Python executed directly on your machine. You can configure sandboxing using a GRIST_SANDBOX_FLAVOR environment variable.

uses the native sandbox-exec command for sandboxing.

  • On macOS, export GRIST_SANDBOX_FLAVOR=macSandboxExec

installed, export GRIST_SANDBOX_FLAVOR=gvisor is an option.

  • On Linux with gVisor's runsc
  • On any OS including Windows, export GRIST_SANDBOX_FLAVOR=pyodide is available.

These sandboxing methods have been written for our own use at Grist Labs and may need tweaking to work in your own environment - pull requests very welcome here!

Logins

Like git, Grist has features to track document revision history. So for full operation, Grist expects to know who the user modifying a document is. Until it does, it operates in a limited anonymous mode.

The friendliest way to get sign-in set up is the Quick setup page that appears on a fresh install. It lets you pick an admin email and an authentication method from a short menu. See First-run setup for the full walkthrough.

You can revisit those same settings later from the Admin Panel .

If you'd rather not configure sign-in at all, you can run with a single default identity. Set GRIST_DEFAULT_EMAIL and the "sign in" button will attribute your work to that address:

命令
docker run --env GRIST_DEFAULT_EMAIL=my@email -p 8484:8484 -v $PWD/persist:/persist -it gristlabs/grist

You can change your name in Profile Settings in the User Menu .

For multi-user operation, or if you wish to access Grist across the public internet, you'll want to connect it to a Single Sign-On service. Sign in with getgrist.

com and forward authentication are available in all editions; connecting directly to your own identity provider via OIDC or SAML is fully supported with an activation key. Grist has been tested with Authentik , Auth0 , and Google/Microsoft sign-ins via Dex .

Translations

We use Weblate to manage translations. Thanks to everyone who is pitching in. Thanks especially to the ANCT developers who did the hard work of making a good chunk of the application localizable. Merci beaucoup !

Why free and open-source software?

This repository, grist-core , is maintained by Grist Labs. Our flagship product available at getgrist.com is built from the code you see here, combined with business-specific software designed to scale to many users, handle billing, etc.

Grist Labs is an open-core company. We offer Grist hosting as a service, with free and paid plans. We also develop and sell features related to Grist using a proprietary license, targeted at the needs of enterprises with large self-managed installations.

We see data portability and autonomy as a key value, and grist-core is an essential part of that. We are committed to maintaining and improving the grist-core codebase, and to be thoughtful about how proprietary offerings impact data portability and autonomy.

By opening its source code and offering an OSI -approved free license, Grist benefits its users:

new features is a big deal for a general-purpose spreadsheet-like product, where there is a very long tail of features vital to someone somewhere.

  • Developer community. The freedom to examine source code, make bug fixes, and develop

an option. Vulnerabilities in the code can be found by others and reported before they cause damage.

  • Increased trust. Because anyone can examine the source code, “security by obscurity” is not

since it is open-source and can be self-hosted. Using our hosted solution is convenient, but you are not locked in.

  • Independence. Grist is available to you regardless of the fortunes of the Grist Labs business,

option to have. And DIY users may have the technical savvy and motivation to delve in and make improvements, which can benefit all users of Grist.

  • Price flexibility. If you are low on funds but have time to invest, self-hosting is a great
  • Extensibility. For developers, having the source open makes it easier to build extensions (such as Custom Widgets ). You can more easily include Grist in your pipeline. And if a feature is missing, you can just take the source code and build on top of it.

For more on Grist Labs' history and principles, see our About Us page.

Sponsors

Reviews

  • Grist on ProductHunt
  • Grist on AppSumo (life-time deal is sold out)
  • Capterra , G2 , TrustRadius

Environment variables

Grist can be configured in many ways. Here are the main environment variables it is sensitive to:

Variable Purpose

ALLOWED_WEBHOOK_DOMAINS comma-separated list of permitted domains to use in webhooks (e.g. webhook.site,zapier.com).

You can set this to * to allow all domains, but if doing so, we recommend using a carefully locked-down proxy (see GRIST_PROXY_FOR_UNTRUSTED_URLS ) if you do not entirely trust users.

Otherwise services on your internal network may become vulnerable to manipulation.

APP_DOC_URL the url a browser should use to reach this doc worker. In a multi-server setup, if not using GRIST_FLEET , every doc worker must be reachable by the browser at a public url of its own.

If not using GRIST_ROUTER_URL to assign those automatically, APP_DOC_URL needs setting in practice.

Wherever it is set it must be distinct for each worker, since it is how a client reaches the worker holding a document, and, where APP_DOC_INTERNAL_URL is unset, how other servers reach it too.

Behind a single front end that means a path per worker, such as https://grist.example.com/dw/worker-1 . Setting it alongside GRIST_FLEET is refused at startup, since a fleet routes clients through whichever server they reach and never uses it.

APP_DOC_INTERNAL_URL like APP_DOC_URL but used by other servers to reach this one using an internal domain name resolution (like in a docker environment). It only makes sense to define this value in the doc worker. Defaults to APP_DOC_URL .

If both are unset, an address is derived from GRIST_HOST , or from the interface this server reaches Redis on. Workers that share a host can be told apart by path, and the id derived from this url includes it.

APP_HOME_URL url prefix for home api (home and doc servers need this)

APP_HOME_INTERNAL_URL like APP_HOME_URL but used by the home and the doc servers to reach any home workers using an internal domain name resolution (like in a docker environment). Defaults to APP_HOME_URL

APP_STATIC_URL url prefix for static resources

APP_STATIC_INCLUDE_CUSTOM_CSS

命令
set to "true" to include custom.css (from APP_STATIC_URL) in static pages

APP_UNTRUSTED_URL URL at which to serve/expect plugin content.

GRIST_ACTION_HISTORY_MAX_ROWS Maximum number of rows allowed in ActionHistory before pruning (up to a 1.25 grace factor). Defaults to 1000. ⚠️ A too low value may make the " Work on a copy " feature malfunction

GRIST_ACTION_HISTORY_MAX_BYTES Maximum number of rows allowed in ActionHistory before pruning (up to a 1.25 grace factor). Defaults to 1Gb. ⚠️ A too low value may make the " Work on a copy " feature malfunction

GRIST_ADAPT_DOMAIN

命令
set to "true" to support multiple base domains (careful, host header should be trustworthy)

GRIST_ALLOW_AUTOMATIC_VERSION_CHECKING Whether Grist is allowed to automatically check if a newer Grist version is available. Defaults to "true" on the default grist and grist-ee Docker images. Defaults false in grist-oss and everywhere else.

GRIST_ALLOW_DEPRECATED_BARE_ORG_DELETE If set, the deprecated DELETE /api/orgs/:orgId endpoint is available.

GRIST_APP_ROOT directory containing Grist sandbox and assets (specifically the sandbox and static subdirectories).

GRIST_ATTACHMENT_THRESHOLD_MB attachment storage limit per document beyond which Grist will recommend external storage (if available). Defaults to 50MB.

GRIST_BACKUP_DELAY_SECS wait this long after a doc change before making a backup

GRIST_BOOT_KEY if set, use this key to sign in as the installation admin at /boot . New installs auto-generate one and print it on startup; set this only if you want a key of your own choosing.

GRIST_BROADCAST_TIMEOUT_MS

命令
Set the maximum time a web client has to accept a broadcast message about a document before being disconnected (default: 1 minute).

GRIST_DATA_DIR Directory in which to store documents. Defaults to docs/ relative to the Grist application directory. In Grist's default Docker image, its default value is /persist/docs so that it will be used as a mounted volume.

GRIST_DEFAULT_EMAIL if set, login as this user if no other credentials presented

GRIST_DEFAULT_PRODUCT if set, this controls enabled features and limits of new sites. See names of PRODUCTS in Product.ts.

GRIST_DEFAULT_LOCALE Locale to use as fallback when Grist cannot honour the browser locale. Defaults to en-US . Should match a locale code found in app/common/LocaleCodes.ts .

GRIST_DOC_WORKER_ID identity of a doc worker, which must be distinct for every server sharing a Redis. Leave it unset to have one derived. Two servers sharing a value can open the same document at once.

GRIST_DOMAIN in hosted Grist, Grist is served from subdomains of this domain. Defaults to "getgrist.com".

GRIST_EDITION selects which edition the yarn install hook sets up, full or community . Takes precedence over the grist-edition file written by yarn run set-full-edition / yarn run set-community-edition . Defaults to full . See Building from source .

GRIST_SKIP_EXT_AUTOSETUP

命令
set to 1 to skip the yarn install hook that downloads the full-edition ext material. Useful where extensions are installed by other means (Docker builds, grist-desktop, grist-static). See Building from source .

GRIST_EXPERIMENTAL_PLUGINS enables experimental plugins

GRIST_EXTERNAL_ATTACHMENTS_MODE required to enable external storage for attachments. Set to "snapshots" to enable external storage. Default value is "none". Note that when enabled, a snapshot storage has to be configured as well.

GRIST_ENABLE_SERVICE_ACCOUNTS enables the service accounts feature. This feature allows users to create special service accounts that they can manage and to whom they can grant restricted access to chosen resources.

Useful as a way to get fine-grained api keys for use with third party automations. Unset by default

GRIST_ENABLE_REQUEST_FUNCTION enables the REQUEST function. This function performs HTTP requests in a similar way to requests.request .

This function presents a significant security risk, since it can let users call internal endpoints when Grist is available publicly. This function can also cause performance issues. Unset by default.

GRIST_HEADERS_TIMEOUT_MS if set, override nodes's server.headersTimeout flag.

GRIST_HIDE_UI_ELEMENTS comma-separated list of UI features to disable. Allowed names of parts: helpCenter , billing , templates , createSite , multiSite , multiAccounts , importFromAirtable , sendToDrive , tutorials , supportGrist , themes , automations .

If a part also exists in GRIST_UI_FEATURES, it will still be

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

If you are curious about where Grist is heading, see our roadmap , drop a question in our forum , or browse our extensive documentation . Features not in grist-core If you evaluate Grist by using the hosted version at getgrist.

com , be aware that it includes some features that aren't present in grist-core . To be sure you're seeing exactly what is present in grist-core , you can run the desktop app , or use docker .

Here is a list of features available in the full edition of Grist that are not in grist-core , in chronological order of creation. If self-hosting, you can get access to a free trial of all of them by selecting the full edition of Grist on the Admin Panel .

The full edition of Grist is free for individuals and small orgs with less than US $1 million in total annual funding. Learn more about that here .

  • Useful for intranet operation and specific compliance requirements.
  • Sign in with getgrist.com for easy authentication without running your own auth server.
  • Store attachments externally in S3-compatible storage to keep .grist files small (🇫🇷).
  • HTTP long polling as an alternative to WebSockets for restrictive network environments (🇫🇷).
  • Sandboxing options for untrusted documents.
  • On Linux or with Docker, you can enable gVisor sandboxing at the individual document level.
  • On macOS, you can use native sandboxing.
  • On any OS, including Windows, you can use a Wasm-based sandbox via Deno and Pyodide .
  • Translated to many languages (🇫🇷).
  • A high-contrast theme meeting WCAG level AA requirements (🇫🇷).
  • Accessibility support, including screen readers and keyboard navigation across grid views, menus, and the page widget picker (🇫🇷).
  • F1 key brings up some quick help. This used to go without saying, but in general Grist has good keyboard support (🇫🇷).
  • We post progress on 𝕏 or Twitter or whatever and publish monthly newsletters .
  • GristConnect (2022)
  • Any site that has plugins for letting Discourse use its logins (such as WordPress) can also let Grist use its logins.
  • GristConnect is a niche feature built for a specific client which you probably don't care about.
  • Azure back-end for document storage (2022)
  • With grist-core you can store document versions in anything S3-compatible, which covers a lot of services, but not Azure specifically. The Azure back-end fills that gap.
  • Unless you are a Microsoft shop you probably don't care about this.
  • Audit log streaming (2024)
  • With grist-core a lot of useful information is logged, but not organized specifically with auditing in mind. Audit log streaming supplies that organization, and a UI for setting things up.
  • Enterprises may care about this.
  • Advanced Admin Controls (2025)
  • This is a special page for a Grist installation administrator to monitor and edit user access to resources.
  • It uses a special set of administrative endpoints not present on grist-core .
  • If you're going to be running a large Grist installation, with employees coming and going, you may care about this.
  • Grist Assistant (2025)
  • An AI Formula Assistant - limited to working with formulas - is present in grist-core , but the newer Assistant can help with a wider range of tasks like building tables and dashboards, styling and formatting, explaining access rules, and modifying data.
  • If you have many users who need help building documents or working with data, you may care about this one.
  • Invite Notifications (2025)
  • When a user is added to a document, or a workspace, or a site, with email notifications they will get emailed a link to access the resource.
  • This link isn't special, with grist-core you can just send a link yourself or a colleague.
  • For a big Grist installation with users who aren't in close communication, emails might be nice? Hard to guess if you'll care about this one.
  • Document Change and Comment Notifications (2025)
  • You can achieve change notifications in grist-core using webhooks, but it is less convenient.
  • People have been asking for this one for years. If you need an excuse to get your boss to pay for Grist, this might finally be the one that works?
  • Automations (2026)

A tool for document owners to build trigger-driven workflows:

可复制命令
set conditions on any table, then send emails (with dynamic recipients and Markdown) or fire webhooks when rows match, and watch the results in a delivery log.

Using Grist To get the default version of grist-core running on your computer with Docker , do:

  • You can build similar flows in grist-core with webhooks, but you'd be wiring up the email side and the monitoring yourself.
  • OAuth apps (2026)
  • Register and authorize OAuth applications, scope them to specific orgs, workspaces, or documents, and review or revoke that access later.
  • A way to give external tools connection to Grist with scoped, revocable access instead of handing over a full API key. If you're connecting Grist to other software, you may care about this, as an alternative to API keys.
  • MCP server (2026)
  • A built-in Model Context Protocol endpoint that lets AI clients such as Claude or ChatGPT read and edit Grist documents over JSON-RPC. Enabled with GRIST_MCP_ENABLED (see environment variables ).
  • With grist-core you can still use one of the many community MCP servers that talks to Grist through its REST API . The built-in server saves you that work.
  • Single sign-on (SSO) via OIDC or SAML (2026)
命令
docker pull gristlabs/grist
命令
docker run -p 8484:8484 -it gristlabs/grist

Then visit http://localhost:8484 in your browser. On a brand new install you'll land on a Quick setup page that walks you through choosing an admin email, picking how people sign in, and setting who can use the site.

To get past the first screen, look in the container's startup log for a line containing a generated boot key, and paste it in when prompted. Once you click Apply and go live!

at the end of Quick setup, the site is open for business and you'll be able to create, edit, import, and export documents. There's a step-by-step walkthrough at First-run setup .

If you'd rather skip Quick setup entirely and start with an open, single-user setup, set GRIST_IN_SERVICE=true . You can come back to the same settings later from the Admin Panel . To preserve your work across docker runs, share a directory as /persist :

命令
docker run -p 8484:8484 -v $PWD /persist:/persist -it gristlabs/grist

Get templates at templates.getgrist.com for payroll, inventory management, invoicing, D&D encounter tracking, and a lot more, or use any document you've created on docs.getgrist.com .

If you need to change the port Grist runs on, set a PORT variable, don't just change the port mapping:

命令
docker run --env PORT=9999 -p 9999:9999 -v $PWD/persist:/persist -it gristlabs/grist

To enable gVisor sandboxing, set --env GRIST_SANDBOX_FLAVOR=gvisor . This should work with default docker settings, but may not work in all environments.

You can find a lot more about configuring Grist, setting up authentication, and running it on a public server in our Self-Managed Grist documentation.

Using Grist with OpenRouter for Model Agnostic and Claude Support (Instructions contributed by @lshalon) Grist's AI Formula Assistant can be configured to use OpenRouter instead of connecting directly to OpenAI, allowing you to access a wide range of AI models including Anthropic's Claude models.

This isn't the only way to use Claude models, but it's a good option if you want to use Claude models with Grist or intend to use other cheaper, faster, or potentially newer models.

That's because this configuration gives you more flexibility in choosing the AI model that works best for your formula generation needs. To set up OpenRouter integration, configure the following environment variables:

Required

Required
Set the endpoint to OpenRouter's API
命令
ASSISTANT_CHAT_COMPLETION_ENDPOINT=https://openrouter.ai/api/v1/chat/completions

Required: Your OpenRouter API key

来源教程配图

Translation status
配图 1 · Translation status查看原图
Translation detail
配图 2 · Translation detail查看原图
教程配图
配图 3 · 教程配图查看原图

适用场景

学习研究
开源项目实践