Skip to content

Latest commit

 

History

989 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FluentTyper logo

FluentTyper

Type less, do more. FluentTyper brings smart autocomplete, spell checking, and text expansion to text inputs across the web.

CI (lint, unit, e2e) CodeQL License: MIT Buy Me a Coffee

Quick Links

Why FluentTyper

FluentTyper helps you write faster and with fewer mistakes:

  • Predictive autocomplete while typing
  • Local prediction with libPresage (autocomplete never uses an AI model in store builds)
  • Spelling suggestions
  • Offline measurement-unit spacing in verified prose contexts
  • Offline Review text: proofread a field you already wrote, with categorized highlights, one-click fixes and "Fix all safe" (Alt+Shift+R)
  • Optional Local AI in Review (Chrome and Edge): an on-device model adds context-aware corrections and, only when you ask, rewrites in a style you pick. It downloads once after you set it up, then runs offline; your text never leaves the device
  • 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.

Supported Languages

  • English
  • Spanish
  • French
  • Croatian
  • Greek
  • Swedish
  • Polish
  • German
  • Brazilian Portuguese
  • Arabic

Installation

Quick Start

  1. Install FluentTyper from your browser store.
  2. Click any regular text input field on a website.
  3. Start typing to see suggestions.
  4. Use arrow keys to choose a suggestion.
  5. Press Tab to accept, or Esc to dismiss.
  6. To proofread text you already wrote, press Alt+Shift+R, click the Review button in the corner of the text box, or choose Review text in the popup.

Site Profiles and Precedence

FluentTyper applies configuration in this order:

  1. Global enable switch (Enable Extension) must be on.
  2. Domain allow/block mode decides if FluentTyper runs on the current site.
  3. 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.

Compatibility

FluentTyper works on most websites, including Google Docs.

Google Docs support activates on any document edit page when FluentTyper is enabled for docs.google.com. Suggestions are applied through a single synthetic plain-text paste into the editor, and the edit is verified against the document model before local learning records it. See docs/google-docs-integration.md for details and limits. Other canvas-based rich text editors can still be partially or fully incompatible.

If you hit an unsupported site, please open a bug report so compatibility can be improved.

Local AI (Transformers.js)

  • Autocomplete is Presage-only in every build (Chrome, Firefox, Edge); no model runs while you type.
  • Review can use an optional on-device model on Chrome and Edge (WebGPU), set up explicitly under Settings → Grammar → Local AI. It runs in the extension's own background service worker, never in the page. Firefox keeps the rule-based Review. See docs/review-mode.md and the design note docs/local-ai-review.md.

Privacy

FluentTyper is privacy-first:

  • No upload of your typed content
  • Works offline
  • Predictions are generated locally on your computer
  • Review text checks the field in the page itself; the reviewed text is never uploaded, logged or stored
  • Local AI in Review runs on your device. Setting it up downloads model files once from Hugging Face (which sees ordinary connection data such as your IP address and which files are requested, never your text); after that it works offline. Prompts, reviewed text and results are kept in memory only while a review is open

Development Setup

FluentTyper uses Bun as the primary package manager and script runner.

Prerequisites

  • Bun 1.4.2 (pinned in packageManager)

Install and Build

bun install
bun run build
bun run build --platform=firefox

Quality Checks

bun run check          # lint + format + typecheck
bun run lint           # Oxlint with TypeScript-aware rules
bun run typecheck      # TypeScript 7 only
bun run format:check   # Prettier only

Testing

bun test               # unit tests
bun run test:e2e       # e2e smoke (Chrome)
bun run test:e2e:full  # full regression (Chrome + Firefox)

Development Watch

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.

Architecture

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 Oxlint no-restricted-imports rules. See docs/agents/architecture.md for details.

Bug Reporting

Please report bugs through GitHub Issues using the bug template:

To speed up triage, include:

  • Steps to reproduce
  • Expected behavior
  • Actual behavior
  • Browser and FluentTyper version
  • Screenshots or recordings when possible

Feature Requests

Use the feature request form to propose improvements:

Good feature requests include:

  • The problem you want to solve
  • The proposed solution
  • Alternatives you considered
  • Browser context and examples or mockups

Security

If you discovered a security vulnerability, follow SECURITY.md and avoid opening a public issue.

Contributing

Development and contribution guidelines are in CONTRIBUTING.md.

Sponsorship and Support

If FluentTyper saves you time, you can support maintenance and future development:

Buy Me a Coffee

License

MIT - Copyright (c) 2026 Bartosz Tomczyk

About

FluentTyper auto completes while you typing. FluentTyper attempts to improve the ease and speed of textual input by predicting words.

Topics

Resources

Contributing

Security policy

Stars

58 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages