Cotabby logo
Cotabby

Compatibility reference

where Cotabby autocomplete works on macOS

Cotabby works through the macOS accessibility system rather than an extension for each app. Standard text fields are the most reliable; custom web editors can expose different behavior.

By Jacob Fu · Updated · 8 minute read

compatibility at a glance

App typeExamplesStatusExpected behavior
Native macOS appsMail, Notes, Messages, TextEditBest supportedStandard AppKit and SwiftUI fields usually expose text and caret geometry directly.
BrowsersSafari, Chrome, Arc, FirefoxVaries by websiteNormal inputs work most reliably; rich-text and canvas editors can expose less geometry.
Electron appsSlack, Discord, Notion, Linear, ObsidianGenerally supportedWorks when the embedded editor exposes its text and selection through macOS Accessibility.
Office and emailOutlook, Gmail, Google DocsEditor-dependentNative and standard browser fields work; document canvases and custom editors can vary.
Code editorsVS Code, CursorSurface-dependentEditor and chat fields can suggest; integrated terminals are off by default.
Secure inputPasswords, passcodes, card fieldsIntentionally excludedCotabby declines fields that macOS or its safety checks identify as sensitive.
Standalone terminalsTerminal, iTerm2, GhosttyIntentionally excludedShell completion and command shortcuts take priority over autocomplete.

Status describes field behavior in the public release, not certification of every version of each third-party app. Report exact app and editor versions when behavior differs.

inline text or a popup card

Cotabby's Automatic display mode uses inline ghost text when the app exposes reliable caret geometry. When geometry is estimated or unstable, a popup card near the field can be the safer presentation.

A popup therefore does not mean the field is unsupported. Open Settings → Appearance → Suggestion Display to compare Automatic, Inline, and Popup for a specific editor.

why apps behave differently

Native fields usually expose the current text, selection, and cursor position directly to macOS. Cotabby can use that data to request and position a suggestion.

Browsers and Electron apps add another layer. A standard HTML input or textarea generally maps cleanly to macOS accessibility. Rich-text editors may split a paragraph into many elements or manage the cursor in JavaScript, so available context and ghost-text placement can differ from site to site.

if suggestions do not appear

  • Confirm Cotabby is enabled globally and the current app is not disabled.
  • Check Accessibility and Input Monitoring under System Settings, then Privacy & Security.
  • Place the cursor in a normal editable field and type a complete phrase.
  • Quit and reopen the affected app after granting permissions.
  • Test Notes or TextEdit to separate an app-specific issue from a global setup issue.
  • Verify the selected model has completed downloading and is running.

intentional exclusions

Cotabby does not activate in password fields. It also stays out of terminals, where intercepting Tab or backtick would conflict with command-line behavior and shell completion.

Individual applications can be disabled from Cotabby Settings. This is useful for editors with specialized keyboard behavior or for apps where you simply do not want automatic suggestions.

VS Code and Cursor integrated terminals have a separate opt-in setting. Keeping them off does not disable normal editor or chat fields in the same application.

report a compatibility issue

A useful report includes the app name and version, macOS version, Cotabby version, editor or website, selected model engine, and the smallest sequence that reproduces the problem. Do not include private writing or screenshots containing sensitive text.

Submit a report through Cotabby feedback or open a public issue in the GitHub repository. For data-flow questions, read the security page.

For symptom-by-symptom checks, use the Cotabby troubleshooting guide.

try Cotabby on your Mac

Free, open source, and local. Use Apple Intelligence or a GGUF model, then accept the next word with Tab.

View source