Building and testing extensions
Acira runs Chrome extensions built for Manifest V3, and it can load an extension you are building straight from a folder. It supports a subset of Chrome's extension APIs, so check your extension in Acira before you tell people it works.
Load an unpacked extension
- Put your extension in a folder that has a
manifest.jsonat its top level. - Open the extension list: the Extensions button on the toolbar, or Acira menu, More tools, Extensions. You can also use Settings › Extensions.
- In the toolbar panel, choose Developer tools: load an unpacked extension…, then Load from folder…. In Settings, open the Developer section and choose Load from folder….
- In the system dialog titled Load unpacked extension, pick your folder and click Choose extension folder.
- Acira shows a review window titled Load extension. It asks Add {name} to Acira?, names the profile, lists what the extension can access, and says it cannot open files on this PC. Choose Add extension, or Cancel to stop.
The extension appears in the list, turned on. If it has a toolbar button, open its row and choose Pin to toolbar.
How a loaded folder behaves
- Acira reads your folder in place. It does not copy it. If you move or delete the folder, the extension stops loading and its row shows the problem.
- Extensions are per profile. A folder you load is added to the profile of the window you used. A separate profile is a good place to try an extension, because its extensions, sign-ins and history stay apart from your everyday profile.
- It stays loaded after a restart. Acira remembers the folder and loads it again when it starts.
- Reload after you change files. Open the extension's row and choose Reload. A folder extension shows Reload where a store extension shows Check for update.
- New permissions need a review. If your manifest asks for more access than when you added it, the extension does not load on the next start. Its row says that it now requests additional access. Choose Reload to review the new access.
- No file access. An extension cannot open files on your computer.
- Errors show in the row. If the extension fails to load or run, the row shows the message.
Open an extension's row to find Turn off (or Turn on), Pin to toolbar, Reload, Remove and a collapsed What it can access list. See Extensions for the everyday use of these controls.
Debugging
- Console messages from a content script appear in the developer tools of the page it runs on. See Developer tools.
- Acira has no
chrome://extensionspage and does not openchrome-extension:addresses from the address bar. An address that does not start withhttporhttpsis refused with a message. - Extension panels inside developer tools (
devtools.panels) do not appear. React Developer Tools, for example, does not show its Components and Profiler panels.
Install a packed extension
Acira installs packed extensions from the Chrome Web Store. It has no button to install a .crx file from your disk. To try a packed build, load its unpacked folder as above.
- Open an extension's page on the Chrome Web Store (an address that starts with
chromewebstore.google.com/detail/) in a regular window. A small bar labelled Add to Acira appears. The store's own Add to Chrome button stays disabled in Acira. - Or open the extension list and choose Add from a Web Store link…. Paste the link from
chromewebstore.google.com, or the extension's 32-letter ID, into the Chrome Web Store link field and choose Add. In Settings, the same field is Add from a link. - Review the access the extension asks for, then choose Add extension.
Acira downloads the package from the store, checks its signature, shows the review window and then loads it. An extension from the store shows Chrome Web Store as its source in Settings. Some known extensions carry a note: Tested: works, Tested: limited or Tested: does not work.
Manifest versions
| Version | Status in Acira |
|---|---|
| Manifest V3 | Supported. Service workers, scripting, declarativeNetRequest, offscreen and sidePanel work as listed below. |
| Manifest V2 | Not offered. Acira's folder loader accepts a manifest.json that declares version 2 or 3, but Chrome no longer supports Manifest V2, Acira has not verified that Manifest V2 extensions run, and it does not offer older-format extensions when you bring extensions in from another browser. Build new extensions as Manifest V3. |
Supported Chrome extension APIs
Acira's engine is Chromium 152. Acira implements part of the Chrome extension APIs itself, and the rest comes from the engine. In the table, Works means it behaves like Chrome for normal use, Mostly works means the common members work and some do not, Partly means it works with notable gaps, and Not available means the API is missing.
| Area | APIs | Status | Notes |
|---|---|---|---|
| Scripting and pages | scripting, dom, offscreen, userScripts | Works | Clicking the extension's toolbar button, using its keyboard command or choosing one of its menu items grants activeTab on that tab. There is one offscreen document per extension. userScripts needs the Allow user scripts switch turned on for that extension. It starts off. Turn it on for a userscript manager you trust, and for no other extension. |
| Timers and text | alarms, i18n | Works | |
| Messaging and lifecycle | runtime, extension, idle | Mostly works | runtime.onInstalled and runtime.onStartup are sent. onSuspend and onSuspendCanceled are never sent. setUninstallURL opens its address in a new tab when you remove the extension. idle reports active, idle or locked, with a default detection interval of 60 seconds that cannot go below 15. Native messaging works: Acira finds host manifests the way Chrome does, from the registry keys (Windows) or folders (Mac) of Chrome, Chromium, Edge and Brave, and from a NativeMessagingHosts folder in its own data folder. |
| Storage | storage | Mostly works | storage.local works. storage.sync is a separate area kept on this computer with Chrome's quotas: nothing syncs between devices. storage.managed is always empty and cannot be written. A storage.onChanged change reaches a service worker only while a page of that extension is open. |
| Tabs and windows | tabs, windows, sessions | Mostly works | tabs and windows read and change Acira's real tabs and windows. Private tabs, Tor tabs and tabs of a locked workspace are never listed. sessions.getRecentlyClosed and getDevices work. sessions.restore is refused with Acira does not let extensions reopen tabs. Use Reopen closed tab (Ctrl+Shift+T). |
| Toolbar button, side panel and menus | action, sidePanel, contextMenus, notifications, commands | Mostly works | Keyboard shortcuts that an extension declares appear in Settings › Shortcuts under Extensions, where you can change or clear them. sidePanel.open() from an extension page needs a user gesture, as in Chrome. |
| Blocking and requests | declarativeNetRequest, webRequest, webNavigation | Mostly works | declarativeNetRequest rules change real requests, and they run after Acira's own blocker. An extension's rules apply even when you turn Acira's blocking off for a site. Only http, https, ws and wss requests from tabs and from web pages' workers are matched, not Acira's own pages or other extensions' pages. regexFilter runs as a JavaScript regular expression: patterns that Chrome's RE2 engine refuses are refused, and a pattern that could backtrack without bound is left out. |
| Proxy and privacy settings | proxy, privacy | Partly | proxy.settings works, and the extension installed last holds it until it clears it, is turned off or is removed. Settings › Connection then shows Controlled by and the extension's name, and your own choice returns when the extension lets go. Tor windows are never touched. privacy.network and privacy.services work. privacy.websites answers Access to extension API denied. |
| Cookies, permissions and management | cookies, permissions, management | Mostly works | cookies reaches the profile's regular cookie store, on hosts the manifest has permission for. It never reaches private, Tor or locked-workspace cookies, and partitioned cookies are not supported. permissions keeps what you grant across restarts. management supports getAll, get, getSelf, setEnabled, uninstall and uninstallSelf. The other members answer Access to extension API denied. |
| Browser data | bookmarks, history, downloads, search | Partly | bookmarks and history are read-only: reads and searches work, and writes answer Acira lets extensions read bookmarks but not change them. or Acira lets extensions read history but not change it. history.onVisited and onVisitRemoved work. downloads goes through Acira's own download manager, and private, Tor and locked-workspace downloads are never visible. search.query opens a search in a new tab with your search engine. |
| Capture | tabCapture, desktopCapture | Mostly works | Capture opens Acira's Choose what to share picker, and a sharing pill shows while anything is shared. An offscreen document cannot capture a tab. pageCapture is not available. |
| Accounts | identity | Partly | identity.launchWebAuthFlow works in a small Acira sign-in window. getAuthToken fails the way Chrome does when no one is signed in, getProfileUserInfo returns an empty address and ID, and getAccounts returns an empty list, because Acira has no Google account sign-in. |
| System | system.cpu, system.memory, system.display, system.storage | Works | |
| Developer tools | devtools.panels | Not available | Extension panels in developer tools do not appear. |
| Not available | tabGroups, contentSettings, browsingData, readingList, pageCapture, omnibox, declarativeContent, debugger, gcm, instanceID, tts, ttsEngine, fontSettings, accessibilityFeatures, webAuthenticationProxy | Not available | Extensions that need these APIs cannot use them. |
Known gaps
- No syncing. Acira has no account and no cloud sync, so
storage.syncnever leaves your computer. - No Google account APIs.
identity.getAuthToken,getProfileUserInfoandgetAccountsdo not return an account. - No push messaging.
gcmandinstanceIDare not available. - No extension panels in developer tools. See above.
- Extensions are labelled from checks, not guesses. Of 26 popular extensions checked, 20 worked, 4 worked with limits and 2 did not. Tampermonkey, Violentmonkey, Grammarly and Google Docs Offline are in the limited group. React Developer Tools and Loom did not work. These counts describe the extensions that were checked, not extensions in general.
Where extensions are off
| Place | Extensions |
|---|---|
| Private windows and private tabs | Off unless you turn on Allow in private tabs for an extension in a regular window. A private window says Extensions run in private windows only if you allow them. Open a regular window to manage them. See Private tabs and windows. |
| Tor tabs and windows | Off. See Tor tabs and windows. |
| Locked workspaces (beta) | Off. The list says Extensions don’t run in a secured workspace. They work in your other workspaces. Enabled extensions show as Unavailable here. See Locked workspaces. |
| Your new tab page | An extension can replace Acira's new tab page when you turn on Use as New Tab page for it. The switch starts off. Private and Tor windows keep Acira's page. See New tab page. |
For every control in the Extensions section of Settings, see All settings.
Last updated November 7, 2026