{"id":29365469,"url":"https://github.com/zebas204/adobe-wakatime","last_synced_at":"2025-08-24T14:26:46.368Z","repository":{"id":176445524,"uuid":"655919725","full_name":"ZEBAS204/adobe-wakatime","owner":"ZEBAS204","description":"Unofficial Wakatime integration for Adobe Products (Photoshop, Illustrator, After Effects, etc)","archived":false,"fork":false,"pushed_at":"2023-11-10T20:51:37.000Z","size":347,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-09T11:11:21.640Z","etag":null,"topics":["adobe","adobe-after-effects","adobe-cep","adobe-extensions","adobe-illustrator","adobe-illustrator-extensions","adobe-photoshop","adobe-plugins","adobe-uxp","time-tracker","time-tracking","wakatime","wakatime-plugin"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZEBAS204.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2023-06-19T22:36:33.000Z","updated_at":"2025-05-11T15:10:55.000Z","dependencies_parsed_at":"2024-03-04T17:00:54.275Z","dependency_job_id":null,"html_url":"https://github.com/ZEBAS204/adobe-wakatime","commit_stats":null,"previous_names":["zebas204/adobe_wakatime"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/ZEBAS204/adobe-wakatime","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZEBAS204%2Fadobe-wakatime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZEBAS204%2Fadobe-wakatime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZEBAS204%2Fadobe-wakatime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZEBAS204%2Fadobe-wakatime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZEBAS204","download_url":"https://codeload.github.com/ZEBAS204/adobe-wakatime/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZEBAS204%2Fadobe-wakatime/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271886604,"owners_count":24838914,"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-08-24T02:00:11.135Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["adobe","adobe-after-effects","adobe-cep","adobe-extensions","adobe-illustrator","adobe-illustrator-extensions","adobe-photoshop","adobe-plugins","adobe-uxp","time-tracker","time-tracking","wakatime","wakatime-plugin"],"created_at":"2025-07-09T11:10:51.871Z","updated_at":"2025-08-24T14:26:46.360Z","avatar_url":"https://github.com/ZEBAS204.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wakatime Adobe Plugin\n\n\u003ctable\u003e\n   \u003ctr\u003e\n      \u003ctd\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"#updating\"\u003eUpdating\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"#known-issues\"\u003eKnown Issues\u003c/a\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"#development\"\u003eDevelopment\u003c/a\u003e\u003c/td\u003e\n   \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cimg alt=\"Plugin panel preview\" align=\"right\" width=\"302\" height=\"452\" src=\".github/preview.png\"\u003e\n\nThe Wakatime plugin is a powerful integration that brings [Wakatime](https://wakatime.com/)'s time-tracking functionality to Adobe products.\n\n**Currently supported features:**\n\n- [x] Tracking time (every 2 min)\n- [x] Tracking file path\n- [x] Tracking file name\n- [x] Tracking machine name\n\nBy default, the plugin will show in your dashboard like this:\n\n- **File:** The path of the file or the name (if the path is unavailable)\n- **Language:** `{app_name}` (eg. `Photoshop`)\n- **Project name:** `Adobe {app_name}` (e.g. `Adobe Photoshop`) or define your own custom project name.\n- **Editor:** `Adobe-{app_name}` (eg. `Adobe-Photoshop`)\n- **Category:** Designing\n- **Machine:** `Unknown Hostname` - You will have to manually specify it in UXP!\n\n\u003e **Note**\n\u003e **💡** This plugin requires an internet connection and **will not track** time while offline.\n\u003e\n\u003e **💡** You can modify the project name, language, category, etc. using the [Custom rules](https://wakatime.com/settings/rules) in your dashboard.\n\n## Supported Adobe Applications\n\nThis plugin uses **Adobe Manifest v5** and **Adobe CEP 11**. Versions after `23.3.0` (UXP 6.0 or higher) should work as intended.\nWhile older versions may also work, please note that they are not officially supported.\n\n## Installation\n\n### UXP Compatible Applications\n\n\u003cdetails open\u003e\n\u003csummary\u003e\u003cb\u003eApplications supported:\u003c/b\u003e\u003c/summary\u003e\n\u003cblockquote\u003e\n\n- Photoshop\n- XD has its [own implementation here](https://wakatime.com/adobe-xd)\n\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\n1. Download the latest version of `wakatime-adobe-uxp.zip` from the [Releases page](https://github.com/ZEBAS204/adobe-wakatime/releases) or [click here to download directly](https://github.com/ZEBAS204/adobe-wakatime/releases/latest/download/wakatime-adobe-uxp.zip).\n2. Locate the plugins folder (default location):\n   - \u003e **IMPORTANT**\n      \u003e **If the directory does not exist, you must create it manually.**\n   - **Windows:** `C:\\Program Files\\Adobe\\Adobe Photoshop 20xx\\Plug-ins\\`\n   - **macOS:** `~/Library/Applications/Adobe Photoshop 20xx/Plug-ins/`\n3. Extract the `wakatime-adobe` folder from the downloaded zip file into the `Plug-ins` folder.\n\n### CEP Compatible Applications\n\n\u003cdetails open\u003e\n\u003csummary\u003e\u003cb\u003eApplications supported:\u003c/b\u003e\u003c/summary\u003e\n\u003cblockquote\u003e\n\n- Photoshop (only if `legacy` is available, you must uncomment `PHSP` \u0026 `PHXS` from `CSXS/manifest.xml`. Use [UXP](#uxp-compatible-applications) instead)\n- After Effects\n- Audition\n- Illustrator\n- Premiere Pro\n- **Please note:** these applications have been tested with this plugin, there may be other compatible Adobe applications that are not listed here.\n\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\n\u003e **Warning**\n\u003e You **must Enable loading of unsigned panels**. You can find the [tutorial on how to do it here](https://github.com/Adobe-CEP/Samples/tree/master/PProPanel#2-enable-loading-of-unsigned-panels).\n\n1. Download the latest version of `wakatime-adobe-cep.zip` from the [Releases page](https://github.com/ZEBAS204/adobe-wakatime/releases) or [click here to download directly](https://github.com/ZEBAS204/adobe-wakatime/releases/latest/download/wakatime-adobe-cep.zip).\n2. Locate the extensions folder (CEP supports 2 types of folders for unsigned extensions):\n   - \u003e **IMPORTANT**\n      \u003e **If the directory does not exist, you must create it manually.**\n\n   - **System extension folder**\n\n     - **Win(x86):** `C:\\Program Files (x86)\\Common Files\\Adobe\\CEP\\extensions\\`\n     - **Win(x64):** `C:\\Program Files\\Common Files\\Adobe\\CEP\\extensions\\`\n     - **macOS:** `~/Library/Application Support/Adobe/CEP/extensions/`\n\n   - **Per-user extension folder**\n     - **Windows:** `C:\\Users\\\u003cUSERNAME\u003e\\AppData\\Roaming\\Adobe\\CEP\\extensions\\`\n     - **macOS:** `~/Library/Application Support/Adobe/CEP/extensions/`\n\n3. Extract the `wakatime-adobe` folder from the downloaded zip file into the `extensions` folder.\n\n### Updating\n\nTo update, follow the same steps as the initial installation for either [CEP](#cep-compatible-applications) or [UXP](#uxp-compatible-applications).\nThen remove the previous `wakatime-adobe` folder and replace it with the latest version from the zip file.\n\n## Usage\n\n\u003e **Important**\n\u003e **THE PANEL WINDOW MUST NOT BE CLOSED.**\n\u003e **YOU CAN EXPAND/COLLAPSE/DOCK OR JUST KEEP IT AS A FLOATING WINDOW BUT NEVER CLOSE THE PANEL.**\n\n1. Open the Adobe application after you install this plugin.\n2. Select in the toolbar:\n   (CEP) **Window \u003e Extensions \u003e Wakatime**\n   (UXP) **Plugins \u003e Wakatime**;\n   or **Plugins panel** and choose **Plugins \u003e Plugins panel \u003e Wakatime**.\n3. Paste your **API key** into the input field and click the **Save** button ([Get your API key here](https://wakatime.com/api-key)).\n4. **(Optional, UXP only)** Provide your machine name ([found in your dashboard](https://wakatime.com/dashboard)) in the **Machine name** input field. Setting this field helps avoid displaying \"Unknown Hostname\" on your dashboard.\n5. The `status` should automatically update if the plugin is tracking time (it sends data every 2 minutes)\n   - If it still shows \"Disconnected,\" make sure you have an open file for the plugin to work. Don't worry if it initially shows \"Disconnected\" before you open a file.\n6. To disable the plugin, **uncheck** the \"Plugin enabled\" checkbox.\n\n### Status Meaning\n\n- \u003cimg display=\"inline\" height=\"15px\" width=\"15px\" alt=\"green status\" src=\"https://img.shields.io/badge/%20-1bbb40?style=plastic\" /\u003e **Connected** - The plugin is working as intended.\n- \u003cimg display=\"inline\" height=\"15px\" width=\"15px\" alt=\"orange status\" src=\"https://img.shields.io/badge/%20-f97316?style=plastic\" /\u003e **Unauthorized** - The provided API key is likely invalid, or you do not have permission to access the resource.\n- \u003cimg display=\"inline\" height=\"15px\" width=\"15px\" alt=\"red status\" src=\"https://img.shields.io/badge/%20-ef4444?style=plastic\" /\u003e **Disconnected** - The plugin only works when you have an open file and an internet connection. Make sure you have an open file and you are not on the Home screen.\n- \u003cimg display=\"inline\" height=\"15px\" width=\"15px\" alt=\"red status\" src=\"https://img.shields.io/badge/%20-ef4444?style=plastic\" /\u003e **Unavailable** - The server responded with an `error 500` and is currently unavailable.\n- \u003cimg display=\"inline\" height=\"15px\" width=\"15px\" alt=\"red status\" src=\"https://img.shields.io/badge/%20-ef4444?style=plastic\" /\u003e **Disconnected (despite being working before)** - The plugin may have sent too many requests in a short period and hit a rate limit.\n\n\u003e **Note**\n\u003e **The status may show \"Disconnected\" for any connection error or bad request.**\n\n## Known Issues\n\n- Config is randomly cleared when you close the application.\n  \u003e Sometimes the plugin storage may be completely cleared when updating the extension or the application. There's no fix from my side for this.\n\n- The connection status always shows as Disconnected\n  \u003e Arrr. If you're sailing with the Caribbean version of the application, check if there are no rules in your Firewall that are blocking connections.\n\n- The CEP panel may not allow writing while holding the `⇧ Shift` key.\n  \u003e Workaround: use `⇪ Caps Lock` key.\n\n- The CEP panel may not allow writing into input fields.\n  \u003e Workaround: simply copy and paste the text.\n\n---\n\n## Development\n\n### CEP\n\n#### Development Workflow for CEP\n\n1. Install the project dependencies, execute: `npm install`\n2. Run the CEP watch mode to automatically rebuild the plugin whenever changes are made. Execute: `npm run watch:cep`\n\n#### Debugging CEP Plugins\n\nTo use the CEP plugin with the supported Adobe applications (listed in [`plugin/CSXS/manifest.xml`](./plugin/CSXS/manifest.xml)), you need to copy the `dist` folder to the appropriate location. The [`CEP.sh`](./scripts/CEP.sh) shell script automates this process.\n\n*Follow the steps below to correctly debug the plugin:*\n\n1. Locate the `CEP.sh` file in the `scripts` folder.\n2. Open the `CEP.sh` file and specify the destination folder path for the `extensions` folder. Update the script accordingly (see [Installation: CEP Compatible Applications](#cep-compatible-applications) for the default paths)\n3. Save the changes to the `CEP.sh` file.\n4. Run the `CEP.sh` script. It will automatically copy the `dist` folder to the defined path.\n5. Open any of the supported applications and open the plugin panel. Select **Window \u003e Extensions \u003e Wakatime** in the toolbar.\n6. Open your browser, a Chromium-based browser is recommended for the best experience, and navigate to default host port [`localhost:7778`](http://localhost:7778/) (you can manually update all hosts debugging ports in [`plugin/.debug`](./plugin/.debug) file)\n7. Whenever you make changes to the CEP plugin code, run the `CEP.sh` script again. In the DevTools, click the reload button (located at the top-left corner) to load the updated version of the CEP plugin.\n\n### UXP\n\n#### Prerequisites UXP\n\n1. Install the [Adobe UXP Developer Tool](https://github.com/adobe-uxp/devtools-cli) by following the instructions provided in the repository.\n2. Enable Developer Mode if available (eg. in Photoshop), go to **Edit \u003e Preferences \u003e Plugins \u003e Enable Developer Mode** (you will need to relaunch Photoshop for the changes to take effect)\n\n#### Development Workflow for UXP\n\n1. Install the project dependencies, execute: `npm install`\n2. Run the UXP watch mode to automatically rebuild the plugin whenever changes are made. Execute: `npm run watch:uxp`\n3. Launch the UXP Developer Tools application.\n4. Load the plugin directly in Adobe Photoshop using the UXP Developer Tools application:\n   1. Click on \"Add Plugin...\" and navigate to the [`dist/manifest.json`](./dist/manifest.json) file in the project directory.\n      - **Make sure that you use the `dist` folder and NOT the `plugin` folder when loading the plugin.**\n   2. If the plugin was not automatically loaded, click \"Load\" in the action dropdown menu (three dots)\n5. Enable live-reloading, click \"Watch\" in the action dropdown menu (three dots)\n6. In the same dropdown menu, you can open the Chrome/Plugin dev tools by clicking \"Debug\"\n\n## Building\n\nTo build both the UXP and CEP plugins simultaneously, execute the following command:\n\n```shell\nnpm run build\n\n# Or only UXP:\nnpm run build:uxp\n\n# Or only CEP:\nnpm run build:cep\n```\n\nThis command will compile both the UXP and CEP. The generated files will be packaged into a `zip` file located in the `release` folder as `wakatime-adobe-uxp` and `wakatime-adobe-cep`. Code optimizations will be applied and some debugging files removed.\n\n\u003e **Warning**\n\u003e Sometimes Typescript loses track of [CSInterface library](./plugin/lib/CSInterface.js). To fix any errors, copy the file from `plugin/lib/CSInterface.js` to the `src` folder.\n\n---\n\nBased on [UXP Photoshop Plugin Samples: Photoshop TypeScript / Webpack Sample](https://github.com/AdobeDocs/uxp-photoshop-plugin-samples/tree/main/typescript-webpack-sample).\n\nYou can find all [CEP 11 documentation here](https://github.com/Adobe-CEP/CEP-Resources/blob/master/CEP_11.x/Documentation/CEP%2011.1%20HTML%20Extension%20Cookbook.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzebas204%2Fadobe-wakatime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzebas204%2Fadobe-wakatime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzebas204%2Fadobe-wakatime/lists"}