A Chrome extension for quickly adding tasks to Vikunja from your browser.
- Vikunja v1.0.0 or newer (tested with v1.0.0-rc2-278-682096e5)
- Chrome/Chromium-based browser (Chrome, Edge, Brave, etc.)
- Valid Vikunja API token with appropriate permissions
Your API token must have the following permissions:
tasks:write- Required for creating tasksprojects:read- Required for loading projectslabels:read- Optional, for label support
- π Quick task creation from any webpage
- π Auto-fill task details with current page title and URL
- π Project selection with favorites and recent projects
- π·οΈ Label/tag support with search and quick creation
- β‘ Priority levels and due date support with quick shortcuts
- π±οΈ Context menu integration (right-click to add tasks)
- β Favorite projects for quick access
- π Smart due date shortcuts (Today, Tomorrow, Next Week)
- π¨ Dark mode support
- π Secure API token storage
-
Clone this repository:
git clone https://github.com/philantrop/vikunja-quick-add.git cd vikunja-quick-add -
Load the unpacked extension in Chrome:
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" in the top right
- Click "Load unpacked"
- Select the
vikunja-quick-adddirectory
- Open Chrome and navigate to
- Vikunja instance running v1.0.0 or newer
- Admin access to create API tokens
- Click the extension icon in your browser toolbar
- Click "configure your settings" or right-click the extension icon and select "Options"
- Enter your Vikunja instance URL (e.g.,
https://vikunja.example.com) - Create an API token in your Vikunja instance:
- Go to Settings β API Tokens
- Create a new token with at least
tasks:writeandprojects:readpermissions - For label support, also add
labels:readpermission
- Paste the token into the extension settings
- (Optional) Select a default project
- (Optional) Mark favorite projects with stars
- Click "Test Connection" to verify your settings
- Click "Save Settings"
- Navigate to any webpage you want to create a task from
- Click the extension icon
- The task description will be auto-filled with a link to the current page
- Enter a task title (or use quick-fill buttons)
- Select a project
- (Optional) Add labels, set priority, and due date
- Click "Add Task"
- Selected Text: Highlight any text, right-click, and select "Add to Vikunja"
- Links: Right-click any link and select "Add link to Vikunja"
- Due Date Shortcuts: Use "Today", "Tomorrow", or "Next Week" buttons
- Favorite Projects: Star projects in Settings to see them first
- Recent Projects: Your 5 most recently used projects appear at the top
- Labels: Type to search existing labels or create new ones on the fly
vikunja-quick-add/
βββ manifest.json # Extension manifest (Manifest V3)
βββ package.json # NPM package configuration
βββ LICENSE # AGPL-3.0 license
βββ README.md # This file
βββ .gitignore # Git ignore rules
βββ src/ # Source code
β βββ background/ # Background service worker
β β βββ service-worker.js
β βββ popup/ # Popup UI logic
β β βββ popup.js
β βββ options/ # Options page logic
β β βββ options.js
β βββ utils/ # Shared utilities
β βββ api.js # API client functions
β βββ helpers.js # Helper functions
βββ public/ # HTML pages
β βββ popup.html # Popup UI
β βββ options.html # Options page
βββ assets/ # Static assets
βββ icons/ # Extension icons
β βββ icon16.png
β βββ icon48.png
β βββ icon128.png
βββ styles/ # CSS stylesheets
βββ popup.css
βββ options.css
- Node.js and npm (optional, for build scripts)
- Chrome or Chromium-based browser
- Make changes to the source files
- Reload the extension in Chrome:
- Go to
chrome://extensions/ - Click the reload icon on the extension card
- Go to
# Install dependencies (if any added later)
npm install
# Create a production build
npm run build
# Package the extension as a ZIP file
npm run packageThe packaged extension will be created as vikunja-quick-add.zip in the root directory.
- Modular Architecture: Code is organized by feature/responsibility
- ES6 Modules: Using modern JavaScript modules for better maintainability
- Separation of Concerns: HTML, CSS, and JavaScript are kept in separate files
- Reusable Utilities: Common functions are extracted to utility modules
- Handles API communications with Vikunja
- Processes messages from popup and options pages
- Maintains extension lifecycle
- Quick task creation interface
- Project selection
- Priority and due date settings
- Auto-fill helpers for current page context
- API configuration
- Connection testing
- Default project selection
- api.js: Vikunja API client (tasks, projects, authentication)
- helpers.js: Shared helper functions (HTML escaping, status messages)
- Manifest V3 (modern Chrome extension format)
- ES6 Modules
- Chrome Storage API
- Chrome Tabs API
- Modern CSS with system color scheme support
Copyright (C) 2025 Wulf C. Krueger
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.
Contributions are welcome! Please feel free to submit issues or pull requests.
For issues, questions, or feature requests, please open an issue on the GitHub repository.
- FEATURES.md - Detailed feature usage guide
- CONTRIBUTING.md - Contribution guidelines