# active-forks: a maintainer wanted, a bookmarklet with a stray plus, and two licences at the root

> active-forks answers one question: given a repository, which of its forks still have people in them. It ships as a static page, a Manifest V3 extension for three browsers, and a bookmarklet, and the three paths all end at the same hosted page. The file asking for a new maintainer and the last commit twelve days apart are both facts in the repository, not a contradiction to resolve.

**techgaun/active-forks** — Find active github forks of a repo https://git.io/vSnrC

- Repository: https://github.com/techgaun/active-forks
- Website: https://techgaun.github.io/active-forks/index.html
- Stars: 2,430 · Forks: 320
- Language: JavaScript
- License: Apache-2.0
- Published: 2026-09-28 · Updated: 2026-09-28 · Language: en
- Canonical page: https://hysenlabs.com/projects/techgaun-active-forks

## The file asks for a maintainer, and the last commit is twelve days old

The first italic line under the title is a note in block capitals looking for maintainers. Underneath, in the first person, the author explains that while he wants to spend time on the project, changes in life generally have cut into it, and asks anyone interested in taking over to file an issue. That is an unusual thing to find in the primary file of a tool, and it changes how the rest should be read. The repository itself is not archived and the last push is dated 2026-09-22, twelve days before this snapshot. So the two statements sit next to each other: an explicit request for a successor, and a commit inside the last two weeks. Nothing in the file says who made that commit, whether it was the author, or whether the search for a maintainer has moved.

## Three delivery paths, all of them ending at one hosted page

There are three ways in, and only one of them is the project itself. The first is the hosted page at `https://techgaun.github.io/active-forks/index.html`, linked directly from the file. The second is a browser extension published on the Chrome Web Store for Chrome and other Chromium-based browsers, with source in the `extension/` directory. The third is a bookmarklet you assemble yourself, because the file notes that GitHub does not allow javascript in its markdown and the code has to be added by hand. All three converge on the same place. The bookmarklet hardcodes the hosted address, and the extension's context menu item is described as opening the full view directly. If the GitHub Pages deployment goes away, all three paths stop working at once, which is worth knowing before you make any of them a habit.

## The bookmarklet tests the hostname with github.com followed by a plus

The bookmarklet is one line, and the whole tool is in the first condition:

```javascript
javascript:(function(){if(window.location.hostname.match(/github.com+/)){var%20a=window.location.pathname.split('/',3);if(a.length==3){var%20b=encodeURIComponent(a[1]+'/'+a[2]);window.open('https://techgaun.github.io/active-forks/index.html#'+b,'_blank','noreferrer,noopener');return}}window.alert('Not%20a%20valid%20GitHub%20page')})();
```

In that regular expression the plus is a quantifier on the final m, so `github.com+` means github.co followed by one or more m characters, and the pattern is never anchored to the start or end of the hostname. It matches github.com, and it also matches anything else that contains that run of letters, including a host such as github.community or a longer name that merely includes it. The second check, `a.length==3` after splitting the pathname into three pieces, is the one that actually does the deciding, so the effect is a wider net on the first gate and a correct result on the second.

## The bookmarklet as printed still carries percent-encoded spaces

Look at the variables in that same line. They are `var%20a` and `var%20b`, and the alert text reads `Not%20a%20valid%20GitHub%20page`. Percent-encoded spaces are what a javascript URL looks like after it has passed through a browser address bar, and they are not valid javascript source. The file acknowledges the round trip in a different way, telling you that GitHub will not accept javascript in markdown and that the code must be added manually, then instructing you to press `Ctrl+D` and paste the text into the URL or Location entry, noting that you may have to click More to see the URL field. Nothing in those steps says to decode the percent sequences first. Whether a given browser decodes them on paste is exactly the kind of thing this file leaves to you, and getting it wrong means the bookmarklet is inert rather than broken, since it produces no output at all.

## The extension asks for two permissions and names one host

The permission story is stated in one line and it is a short one: the extension needs only the `activeTab` and `contextMenus` permissions and talks solely to `api.github.com`. That is a narrower grant than most extensions take, since it asks for no host permissions and no storage, and the only network destination named is the GitHub API. Two things the file does not mention are worth noticing by their absence rather than invented: there is no personal access token, no OAuth flow and no account step anywhere in the text, and there is no statement about what happens when that API declines to answer. It also does not say whether the same code path serves the three browsers it targets, Chrome, Edge and Firefox, beyond describing the directory as cross-browser on Manifest V3.

