Skip to content
See Sanity in action 👀 Join us for a live product demo + Q&A →
Sanity
Get started
  • Sanity Studio - Flexible editing environment
  • Content Lake - Real-time database
  • Developer experience - Tooling you love
  • Structured content - The philosophy behind Sanity
  • Review changes - View edits & rollback instantly
  • Image pipeline - On-demand transformations
  • E-commerce - Better shopping experiences
  • Marketing sites - Control your story
  • Products & services - Innovate and automate
  • Mobile apps - Content backend for every OS
  • Aether - Unique digital shopping experience
  • Morning Brew - Omnichannel media distribution
  • InVision - Delivering exceptional customer experiences
  • DataStax - Personalization for global audience
  • React
  • Gatsby
  • Next
  • Nuxt
  • Eleventy
  • Netlify
  • Vercel
  • Algolia
  • Documentation
  • Reference
  • Guides
  • Resource library
  • Headless CMS
  • Tools & plugins
  • Project showcase
  • Schemas & snippets
  • Agency partners
  • Technology partners
  • Get support
  • Share your work
  • 5 Disadvantages Of Wordpress That Are Holding You Back
EnterprisePricing
Contact salesLog inGet started
Published October 19th 2018

5 neat tricks you can make the Sanity CLI do

The Sanity CLI can do many things, but here are five of them you should check out.

Knut Melvær

Principal Developer Marketing Manager

At the Sanity Head Quarters, we live and breathe in the terminal. And honestly, we keep developing the Sanity CLI tool because we use it ourselves every day. I want to take this moment to share some of the cool things you can do with it. And yes, I promise that number 5 will be worth your attention 🤯.

1. Query your data

sanity documents query "*[_type == 'post']{_id, title}"

You can do a couple of things with the sanity documents command, but one of those we use the most is the one for querying a dataset. Running this in your project folder will give you your data printed out right in the terminal. If you add --pretty, you'll get some nice highlighting too. This is handy for testing queries and exploring your content, but if you think about it, it's also a way to use those UNIX superpowers on your content. For example, you can use it to export your data to a csv file. I use it so often that I have added alias sdq="sanity documents query" to my shell configuration.

2. Export a dataset in a neat package

sanity dataset export <datasetName>

The whole point of a structured content management system is that it should be easy to get your content out of it. Usually that's by querying the API for the content you want, but sometimes, you want it all, at once, neatly packaged. This command exports all your documents in a .ndjson-file and your assets to a dedicated folder. It downloads a gzipped file, which you also can import to a new dataset with sanity dataset import. You can also, for example, unpack the file, run a find-and-replace-all operation on all your data, and import the dataset.ndjson file to a dataset again.

Getting ALL THE DATA

3. Manage CORS settings

sanity cors add http://localhost:8000

CORS is a thing. It's easy to forget it when you're on a roll building your new frontend. Then it's nice to have an easy way to add a new CORS origin right from the command line. You can delete and list them out too.

4. Get an overview of your projects

sanity projects list

Since you can have as many free developer plans as you desire, and starting a new project (sanity init) is rather easy, it doesn't take long before you have a handful of projects in your account. Then it's nice to have an easy way to list out all the projects with some key information tied to your account.

5. Create and edit a document in your favorite editor

sanity documents create --id myDocId --watch --replace

This command is my favorite. It creates a new document, opens it in the EDITOR you've set in your terminal (mine is export EDITOR='code -w'), and lets you live edit that document while it's being synced to the datastore. If you put an existing document id in the myDocId spot, you'll get that document and be able to edit it. Run sanity documents create --help to learn more about what this command can do.

Page content

  • 1. Query your data
  • 2. Export a dataset in a neat package
  • 3. Manage CORS settings
  • 4. Get an overview of your projects
  • 5. Create and edit a document in your favorite editor

Platform

Structured ContentDeveloper experienceContent LakeSanity StudioSecurity & Compliance
  • Sanity vs Contentful
  • Sanity vs Strapi
  • Sanity vs Wordpress
  • Sanity vs Adobe Experience Manager
  • Sanity vs Hygraph
  • Sanity vs Sitecore
  • Sanity vs Storyblok
  • Sanity vs Contentstack
  • Sanity vs Prismic
  • Sanity vs Drupal
  • Sanity vs ButterCMS

Resources

Documentation
  • React Blog
  • Gatsby Blog
  • Next.js Landing Pages
  • Progressive Web Application
  • Single Page Application
  • Svelte & Typescript App
  • Vue & Tailwind Blog
  • Developer Portfolio Templates
  • Form validation with Yup
  • Live Preview with Next.js and Sanity.io
Resource library
  • Agency partners
  • Technology partners
  • Blog Template
  • Personal Website Template
  • Developer Portfolio Templates
  • All Templates
Case Studies
  • Headless CMS
  • What is an API CMS
  • Static Sites 101
  • Headless SEO
  • Localization
  • GraphQL vs REST
  • What is a DXP?
  • Typescript 101
  • Content as a Service
  • Ecommerce SEO
  • React CMS
  • Next.JS CMS
  • CMS for Shopify
  • Content platform
  • Multilingual CMS
  • Static Site CMS
  • Gatsby CMS
  • Node CMS
  • E-commerce CMS
  • Vue CMS
  • Angular CMS
  • GraphQL CMS
  • Newspaper CMS
  • Magazine CMS
  • CMS for apps
  • Remix CMS

Company

Contact SalesEnterpriseCareersTerms of ServiceAccessibility Statement

Stay connected

  • GitHub
  • Slack
  • Twitter
  • YouTube
  • Stack Overflow
  • Blog RSS
  • Newsletter
©Sanity 2023