The project's README from github.com/gristlabs/grist-core. As one markdown file: README.md.
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.
https://github.com/user-attachments/assets/fe152f60-3d15-4b11-8cb2-05731a90d273
grist-coreTo 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:
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):
grist-static – no special server needed.grist-desktop..grist files small (🇫🇷).F1 key brings up some quick help. This used to go without saying, but in general Grist has good keyboard support (🇫🇷).If you are curious about where Grist is heading, see our roadmap, drop a question in our forum, or browse our extensive documentation.
grist-coreIf 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.
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.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.grist-core.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.grist-core you can just send a link yourself or a colleague.grist-core using webhooks, but it is less convenient.grist-core with webhooks, but you'd be wiring up the email side and the monitoring yourself.GRIST_MCP_ENABLED (see environment variables).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.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.
(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:
ASSISTANT_CHAT_COMPLETION_ENDPOINT=https://openrouter.ai/api/v1/chat/completions
ASSISTANT_API_KEY=your_openrouter_api_key_here
Sign up for an OpenRouter API key at https://openrouter.ai/
ASSISTANT_MODEL=anthropic/claude-3.7-sonnet
ASSISTANT_MODEL=deepseek/deepseek-r1-zero:free
ASSISTANT_MODEL=qwen/qwq-32b:free
ASSISTANT_MODEL=mistralai/mistral-saba
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: Make sure not to set the OPENAI_API_KEY variable when using OpenRouter, as this would override the OpenRouter configuration.
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 th