grist-core README

The project's README from github.com/gristlabs/grist-core. As one markdown file: README.md.

Grist

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

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

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:

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):

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.

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: 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: 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: 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 th

grist-core (gristlabs/grist-core)

Searching Database…

What is this?Grist is an open-source hybrid spreadsheet/database: columns are typed and named like a database, but can also be filled with Python-syntax formulas like a spreadsheet, with automatic recalculation.
Is grist-core the whole Grist product, or just one piece of it?grist-core is the self-hostable server (Community edition); grist-desktop is a separate Linux/macOS/Windows app for editing documents locally, and grist-static is an in-browser build for embedding spreadsheets on a website with no backend.
How do I get it running?The fastest path is Docker: run the default grist-core image, then open it in your browser, where a Quick setup page walks you through choosing an admin email and sign-in method using a boot key printed in the container's startup log.
Do I need Docker to self-host it?Docker is the recommended way to run grist-core as a server; alternatively you can skip the server entirely and just run the standalone grist-desktop app on Linux, macOS, or Windows.
What's missing compared to the hosted getgrist.com version?Several enterprise-ish extras aren't in grist-core: GristConnect SSO, Azure storage backend, audit log streaming, advanced admin controls, the broader AI Assistant (vs. the formula-only assistant in core), notification emails, automations, OAuth apps, and a built-in MCP server.
Does grist-desktop only run on Linux, or also Windows and Mac?grist-desktop runs on Linux, macOS, and Windows as a self-contained app for viewing and editing documents locally, no server required.
Is this really free, or is there a catch with the license?grist-core itself is fully open-source under Apache 2.0 with no catch; Grist Labs separately sells a 'full edition' with extra enterprise features, but that full edition is free for individuals and small organizations with under US$1 million in annual funding.
Can I actually write formulas in Python?Yes, grist-core supports full Python syntax including the standard library for formulas, plus many familiar Excel-style functions.
What format are Grist documents stored in?Each document is a single SQLite file, so any SQLite-compatible tool can read the numeric and text data, making backups and host migration straightforward.
Can I bring my data in from Airtable or Excel?Grist supports direct import from Airtable, plus import/export to Google Drive, Excel, and CSV, including incremental CSV imports that avoid duplicating previously imported rows.
Is there AI help for writing formulas?Yes, grist-core includes an AI Formula Assistant tuned for formula generation, which can work with OpenAI, Llama, and other models via OpenRouter or any OpenAI-compatible endpoint.
Creator
gristlabs
Size
53.2 MB
Stars
12K
Age
6y
Commits · 90 Days