{"repo":"AutomaApp/automa","free":true,"listed":false,"github":"https://github.com/AutomaApp/automa","clone":"git clone https://github.com/AutomaApp/automa.git","description":"A browser extension for automating your browser by connecting blocks","language":"Vue","stars":21572,"topics":["automation","browser-automation","browser-extension","chrome-extension","firefox-extension","hacktoberfest","javascript","vue","workflow"],"license":null,"category":"browser_automation","readme_excerpt":"<img src=\"src/assets/images/icon-128.png\" width=\"64\"/>\n\n# Automa\n<p>\n  <img alt=\"Automa latest version\" src=\"https://img.shields.io/github/package-json/v/AutomaApp/automa\" />\n  <a href=\"https://twitter.com/AutomaApp\">\n    <img alt=\"Follow Us on Twitter\" src=\"https://img.shields.io/twitter/follow/AutomaApp?style=social\" />\n  </a>\n  <a href=\"https://discord.gg/C6khwwTE84\">\n    <img alt=\"Chat with us on Discord\" src=\"https://img.shields.io/discord/942211415517835354?label=join%20discord&logo=Discord&logoColor=white\" />\n  </a>\n</p>\n\nAn extension for automating your browser by connecting blocks. <br />\nAuto-fill forms, do a repetitive task, take a screenshot, or scrape website data — the choice is yours. You can even schedule when the automation will execute!\n\n## Downloads\n<table cellspacing=\"0\" cellpadding=\"0\">\n  <tr>\n    <td valign=\"center\">\n      <a align=\"center\" href=\"https://chrome.google.com/webstore/detail/automa/infppggnoaenmfagbfknfkancpbljcca\">\n        <img src=\"https://user-images.githubusercontent.com/22908993/166417152-f870bfbd-1770-4c28-b69d-a7303aebc9a6.png\" alt=\"Chrome web store\" />\n        <p align=\"center\">Chrome Web Store</p>\n      </a>\n    </td>\n    <td valign=\"center\">\n      <a href=\"https://addons.mozilla.org/en-US/firefox/addon/automa/\">\n        <img src=\"https://user-images.githubusercontent.com/22908993/166417727-3481fef4-00e5-4cf0-bb03-27fb880d993c.png\" alt=\"Firefox add-ons\" />\n        <p align=\"center\">Firefox Add-ons</p>\n      </a>\n    </td>\n  </tr>\n</table>\n\n## Marketplace\nBrowse the Automa marketplace where you can share and download workflows with others. [Go to the marketplace &#187;](https://extension.automa.site/marketplace)\n\n## Automa Chrome Extension Builder\nAutoma Chrome Extension Builder (Automa CEB for short) allows you to generate a standalone chrome extension based on Automa workflows. [Go to the documentation &#187;](https://docs.extension.automa.site/extension-builder)\n\n\n## Project setup\nBefore running the `yarn dev` or `yarn build` script, you need to create the `getPassKey.js` file in the `src/utils` directory.  Inside the file write\n\n```js\nexport default function() {\n  return 'anything-you-want';\n}\n```\n\n```bash\n# Install dependencies\npnpm install\n\n# Compiles and hot-reloads for development for the chrome browser\npnpm dev\n\n# Compiles and minifies for production for the chrome browser\npnpm build\n\n# Create a zip file from the build folder\npnpm build:zip\n\n# Compiles and hot-reloads for development for the firefox browser\npnpm dev:firefox\n\n# Compiles and minifies for production for the firefox browser\npnpm build:firefox\n\n# Lints and fixes files\npnpm lint\n```\n\n### Icon Preview\nv-remixicon/icons: https://preview-v-remixicon.vercel.app/\n\n### Install Locally\n#### Chrome\n1. Open chrome and navigate to extensions page using this URL: chrome://extensions.\n2. Enable the \"Developer mode\".\n3. Click \"Load unpacked extension\" button, browse the `automa/build` directory and select it.\n\n![Install in chrome](https://user-images.githubusercontent.com/22908993/166417152-f870bfbd-1770-4c28-b69d-a7303aebc9a6.png)\n\n### Firefox\n1. Open firefox and navigate to `about:debugging#/runtime/this-firefox`.\n2. Click the \"Load Temporary Add-on\" button.\n3. Browse the `automa/build` directory and select the `manifest.json` file.\n\n![Install in firefox](https://user-images.githubusercontent.com/22908993/166417727-3481fef4-00e5-4cf0-bb03-27fb880d993c.png)\n\n## Contributors\nThanks to everyone who has submitted issues, made suggestions, and generally helped make this a better project.\n\n<a href=\"https://github.com/AutomaApp/automa/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=AutomaApp/automa\" />\n</a>\n\n## License\nSource code in this repository is variously licensed under the GNU Affero General Public License (AGPL), or the [Automa Commercial License](https://extension.automa.site/license/commercial/).\n\nSee [LICENSE.txt](./LICENSE.txt) for details.\n","default_branch":"main","files":540,"tree":[".babelrc",".editorconfig",".eslintrc.js",".github/FUNDING.yml",".github/ISSUE_TEMPLATE/bug_report.md",".github/ISSUE_TEMPLATE/feature_request.md",".github/dependabot.yml",".gitignore",".prettierrc",".vscode/settings.json","LICENSE.txt","README.md","business/dev/blocks/backgroundHandler/index.js","business/dev/blocks/contentHandler/index.js","business/dev/blocks/editComponents/index.js","business/dev/blocks/index.js","business/dev/index.js","business/dev/parameters/index.js","jsconfig.json","package.json","pnpm-lock.yaml","postcss.config.js","secrets.blank.js","src/assets/css/drawflow.css","src/assets/css/flow.css","src/assets/css/fonts.css","src/assets/css/style.css","src/assets/css/tailwind.css","src/assets/fonts/Inter-roman-latin.var.woff2","src/assets/fonts/inter-v3-latin-600.woff","src/assets/fonts/inter-v3-latin-600.woff2","src/assets/fonts/inter-v3-latin-regular.woff","src/assets/fonts/inter-v3-latin-regular.woff2","src/assets/fonts/source-code-pro-v21-latin-600.woff","src/assets/fonts/source-code-pro-v21-latin-600.woff2","src/assets/fonts/source-code-pro-v21-latin-regular.woff","src/assets/fonts/source-code-pro-v21-latin-regular.woff2","src/assets/images/default.png","src/assets/images/icon-128.png","src/assets/images/icon-dev-128.png","src/assets/images/smooth-step.png","src/assets/images/step.png","src/assets/images/straight.png","src/assets/images/theme-dark.png","src/assets/images/theme-light.png","src/assets/images/theme-system.png","src/assets/images/tile-white.png","src/assets/images/tile.png","src/assets/svg/alien.svg","src/assets/svg/files-and-folder.svg","src/assets/svg/logo.svg","src/assets/svg/logoFirefox.svg","src/background/BackgroundEventsListeners.js","src/background/BackgroundOffscreen.js","src/background/BackgroundUtils.js","src/background/BackgroundWorkflowTriggers.js","src/background/BackgroundWorkflowUtils.js","src/background/index.js","src/common/utils/constant.js","src/components/block/BlockBase.vue","src/components/block/BlockBasic.vue","src/components/block/BlockBasicWithFallback.vue","src/components/block/BlockConditions.vue","src/components/block/BlockDelay.vue","src/components/block/BlockElementExists.vue","src/components/block/BlockGroup.vue","src/components/block/BlockGroup2.vue","src/components/block/BlockLoopBreakpoint.vue","src/components/block/BlockNote.vue","src/components/block/BlockPackage.vue","src/components/block/BlockRepeatTask.vue","src/components/content/selector/SelectorBlocks.vue","src/components/content/selector/SelectorElementList.vue","src/components/content/selector/SelectorElementsDetail.vue","src/components/content/selector/SelectorQuery.vue","src/components/content/shared/SharedElementHighlighter.vue","src/components/content/shared/SharedElementSelector.vue","src/components/newtab/app/AppLogs.vue","src/components/newtab/app/AppLogsItem.vue","src/components/newtab/app/AppLogsItemRunning.vue","src/components/newtab/app/AppLogsItems.vue","src/components/newtab/app/AppSidebar.vue","src/components/newtab/app/AppSurvey.vue","src/components/newtab/logs/LogsDataViewer.vue","src/components/newtab/logs/LogsFilters.vue","src/components/newtab/logs/LogsHistory.vue","src/components/newtab/logs/LogsTable.vue","src/components/newtab/logs/LogsVariables.vue","src/components/newtab/package/PackageDetails.vue","src/components/newtab/package/PackageSettingIOSelect.vue","src/components/newtab/package/PackageSettings.vue","src/components/newtab/settings/SettingsBackupItems.vue","src/components/newtab/settings/SettingsCloudBackup.vue","src/components/newtab/settings/jsBlockWrap.js","src/components/newtab/shared/SharedCard.vue","src/components/newtab/shared/SharedCodemirror.vue","src/components/newtab/shared/SharedConditionBuilder/ConditionBuilderInputs.vue","src/components/newtab/shared/SharedConditionBuilder/index.vue","src/components/newtab/shared/SharedElSelectorActions.vue","src/components/newtab/shared/SharedLogsTable.vue","src/components/newtab/shared/SharedPermissionsModal.vue","src/components/newtab/shared/SharedWorkflowState.vue","src/components/newtab/shared/SharedWorkflowTriggers.vue","src/components/newtab/shared/SharedWysiwyg.vue","src/components/newtab/storage/StorageCredentials.vue","src/components/newtab/storage/StorageEditTable.vue","src/components/newtab/storage/StorageTables.vue","src/components/newtab/storage/StorageVariables.vue","src/components/newtab/workflow/WorkflowBlockList.vue","src/components/newtab/workflow/WorkflowDataTable.vue","src/components/newtab/workflow/WorkflowDetailsCard.vue","src/components/newtab/workflow/WorkflowEditBlock.vue","src/components/newtab/workflow/WorkflowEditor.vue","src/components/newtab/workflow/WorkflowGlobalData.vue","src/components/newtab/workflow/WorkflowProtect.vue","src/components/newtab/workflow/WorkflowRunning.vue","src/components/newtab/workflow/WorkflowSettings.vue","src/components/newtab/workflow/WorkflowShare.vue","src/components/newtab/workflow/WorkflowShareTeam.vue","src/components/newtab/workflow/WorkflowSharedActions.vue","src/components/newtab/workflow/edit/BlockSetting/BlockSettingGeneral.vue","src/components/newtab/workflow/edit/BlockSetting/BlockSettingLines.vue","src/components/newtab/workflow/edit/BlockSetting/BlockSettingOnError.vue","src/components/newtab/workflow/edit/EditAiWorkflow.vue","src/components/newtab/workflow/edit/EditAttributeValue.vue","src/components/newtab/workflow/edit/EditAutocomplete.vue","src/components/newtab/workflow/edit/EditBlockSettings.vue","src/components/newtab/workflow/edit/EditBrowserEvent.vue","src/components/newtab/workflow/edit/EditClipboard.vue","src/components/newtab/workflow/edit/EditCloseTab.vue","src/components/newtab/workflow/edit/EditConditions.vue","src/components/newtab/workflow/edit/EditCookie.vue","src/components/newtab/workflow/edit/EditCreateElement.vue","src/components/newtab/workflow/edit/EditDataMapping.vue","src/components/newtab/workflow/edit/EditDelay.vue","src/components/newtab/workflow/edit/EditDeleteData.vue","src/components/newtab/workflow/edit/EditElementExists.vue","src/components/newtab/workflow/edit/EditExecuteWorkflow.vue","src/components/newtab/workflow/edit/EditExportData.vue","src/components/newtab/workflow/edit/EditForms.vue","src/components/newtab/workflow/edit/EditGetText.vue","src/components/newtab/workflow/edit/EditGoogleDrive.vue","src/components/newtab/workflow/edit/EditGoogleSheets.vue","src/components/newtab/workflow/edit/EditGoogleSheetsDrive.vue","src/components/newtab/workflow/edit/EditHandleDialog.vue","src/components/newtab/workflow/edit/EditHandleDownload.vue","src/components/newtab/workflow/edit/EditIncreaseVariable.vue","src/components/newtab/workflow/edit/EditInsertData.vue","src/components/newtab/workflow/edit/EditInteractionBase.vue","src/components/newtab/workflow/edit/EditJavascriptCode.vue","src/components/newtab/workflow/edit/EditLink.vue","src/components/newtab/workflow/edit/EditLogData.vue","src/components/newtab/workflow/edit/EditLoopData.vue","src/components/newtab/workflow/edit/EditLoopElements.vue","src/components/newtab/workflow/edit/EditNewTab.vue","src/components/newtab/workflow/edit/EditNewWindow.vue","src/components/newtab/workflow/edit/EditNotification.vue","src/components/newtab/workflow/edit/EditParameterPrompt.vue","src/components/newtab/workflow/edit/EditPressKey.vue","src/components/newtab/workflow/edit/EditProxy.vue","src/components/newtab/workflow/edit/EditRegexVariable.vue","src/components/newtab/workflow/edit/EditSaveAssets.vue","src/components/newtab/workflow/edit/EditScrollElement.vue","src/components/newtab/workflow/edit/EditSliceVariable.vue","src/components/newtab/workflow/edit/EditSortData.vue","src/components/newtab/workflow/edit/EditSwitchTab.vue","src/components/newtab/workflow/edit/EditSwitchTo.vue","src/components/newtab/workflow/edit/EditTabURL.vue","src/components/newtab/workflow/edit/EditTakeScreenshot.vue","src/components/newtab/workflow/edit/EditTrigger.vue","src/components/newtab/workflow/edit/EditTriggerEvent.vue","src/components/newtab/workflow/edit/EditUploadFile.vue","src/components/newtab/workflow/edit/EditWaitConnections.vue","src/components/newtab/workflow/edit/EditWebhook.vue","src/components/newtab/workflow/edit/EditWhileLoop.vue","src/components/newtab/workflow/edit/EditWorkflowParameters.vue","src/components/newtab/workflow/edit/EditWorkflowState.vue","src/components/newtab/workflow/edit/InsertWorkflowData.vue","src/components/newtab/workflow/edit/Parameter/ParameterCheckboxValue.vue","src/components/newtab/workflow/edit/Parameter/ParameterInputOptions.vue","src/components/newtab/workflow/edit/Parameter/ParameterInputValue.vue","src/components/newtab/workflow/edit/Parameter/ParameterJsonValue.vue","src/components/newtab/workflow/edit/Trigger/TriggerContextMenu.vue","src/components/newtab/workflow/edit/Trigger/TriggerCronJob.vue","src/components/newtab/workflow/edit/Trigger/TriggerDate.vue","src/components/newtab/workflow/edit/Trigger/TriggerElementChange.vue","src/components/newtab/workflow/edit/Trigger/TriggerElementOptions.vue","src/components/newtab/workflow/edit/Trigger/TriggerInterval.vue","src/components/newtab/workflow/edit/Trigger/TriggerKeyboardShortcut.vue","src/components/newtab/workflow/edit/Trigger/TriggerSpecificDay.vue","src/components/newtab/workflow/edit/Trigger/TriggerVisitWeb.vue","src/components/newtab/workflow/edit/TriggerEvent/TriggerEventInput.vue","src/components/newtab/workflow/edit/TriggerEvent/TriggerEventKeyboard.vue","src/components/newtab/workflow/edit/TriggerEvent/TriggerEventMouse.vue","src/components/newtab/workflow/edit/TriggerEvent/TriggerEventTouch.vue","src/components/newtab/workflow/edit/TriggerEvent/TriggerEventWheel.vue","src/components/newtab/workflow/editor/EditorAddPackage.vue","src/components/newtab/workflow/editor/EditorCustomEdge.vue","src/components/newtab/workflow/editor/EditorDebugging.vue","src/components/newtab/workflow/editor/EditorLocalActions.vue","src/components/newtab/workflow/editor/EditorLocalCtxMenu.vue","src/components/newtab/workflow/editor/EditorLocalSavedBlocks.vue","src/components/newtab/workflow/editor/EditorLogs.vue","src/components/newtab/workflow/editor/EditorPkgActions.vue","src/components/newtab/workflow/editor/EditorSearchBlocks.vue","src/components/newtab/workflow/editor/EditorUsedCredentials.vue","src/components/newtab/workflow/settings/SettingsBlocks.vue","src/components/newtab/workflow/settings/SettingsEvents.vue","src/components/newtab/workflow/settings/SettingsGeneral.vue","src/components/newtab/workflow/settings/SettingsTable.vue","src/components/newtab/workflow/settings/event/EventCodeAction.vue","src/components/newtab/workflow/settings/event/EventCodeHTTP.vue","src/components/newtab/workflows/WorkflowsFolder.vue","src/components/newtab/workflows/WorkflowsHosted.vue","src/components/newtab/workflows/WorkflowsLocal.vue","src/components/newtab/workflows/WorkflowsLocalCard.vue","src/components/newtab/workflows/WorkflowsShared.vue","src/components/newtab/workflows/WorkflowsUserTeam.vue","src/components/popup/home/HomeSelectBlock.vue","src/components/popup/home/HomeStartRecording.vue","src/components/popup/home/HomeTeamWorkflows.vue","src/components/popup/home/HomeWorkflowCard.vue","src/components/transitions/TransitionExpand.vue","src/components/transitions/TransitionSlide.vue","src/components/ui/UiAutocomplete.vue","src/components/ui/UiButton.vue","src/components/ui/UiCard.vue","src/components/ui/UiCheckbox.vue","src/components/ui/UiDialog.vue","src/components/ui/UiExpand.vue","src/components/ui/UiFileInput.vue","src/components/ui/UiImg.vue","src/components/ui/UiInput.vue","src/components/ui/UiList.vue","src/components/ui/UiListItem.vue","src/components/ui/UiModal.vue","src/components/ui/UiPaginatedSelect.vue","src/components/ui/UiPagination.vue","src/components/ui/UiPopover.vue","src/components/ui/UiRadio.vue","src/components/ui/UiSelect.vue","src/components/ui/UiSpinner.vue","src/components/ui/UiSwitch.vue","src/components/ui/UiTab.vue","src/components/ui/UiTabPanel.vue","src/components/ui/UiTabPanels.vue","src/components/ui/UiTable.vue","src/components/ui/UiTabs.vue","src/components/ui/UiTextarea.vue","src/composable/blockValidation.js","src/composable/commandManager.js","src/composable/componentId.js","src/composable/dialog.js","src/composable/editorBlock.js","src/composable/groupTooltip.js","src/composable/hasPermissions.js","src/composable/liveQuery.js","src/composable/shortcut.js","src/composable/theme.js","src/content/blocksHandler.js","src/content/blocksHandler/handlerAttributeValue.js","src/content/blocksHandler/handlerClipboard.js","src/content/blocksHandler/handlerConditions.js","src/content/blocksHandler/handlerCreateElement.js","src/content/blocksHandler/handlerElementExists.js","src/content/blocksHandler/handlerElementScroll.js","src/content/blocksHandler/handlerEventClick.js","src/content/blocksHandler/handlerForms.js","src/content/blocksHandler/handlerGetText.js","src/content/blocksHandler/handlerHoverElement.js","src/content/blocksHandler/handlerJavascriptCode.js","src/content/blocksHandler/handlerLink.js","src/content/blocksHandler/handlerLoopData.js","src/content/blocksHandler/handlerLoopElements.js","src/content/blocksHandler/handlerPressKey.js","src/content/blocksHandler/handlerSaveAssets.js","src/content/blocksHandler/handlerSwitchTo.js","src/content/blocksHandler/handlerTakeScreenshot.js","src/content/blocksHandler/handlerTriggerEvent.js","src/content/blocksHandler/handlerUploadFile.js","src/content/blocksHandler/handlerVerifySelector.js","src/content/commandPalette/App.vue","src/content/commandPalette/compsUi.js","src/content/commandPalette/icons.js","src/content/commandPalette/index.js","src/content/commandPalette/main.js","src/content/elementObserver.js","src/content/elementSelector/App.vue","src/content/elementSelector/compsUi.js","src/content/elementSelector/generateElementsSelector.js","src/content/elementSelector/getSelectorOptions.js","src/content/elementSelector/icons.js","src/content/elementSelector/index.js","src/content/elementSelector/listSelector.js","src/content/elementSelector/main.js","src/content/elementSelector/selectorFrameContext.js","src/content/elementSelector/vueI18n.js","src/content/handleSelector.js","src/content/index.js","src/content/injectAppStyles.js","src/content/services/recordWorkflow/App.vue","src/content/services/recordWorkflow/addBlock.js","src/content/services/recordWorkflow/icons.js","src/content/services/recordWorkflow/index.js","src/content/services/recordWorkflow/main.js","src/content/services/recordWorkflow/recordEvents.js","src/content/services/shortcutListener.js","src/content/services/webService.js","src/content/showExecutedBlock.js","src/content/synchronizedLock.js","src/content/utils.js","src/db/logs.js","src/db/storage.js","src/directives/VAutofocus.js","src/directives/VClosePopover.js","src/directives/VTooltip.js","src/execute/index.html","src/execute/index.js","src/lib/compsUi.js","src/lib/cronstrue.js","src/lib/dayjs.js","src/lib/findSelector.js","src/lib/mitt.js","src/lib/pinia.js","src/lib/query-selector-shadow-dom/index.js","src/lib/query-selector-shadow-dom/normalize.js","src/lib/tippy.js","src/lib/tmpl.js","src/lib/vRemixicon.js","src/lib/vue-toastification.js","src/lib/vueI18n.js","src/locales/en/blocks.json","src/locales/en/common.json","src/locales/en/newtab.json","src/locales/en/popup.json","src/locales/es/blocks.json","src/locales/es/common.json","src/locales/es/newtab.json","src/locales/es/popup.json","src/locales/fr/blocks.json","src/locales/fr/common.json","src/locales/fr/newtab.json","src/locales/fr/popup.json","src/locales/it/blocks.json","src/locales/it/common.json","src/locales/it/newtab.json","src/locales/it/popup.json","src/locales/pt-BR/blocks.json","src/locales/pt-BR/common.json","src/locales/pt-BR/newtab.json","src/locales/pt-BR/popup.json","src/locales/tr/blocks.json","src/locales/tr/common.json","src/locales/tr/newtab.json","src/locales/tr/popup.json","src/locales/uk/blocks.json","src/locales/uk/common.json","src/locales/uk/newtab.json","src/locales/uk/popup.json","src/locales/vi/blocks.json","src/locales/vi/common.json","src/locales/vi/newtab.json","src/locales/vi/popup.json","src/locales/zh-TW/blocks.json","src/locales/zh-TW/common.json","src/locales/zh-TW/newtab.json","src/locales/zh-TW/popup.json","src/locales/zh/blocks.json","src/locales/zh/common.json","src/locales/zh/newtab.json","src/locales/zh/popup.json","src/manifest.chrome.dev.json","src/manifest.chrome.json","src/manifest.firefox.json","src/newtab/App.vue","src/newtab/index.html","src/newtab/index.js","src/newtab/pages/Packages.vue","src/newtab/pages/Recording.vue","src/newtab/pages/ScheduledWorkflow.vue","src/newtab/pages/Settings.vue","src/newtab/pages/Storage.vue","src/newtab/pages/Welcome.vue","src/newtab/pages/Workflows.vue","src/newtab/pages/logs/[id].vue","src/newtab/pages/settings/SettingsAbout.vue","src/newtab/pages/settings/SettingsBackup.vue","src/newtab/pages/settings/SettingsEditor.vue","src/newtab/pages/settings/SettingsIndex.vue","src/newtab/pages/settings/SettingsProfile.vue","src/newtab/pages/settings/SettingsShortcuts.vue","src/newtab/pages/storage/Tables.vue","src/newtab/pages/workflows/Host.vue","src/newtab/pages/workflows/Shared.vue","src/newtab/pages/workflows/[id].vue","src/newtab/pages/workflows/index.vue","src/newtab/router.js","src/newtab/utils/RecordWorkflowUtils.js","src/newtab/utils/blocksValidation.js","src/newtab/utils/elementSelector.js"],"storefront":"/r/AutomaApp","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/AutomaApp/automa/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}