Have you ever felt bored typing long and tedious words or sentences every time you want to reply to a chat or create a post on reddit? This addon is for you, it helps you type fast in a very customizable way in the browser.
You can create shortcuts for words, sentences or emoji and then type them in the browser and write really fast. For instance: you can transform the phrase "I'm coming" into a shortcut "imc" and every time you type "imc" you will get "I'm coming". Another one? You can transform "¯_[ツ]_/¯" into "shrug" and then you will never mess up with the characters ever again.
All you have to do is to enter in the configuration page (click in the icon) and create a unique style of writing to you and then, save it and that is it.
Good Luck, Have fun (typed: glhf)
Well, I'm lazy and I don't like to type too much, so I want to be able to type fast in Firefox and all the websites that I use.
After you install the addon, it will add a new icon to the top bar. Click on it and you will be taken to the "configuration page" (I'll improve that, I hope, I'm not very good at design). Then, click on the "+" (plus) icon and it will create a new row in the list. In the "Replace" column you put the shortcut for your boring word, sentence or emoji, and in the "With" column you put the real word/sentence/emoji, then click Save. That's it — now go to google and test it, then add more shortcuts.
This is for advanced users or for those who exported the list from another installation (if you exported the list, you don't have to change a thing — just import it, you can skip the rest). For those who don't want to add shortcuts one by one, you can create a JSON file following this example with your words and just import it and save it. See the JSON format section below for the full schema.
The import and export use the same JSON shape: a single array of objects, where each object describes one shortcut.
[
{
"replace": "imc",
"with": "I'm coming"
},
{
"replace": "multiliness",
"with": "First Line\nSecond Line\n"
}
]Fields:
| Key | Type | Required | Description |
|---|---|---|---|
replace |
string | yes | The shortcut you type. Must not contain spaces (a space/enter is what triggers the replacement). |
with |
string | yes | The text the shortcut expands into. Use \n for line breaks; any other character (including emoji and non-Latin text) is allowed. |
Notes:
- The file must be valid JSON (UTF-8, no trailing commas).
- Entries with an empty
replaceorwithare skipped on import. - Importing adds rows to the existing list — it does not replace it. Remember to click Save afterwards.
- Duplicate
replacekeys: the last one wins after you save.
For now, I'm only focusing on Firefox + webext. But it would be cool to port it to other browsers — that's a good idea.
If you are using an Electron-based app like Ferdium you cannot install browser extensions inside its service webviews. Instead, use the standalone userscript:
- Run the build (see Development) to produce
textfast.user.js. - In Ferdium, open the service you want (WhatsApp, Messenger, etc.) → Settings → Custom JS.
- Paste the entire contents of
textfast.user.jsand save. - Reload the service, then press Alt+Shift+T inside it to open the shortcuts panel.
Shortcuts are stored in that service's localStorage. Use the Export JSON / Import JSON buttons in the panel to copy your list across services.
The same file also works as a Tampermonkey / Violentmonkey userscript — install it directly from the textfast.user.js file.
The repository source lives in src/. The files at the root that the extension and userscript use are generated by the build — do not edit them directly.
| Generated file | Source |
|---|---|
text-replacer.js |
src/content-script.js + src/core.js |
textfast.user.js |
src/userscript.js + src/core.js |
All shared logic (text replacement engine, keyboard handler, element detection) lives in src/core.js. Platform-specific wiring (extension storage, userscript storage, settings panel) lives in the respective entry point.
npm installnpm run build # single build
npm run watch # rebuild on every src/ change
make build # build + package the .xpi
make run # build + lint + run in Firefox- Support dynamic inputs;
- Support non-usual way to enter a text;
- Improve the UI of the list;
- Use a better icon;
- Sync your list with all your browsers;
- Change the name (maybe).
Well, see the TODO list and talk to me, I'm open for new ideas.
