https://github.com/lazyguru/obsidian-quire-sync
Sync tasks between Obsidian and Quire
https://github.com/lazyguru/obsidian-quire-sync
obsidian-plugin quire typescript
Last synced: 2 months ago
JSON representation
Sync tasks between Obsidian and Quire
- Host: GitHub
- URL: https://github.com/lazyguru/obsidian-quire-sync
- Owner: lazyguru
- License: mit
- Created: 2023-09-10T21:53:09.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-01T15:07:29.000Z (almost 2 years ago)
- Last Synced: 2025-12-01T19:33:08.315Z (5 months ago)
- Topics: obsidian-plugin, quire, typescript
- Language: TypeScript
- Homepage:
- Size: 453 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Obsidian Quire Sync
This project uses Typescript to provide type checking and documentation.
The repo depends on the latest plugin API (obsidian.d.ts) in Typescript Definition format, which contains TSDoc comments describing what it does.
This plugin allows the synchronization of tasks between Obsidian and [Quire](https://quire.io). This is done using a special identifier format `[QuireId:]` where `` is the Quire OID of a task. NOTE: This identifier MUST come before all emojis on the task line due to a [limitation](https://publish.obsidian.md/tasks/Getting+Started/Auto-Suggest#What+do+I+need+to+know+about+the+order+of+items+in+a+task%3F) in the Obsidian Tasks plugin
- Adds a command "Push to Quire" which pushes tasks to Quire.
- Adds a command "Pull from Quire" which pulls tasks from Quire.
- Adds a command "Toggle Quire task" to mark a task as done/reopened in Quire.
- Adds a command "Authenticate with Quire" which authenticates with Quire and retrieves a refresh-token for use in interacting with the Quire API.
- NOTE: This command is only available on desktop. However, the auth token is saved and usable on mobile if you have sync setup (can be Obsidian Sync or another form of sync)
### Not supported
- As Quire doesn't have a field for `scheduled`, that field is not pushed to Quire. However, if you have it set in Obsidian, it will be maintained (not overwritten)
## How to use
- Clone this repo.
- Make sure your NodeJS is at least v18 (`node --version`).
- `npm i` to install dependencies.
- `npm run dev` to start compilation in watch mode.
## Manually installing the plugin
- Copy over `main.js`, `styles.css`, `manifest.json` to your vault `VaultFolder/.obsidian/plugins/obsidian-quire-sync/`.
## Security
This plugin stores your client-id, client-secret, as well as refresh and access tokens in plain text in your .obsidian/plugins folder. Anyone with these tokens could access and manipulate your Quire data based on whatever permissions you granted the application when you registered it. Ensure that you are not syncing/sharing your .obsidian/plugins folder for security purposes (or at the very least ensure it is done so in a secure way). Use this plugin at your own risk
## Support
If you like this plugin or want to support further development, you can [Buy Me a Coffee](https://www.buymeacoffee.com/lazyguru) or support via [GitHub](https://github.com/sponsors/lazyguru).
Please report bugs and request features in [GitHub Issues](https://github.com/lazyguru/obsidian-quire-sync/issues)
## Special Thanks
I copied some of the sync functionality from [wesmoncrief](https://github.com/wesmoncrief/obsidian-todoist-text/). Thanks, your plugin is almost exactly what I wanted to do here. (also, thanks for the security notice. Mine is heavily inspired by yours)