## A popup shows ten forks; the context menu skips the popup entirely

The two entry points into the extension do different amounts of work. The toolbar button works on any GitHub repository page and opens a popup that previews the repository's top 10 forks, sortable by stars or by creation date, with a link out to the full view. The context menu entry is described as working by right-clicking a GitHub repository page, or on any link to a GitHub repository, and choosing Find active forks to open the full view directly. So one path gives you a ranked preview you can sort before leaving the page, and the other skips the preview entirely and lands on the hosted page with the repository already encoded in the fragment. The number ten is the only quantity the file gives, and it applies to the popup, not to the full view.

## Apache-2.0 in the metadata, Apache-2.0 or EUPL-1.2 in the file

The licence attached to the repository is a single one, Apache-2.0. The licensing section of the file records two, offering the repository under either the Apache License version 2.0 or, at your option, the European Union Public License version 1.2, and printing the matching identifier as `SPDX-License-Identifier: Apache-2.0 OR EUPL-1.2`. The root holds both texts, as `LICENSE` and `LICENSE-ALT`, so the two files are not a mistake. The practical point for anyone shipping this in a product is that the choice is the downstream user's to make, and the identifier string is the correct thing to copy into a notice if you vendor the code. Anyone reading only the licence badge on the repository will see one of the two and will not see that a second option exists.

## A changelog at the root and no releases to attach it to

The root of the repository holds thirteen entries and none of them is a package manifest. There is `.github/`, `.prettierrc`, `CHANGELOG.md`, the two licence files, `README.md`, the `extension/` directory, `favicon.ico`, `index.html`, `js/`, `screenshot.png`, `store-assets/` and `style.css`. The web page is therefore a plain static trio of `index.html`, `js/` and `style.css` with an icon, and no build step appears anywhere in that list. At the same time `CHANGELOG.md` sits at the root while the repository has no GitHub releases at all, and the file points at `extension/PUBLISHING.md` for how store releases are automated. So the extension ships itself, the hosted page has a change record nobody can match to a tag, and a user pinning a version has no version to pin.

## Conclusion

Use active-forks when you have inherited a dependency and need to know which fork still has people behind it; it answers that question quickly and the extension asks for as little as a browser extension can. Before you adopt the bookmarklet, check the hostname test in it, since the pattern it uses is looser than it looks, and keep the hosted page in mind as a single point of failure for all three delivery paths. Read the licence as a choice rather than a default: two files sit at the root and the SPDX line offers Apache-2.0 or EUPL-1.2. And if you are the kind of maintainer this file is looking for, the ask is explicit and unanswered in the repository as it stands.

## FAQ

### How do I use active-forks in a browser?

There are three routes: the hosted page at techgaun.github.io, the extension published on the Chrome Web Store for Chrome and other Chromium-based browsers, or a bookmarklet you paste into a bookmark yourself. All three end at the hosted page.

### What permissions does the active-forks extension ask for?

Only the `activeTab` and `contextMenus` permissions, and it talks solely to `api.github.com`. No personal access token, OAuth flow or account step is mentioned anywhere in the file.

### How do I install the active-forks extension from source?

On Chrome or Edge, open `chrome://extensions`, enable Developer mode, click Load unpacked and select the `extension/` directory. On Firefox, open `about:debugging#/runtime/this-firefox`, click Load Temporary Add-on and select `extension/manifest.json`.

### How many forks does the active-forks popup show?

The toolbar button opens a popup previewing the repository's top 10 forks, sortable by stars or by creation date, with a link to the full view. The context menu item skips the preview and opens the full view directly.

### Which licence applies to active-forks?

Either the Apache License version 2.0 or, at your option, the European Union Public License version 1.2, with the identifier `SPDX-License-Identifier: Apache-2.0 OR EUPL-1.2`. Both texts sit at the root, as `LICENSE` and `LICENSE-ALT`.

### Is active-forks looking for a new maintainer?

Yes. A note at the top of the file asks for maintainers and invites anyone willing to take over to file an issue. The repository is not archived and the last push is dated 2026-09-22, and it has no GitHub releases.

## Sources

- [Issues](https://github.com/techgaun/active-forks/issues)
- [License: Apache-2.0](https://github.com/techgaun/active-forks/blob/main/LICENSE)
- [Project website](https://techgaun.github.io/active-forks/index.html)
- [README](https://github.com/techgaun/active-forks/blob/main/README.md)
- [techgaun/active-forks on GitHub](https://github.com/techgaun/active-forks)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/techgaun-active-forks
