This Obsidian plugin allows you to quickly fetch YouTrack issues and create notes from them in your Obsidian vault.
${field} placeholders in templates to insert values from fetched fields${project.team.name}.obsidian/plugins/ folder


Alternatively, you can use the "Search YouTrack issues" command to open a search modal. Here you can enter a YouTrack query to search for issues. The results are paginated, and you can import any issue from the list.

The plugin creates notes with the following format. As an alternative, specify your own template in the plugin settings. You can use arbitrarily nested fields, e.g., ${project.team.name}.
# ${id}: ${title}
URL: ${url}
## Description
${description}
Any field referenced in the template can be used as a placeholder with ${field}. You can also use arbitrarily nested fields, e.g., ${project.team.name}.
The issue summary can also be used as a ${title} placeholder.
See the YouTrack API Issue entity documentation for a list of available fields.
If you have trouble fetching issues, check the following. If you're on macOS or Linux, you can use the provided curl commands in your terminal, replacing the example host, port, and token with your values.
URL + network reachability: verify that YouTrack is accessible from your machine.
Use the exact base URL you open in a browser, including port and any additional path like /youtrack.
curl -s -o /dev/null -w "%{http_code}\n" https://youtrack.company.local:8080/youtrack
200/302/401/403 = reachable000 = can't connect (VPN/DNS/firewall/port issue)API token (if your instance requires authentication).
To get a token:
Then enable "Use API token authentication" in the plugin settings and paste the generated token into "API token".
How to check that the token works:
curl -s -o /dev/null -w "%{http_code}\n" -H "Authorization: Bearer <your token here>" <base URL>/api/users/me
200 = token works401/403 = token invalid or permissions issuePermissions / project access
Ensure you have access to the project. Replace in the request below with the one you expect to have access to:
curl -s -o /dev/null -w "%{http_code}\n" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your token here>" \
-G --data-urlencode "query=project: <project code>" \
--data-urlencode "fields=idReadable,summary" \
--data-urlencode "\$top=1" \
<base URL>/api/issues
200 = access ok403 = no permissionIf you still face problems, create an issue. Also: in Obsidian, open View -> Toggle Developer Tools, check the Console for errors, and attach those logs to the ticket if possible.
This project includes a Nix flake and direnv configuration for reproducible development environments, along with Just commands for common tasks.
direnv allow to automatically load the development environmentnix develop to enter the development shell# List all available commands
just
# Clean build artifacts
just clean
# Install dependencies
just install
# Full production build (includes tests, type checking, and formatting)
just build
# Development build with watch mode
just watch
# Run tests
just test
# Run linter
just lint
# Run the CSS linter
just lint-css
Run the development build with change watch:
yarn dev:watch
Run the TypeScript type check:
yarn typecheck
Run the linter:
yarn lint
Run the CSS linter:
yarn lint:css
Run the tests:
yarn test
Run the tests in watch mode:
yarn test:watch
Generate a coverage report:
yarn coverage
Run the production build (includes tests, type checking, and formatting):
yarn build
Bump the version in package.json and manifest.json, push the main branch,
and publish a new tag:
yarn release -- <strategy|version>
This plugin is licensed under the MIT License.