Type less, do more. FluentTyper brings smart autocomplete, spell checking, and text expansion to text inputs across the web.
- Install: Chrome, Firefox, Edge
- Report a bug: GitHub issue form
- Request a feature: Feature request form
- Contributing: CONTRIBUTING.md
- Security policy: SECURITY.md
- Sponsor development: Buy Me a Coffee
FluentTyper helps you write faster and with fewer mistakes:
- Predictive autocomplete while typing
- Local prediction with libPresage (WebLLM path is currently dev/debug-only)
- Spelling suggestions
- Text expansion snippets for repeated phrases
- Keyboard-first suggestion selection with arrow keys and
Tab
Example: type callMe and expand it to Call me back once you're free.
- English
- Spanish
- French
- Croatian
- Greek
- Swedish
- Polish
- German
- Brazilian Portuguese
- Install FluentTyper from your browser store.
- Click any regular text input field on a website.
- Start typing to see suggestions.
- Use arrow keys to choose a suggestion.
- Press
Tabto accept, orEscto dismiss.
FluentTyper applies configuration in this order:
- Global enable switch (
Enable Extension) must be on. - Domain allow/block mode decides if FluentTyper runs on the current site.
- If a site profile exists for the current domain, it overrides config values:
language: always overridden by the profile value.inline_suggestion: overridden only when set in the profile; otherwise inherited from global.numSuggestions: overridden only when set in the profile; otherwise inherited from global.
Site profiles never bypass domain enable/disable logic. If a domain is blocked by allow/block mode, FluentTyper remains disabled there even if a profile exists.
FluentTyper works on most websites. Some rich text editors (for example Google Docs) can be partially or fully incompatible.
If you hit an unsupported site, please open a bug report so compatibility can be improved.
WebLLM is currently available only in development/debug builds.
- Production store builds (Chrome, Firefox, Edge) currently run libPresage-only.
- The AI predictor toggle is not exposed to end users in production builds.
- In dev/debug builds, WebLLM can run in parallel with Presage and falls back automatically when unavailable.
- In dev/debug builds, first AI use downloads model artifacts once; subsequent runs use browser cache.
FluentTyper is privacy-first:
- No upload of your typed content
- Works offline
- Predictions are generated locally on your computer
- In dev/debug builds, when AI predictor is enabled, only model artifacts are downloaded; typed content stays local
FluentTyper uses Bun as the primary package manager and script runner.
- Bun
1.3.10(pinned inpackageManager)
bun install
bun run build
bun run build --platform=firefoxbun run check # lint + format + typecheck
bun run lint # ESLint only
bun run typecheck # TypeScript only
bun run format:check # Prettier onlybun test # unit tests
bun run test:e2e # e2e smoke (Chrome)
bun run test:e2e:full # full regression (Chrome + Firefox)bun run watch # rebuilds on file changes (dev mode)Migration note: bun.lock is the source of truth for reproducible installs. npm/pnpm are no longer required for normal development workflows.
FluentTyper follows a strict layered clean architecture:
src/
core/
domain/ # Pure business logic, contracts, types
application/ # Use-case orchestration, repositories
adapters/
chrome/
background/ # Service worker, prediction engines
content-script/ # DOM interaction, suggestion UI
ui/
options/ # Settings pages
popup/ # Extension popup
onboarding/ # First-run experience
Layer boundaries are enforced by ESLint no-restricted-imports rules. See docs/agents/architecture.md for details.
Please report bugs through GitHub Issues using the bug template:
- Issue chooser: github.com/bartekplus/FluentTyper/issues/new/choose
- Direct bug report form: bug_report.yml
To speed up triage, include:
- Steps to reproduce
- Expected behavior
- Actual behavior
- Browser and FluentTyper version
- Screenshots or recordings when possible
Use the feature request form to propose improvements:
- Issue chooser: github.com/bartekplus/FluentTyper/issues/new/choose
- Direct feature form: feature_request.yml
Good feature requests include:
- The problem you want to solve
- The proposed solution
- Alternatives you considered
- Browser context and examples or mockups
If you discovered a security vulnerability, follow SECURITY.md and avoid opening a public issue.
Development and contribution guidelines are in CONTRIBUTING.md.
If FluentTyper saves you time, you can support maintenance and future development:
MIT - Copyright (c) 2026 Bartosz Tomczyk