{"id":25603879,"url":"https://github.com/merrit/krunner-dart","last_synced_at":"2025-07-22T12:35:47.554Z","repository":{"id":61973909,"uuid":"431574283","full_name":"Merrit/krunner-dart","owner":"Merrit","description":"A user-friendly API for KDE's KRunner application.","archived":false,"fork":false,"pushed_at":"2024-10-31T18:44:17.000Z","size":1325,"stargazers_count":17,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-19T05:29:45.758Z","etag":null,"topics":["api","kde","krunner","plugins"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/krunner","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Merrit.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-11-24T17:33:12.000Z","updated_at":"2024-12-06T11:42:20.000Z","dependencies_parsed_at":"2024-10-28T16:47:07.200Z","dependency_job_id":"3d4c8c8c-42e6-45b7-99c3-71aa4f0c7b12","html_url":"https://github.com/Merrit/krunner-dart","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/Merrit/krunner-dart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Merrit%2Fkrunner-dart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Merrit%2Fkrunner-dart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Merrit%2Fkrunner-dart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Merrit%2Fkrunner-dart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Merrit","download_url":"https://codeload.github.com/Merrit/krunner-dart/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Merrit%2Fkrunner-dart/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266496593,"owners_count":23938714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","kde","krunner","plugins"],"created_at":"2025-02-21T17:29:21.761Z","updated_at":"2025-07-22T12:35:47.503Z","avatar_url":"https://github.com/Merrit.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KRunner Dart\n\n*A user-friendly API for KDE's KRunner application.*\n\nWith KRunner Dart you can create plugins for KDE's KRunner application in an\neasy and sane way. The API is designed to be type safe, null safe, and easy to\nuse.\n\nUnlike the C++ or Python APIs, KRunner Dart provides code completion and \ndocumentation in tooltips for a better development experience.\n\n\n- [KRunner Dart](#krunner-dart)\n  - [Features](#features)\n    - [Documentation in tooltips](#documentation-in-tooltips)\n    - [Code completion](#code-completion)\n  - [Usage](#usage)\n    - [Creating plugins](#creating-plugins)\n  - [Documentation](#documentation)\n  - [Installing](#installing)\n  - [Support](#support)\n  - [License](#license)\n  - [Contributing](#contributing)\n\n\n## Features\n\n- Type safe\n- Null safe\n- Named parameters\n- [API Documentation](https://pub.dev/documentation/krunner/latest/krunner/krunner-library.html)\n\n### Documentation in tooltips\n\n![Documentation in tooltips](https://raw.githubusercontent.com/Merrit/krunner-dart/refs/heads/main/assets/videos/promo/intellisense.gif)\n\n### Code completion\n\n![Code completion](https://raw.githubusercontent.com/Merrit/krunner-dart/refs/heads/main/assets/videos/promo/code_completion.gif)\n\n## Usage\n\n### Creating plugins\n\n```dart\nimport 'package:krunner/krunner.dart';\n\nFuture\u003cvoid\u003e main() async {\n  /// Create a runner instance.\n  final runner = KRunnerPlugin(\n    identifier: 'com.example.plugin_name',\n    name: '/plugin_name',\n    matchQuery: (String query) async {\n      /// If the KRunner query matches exactly `hello` we return a match.\n      if (query == 'hello') {\n        return [\n          QueryMatch(\n            id: 'uniqueMatchId',\n            title: 'This is presented to the user',\n            icon: 'checkmark',\n            rating: QueryMatchRating.exact,\n            relevance: 1.0,\n            properties: QueryMatchProperties(subtitle: 'Subtitle for match'),\n          ),\n        ];\n      } else {\n        return []; // Empty response (no matches).\n      }\n    },\n    retrieveActions: () async =\u003e [\n      SecondaryAction(\n        id: 'uniqueActionId',\n        text: 'hoverText',\n        icon: 'addressbook-details',\n      ),\n    ],\n    runAction: ({required String actionId, required String matchId}) async {\n      if (actionId == 'uniqueActionId') {\n        print('User clicked secondary action!');\n      }\n    },\n  );\n\n  /// Start the runner.\n  await runner.init();\n}\n```\n\nRefer to the [example](https://github.com/Merrit/krunner-dart/tree/main/example)\ndirectory for a complete example, including instructions for debugging and\ninstalling plugins.\n\nFor a real-world example of a plugin made with this API see [VSCode Runner](https://github.com/Merrit/vscode-runner).\n\n\n## Documentation\n\nIn addition to the documentation available in IDE code completion and hover\npopups, the [API Documentation](https://pub.dev/documentation/krunner/latest/krunner/krunner-library.html)\nis available online.\n\n\n## Installing\n\nAdd to dependencies:\n\n```\ndart pub add krunner\n```\n\n## Support\n\nIf you encounter any issues or have any questions, please file an issue on the \n[GitHub repository](https://github.com/Merrit/krunner-dart/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen).\n\n\n## License\n\nYou are free to copy, modify, and distribute KRunner Dart with attribution under \nthe terms of the BSD 3-Clause License. See the\n[LICENSE](https://github.com/Merrit/krunner-dart/blob/fa1c521642672d378133c74412a663c7b51d994b/LICENSE) file for details.\n\n## Contributing\n\nContributions are welcome! Feel free to open an issue or a pull request on the\n[GitHub repository](https://github.com/Merrit/krunner-dart).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmerrit%2Fkrunner-dart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmerrit%2Fkrunner-dart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmerrit%2Fkrunner-dart/lists"}