Save to Notion.
A home for your notes. One less open tab.
Send the current file or unsaved note to your Notion database. The tab closes after a local backup; the upload runs in the background, without waiting for the network.
For Sublime Text 2, with compatibility for 3 & 4 · Your own Notion API token
One action. Back to your work.
#Right-click inside the editor or on a tab and choose Save to Notion. The full buffer becomes a new page in your chosen database.
- Works with saved files and unsaved notes
- Closes the tab without a save dialog
- Keeps a local copy until the upload succeeds
- Retries connection failures in the background
Illustrative preview. No data is sent and no Notion connection is needed here.
Install the plugin
#Download the package
Download the release ZIP from the public GitHub repository, then extract it.
Download source ZIPVersion 1.0.0 · MIT license · No GitHub sign-in required.
Add it to Sublime Text
In Sublime, open Preferences → Browse Packages…. Rename the extracted folder to
NotionSaveand move it into the Packages folder.The file
notion_save_plugin.pyshould sit directly insidePackages/NotionSave/, alongside thenotion_savefolder. Restart Sublime.Requires curl with modern HTTPS support. macOS includes curl; on Windows or Linux, install it if needed and set its path in the plugin settings.
Connect your Notion database
Create an internal connection in Notion’s integration settings with Read content, Insert content, and Update content access. Copy its API token.
Open your target database in Notion. In its ••• → Connections menu, add that connection. Copy the database URL.
Use the original database, rather than a linked view. Its existing title column is detected automatically.
Save your settings
Open Sublime’s Command Palette with ⌘⇧P on macOS or Ctrl+Shift+P on Windows/Linux. Run Preferences: NotionSave Settings, paste the example below into the user settings on the right, and replace both placeholders.
NotionSave.sublime-settings{ "api_key": "YOUR_NOTION_API_TOKEN", "database_id": "YOUR_NOTION_DATABASE_URL_OR_ID" }Save the settings file. Open a note, right-click, and select Save to Notion. Upload progress appears in Sublime’s status bar.
Enter your token only in Sublime’s user settings. This website never asks for or receives it.
Configuration reference
#Run Preferences: NotionSave Settings to edit your user settings. Defaults appear on the left and your editable settings on the right. Changes are picked up automatically.
| Setting | What to enter |
|---|---|
api_key | Your Notion connection token. Alternatively, set the NOTION_API_KEY environment variable before launching Sublime. |
database_id | The full database URL or its ID. The database must be shared with your connection. |
data_source_id | Optional. Select a specific data source when a database has more than one. Takes precedence over database_id. |
curl_path | Optional. Defaults to curl. Use the full executable path if Sublime cannot find it, such as /usr/bin/curl. |
show_context_menu | Defaults to true. Set false to hide the editor and tab menu entries; the File menu and Command Palette commands stay available. |
Settings live in Packages/User/NotionSave.sublime-settings. Keep your API token out of the repository and your Vercel deployment.
If an upload needs attention
#Your text is saved locally before the tab closes. Connection failures and rate limits retry automatically while Sublime is running. These Command Palette actions help with everything else.
- Notion: Retry Uploads
- Retry pending uploads and failures after fixing your token, database permissions, or settings. An uncertain upload is left for review.
- Notion: Recover Pending Upload
- See pending uploads and their errors. Select one to open a copy of the original text in a new tab. The original queue entry stays in place.
- Notion: Open Queue Folder
- Open the local snapshots in
Packages/User/Notion Save Queue. Successful uploads are removed automatically.
If a write times out or Sublime quits during a request, check Notion before sending the recovered copy again. The first request may already have succeeded.
A few useful details
#Can I install it through Package Control?
Version 1.0.0 is submitted for review. Until it is accepted into the default channel, use the manual installation steps above.
Does it keep uploading after I quit Sublime?
The worker runs inside Sublime, so keep the app open until the status bar confirms the save. Pending uploads resume on the next launch. An interrupted write is held for review so it isn’t blindly sent twice.
What gets saved, and how is the page named?
The entire buffer is saved as plain text, including unsaved changes. A saved file uses its filename as the page title; an untitled note uses its first nonempty line. Long notes are split into Notion paragraph blocks. Markdown is kept as text. The limit is 5 MB per buffer.
Does it change or delete my local file?
No. The command closes the selected tab and sends its current contents to Notion. It does not overwrite or delete the original file on disk. Unsaved changes are included in the queued snapshot.
Where does my data go?
Note text goes directly from your computer to Notion’s API. Pending snapshots and your settings stay on your computer as plain text; the API token is not stored in queue entries. This documentation page has no analytics, credentials form, or upload service.
How can I deploy this page on Vercel?
Import the GitHub repository into Vercel, leave the Root Directory at the repository root, and choose the Other framework preset. The included vercel.json publishes only the site directory. No build command or environment variables are needed.