QUILL User Guide
Introduction
Welcome, and thank you for giving QUILL a try.
QUILL is a writing studio for Windows and macOS, made for people who use a screen reader. I am blind, I use one every day, and I wanted an editor that was built around the keyboard and the ear from the very first line. QUILL is what came of that. You can write in it, of course. You can also open almost any document, have it read to you, dictate into it, check its spelling, compare two drafts, tidy up a scanned PDF, turn a manuscript into an audiobook, and a good deal more, all without reaching for the mouse.
The name stands for Quality, Usable, Inclusive, Lightweight, Literate. QUILL is free, and it is made by Community Access.
This guide is written for QUILL 1.0.0. QUILL 1.0 is not out yet, so now and then the guide may describe something your copy does not have. QUILL is still in beta, which means you will find rough edges and the odd surprise. If something confuses you or does not work, please tell us. Chapter 15 shows you how, and every report makes QUILL better for the next person.
What you will be able to do
By the time you have read this guide you will be able to open, write and save documents in all the common formats, and move around a long document by heading, paragraph or bookmark. You will know how to search and replace, check your spelling, format text, and have QUILL read your work back to you. You will be able to dictate, transcribe a recording, and, if you want it, ask the AI for help with a piece of writing. You will have QUILL set up to say as much or as little as you like, with your own keys and your own choice of features. And when something puzzles you, you will know where to find help.
None of this needs to happen on day one. Chapter 1 gets you writing in a few minutes. Everything after that is there for when you are curious.
How this guide is laid out
The chapters follow the order you are likely to want things. Read from the beginning if you are new to QUILL, or jump to the chapter for the job in front of you.
- Chapter 1: Your first session. A short, hand-held start: write something, save it, and learn the handful of keys that do most of the work.
- Chapter 2: Finding your way around. The window, the status bar, F1 help, the Command Palette, the QUILL key, and a tour of the menus.
- Chapter 3: Opening, saving and converting files. Every format QUILL reads and writes, converting between them, and files on other computers and on GitHub.
- Chapter 4: Writing and editing. Selecting, copying, the Copy Tray, inserting dates, symbols and emoji, abbreviations, and links.
- Chapter 5: Formatting, structure and markup. Headings, lists, tables, Markdown and HTML, maths and citations.
- Chapter 6: Moving around and finding things. Find and replace, jumping by heading, bookmarks and marks, Quick Nav mode, and Quill Eraser.
- Chapter 7: Spelling and words. Spell checking, the thesaurus, the dictionary and document statistics.
- Chapter 8: Reading, reviewing and listening. Read Aloud, Reveal Codes, comparing documents, OCR, audiobooks and keeping your place.
- Chapter 9: Dictation and transcription. Speaking into a document and turning recordings into text, on your own computer.
- Chapter 10: AI, when you want it. The free AI, your own keys, the assistant, and exactly what is sent where.
- Chapter 11: Accessibility, speech and braille. How much QUILL says, low-vision settings, sounds, braille files and GLOW.
- Chapter 12: Making QUILL yours. Feature profiles, keyboard packs, your own keys, Quillins and languages.
- Chapter 13: Keeping your work safe. Autosave, recovery, restore points, sessions and safe mode.
- Chapter 14: Projects, notes and the QuillVille family. Story Studio, the Vault, sticky notes, Git, Mastodon, and the apps that live alongside QUILL.
- Chapter 15: Help, updates and support. F1, tutorials, updates, release channels and getting help from a person.
After the chapters come the appendices: the Developer Console, writing your own AI skills, the full list of emoji QUILL can insert, notes from earlier versions, and the Developer Console’s design document. Last of all are the Glossary of QUILL Terms and Getting help.
QUILL also has guided tutorials, short lessons you do with QUILL open
in front of you, on Help > Tutorials…
(Ctrl+Alt+F1). Whenever a lesson covers the same ground as
part of this guide, the chapter gives you its name, so you can choose
between reading about something and being walked through it. If you
would rather learn by listening, QUILL,
Step by Step is a slower companion book written to be read aloud,
one skill per chapter.
Now and then a short note from QUILLBee, QUILLVille’s guide, is set apart as a quote: a faster key, a word explained, or something worth knowing before it catches you out. QUILLBert, the curious porcupine, wanders in once or twice when he has found something. The guide reads perfectly well if you skip every one of them, and you can meet the pair properly on the Meet QUILLBert and QUILLBee page.
Reading this guide with a screen reader
The guide is built from headings so you can move through it quickly. Each chapter is a level 2 heading, and the main topics in a chapter are level 3 headings. When a topic has parts of its own, those parts sit one level deeper, at level 4, and sometimes at level 5. In JAWS or NVDA, press 2 to move from chapter to chapter, 3 to move between the main topics, and 4 to step through the parts of a topic. Shift with any of those numbers goes back. To see every heading at once, press Insert+F6 in JAWS or Insert+F7 in NVDA and choose headings.
The notes from QUILLBee and QUILLBert are block quotes. In a web browser, Q moves to the next one in JAWS and NVDA, and Shift+Q goes back, so they are as easy to skip as they are to find.
Every chapter ends with a short section called What you learned, and where to go next. If you are skimming, those are a quick way to hear what a chapter covers before you read it.
Keys are written the way QUILL writes them in its menus.
Ctrl+Shift+P means hold down Ctrl and Shift together and
press P. A menu path such as File > Save As… means
open the File menu and choose Save As. If you have changed a key in
QUILL, your key is the one that works; Help > Open Keyboard
Reference always lists the keys you have right now.
When a section walks you through something, the steps are numbered. Follow them with QUILL open beside the guide and you will learn faster than by reading alone. Alt+Tab moves you between the two.
You do not always need this guide to answer a question. Press
F1 on almost anything in QUILL, a field, a button, a menu
item or the editor itself, and QUILL tells you what it does and which
keys go with it.
Chapter 1: Your first session
This chapter is your first sit-down with QUILL, and I will stay with you the whole way. You will open QUILL, write a few lines, save them, and meet the handful of keys that do most of the work. If you have never used QUILL before, start here. If you have, skim the key list near the end and move on to Chapter 2.
Getting started
If you only have five minutes, do this.
- The first time QUILL starts, the Personalise QUILL wizard offers to set up your keyboard layout, your profile and any optional features you want. It takes about two minutes. Finish it, or close it and come back later from Help > Personalise QUILL… whenever you like.
- Press
Ctrl+Nto make a new document, orCtrl+Oto open one you already have. - Type a few lines.
- Press
Ctrl+Shift+Pto open the Command Palette. Typeguide,spell,compareorglow, and listen to how quickly QUILL finds what you meant. - Press
F6to move out of the editor and on towards the status bar along the bottom of the window. QUILL treats that strip as a place you can work, not just something to read.Shift+F6brings you back. - Try
F7for spell check,Ctrl+Fto search, orCtrl+Kto insert a link. - Press
F1on any control to hear what it does and which keys work there.
If you ever feel lost, F1 is the first thing to try. For
ideas about the document you have open, choose Help > What
Can I Do Here? (Ctrl+Alt+Shift+F1). Between them,
they are like having a friend at your elbow.
QUILLBee’s tip: Forgotten where something lives? Press
Ctrl+Shift+Pand type a word, like “sort” or “print”. The palette says each command’s key as you arrow past it, so you pick up the keys while you work.
What QUILL is like to use
A few promises shape everything in QUILL.
- The keyboard always comes first.
- Screen readers are part of the plan from the start, never an add-on.
- Every major action can be reached from the menus, from the Command Palette and through the command system.
- Your documents open on your computer and stay there, unless you choose an action that uses the network.
- QUILL tells you what changed, where you are and what you can do next.
In day-to-day use, that means QUILL pays a lot of attention to where your focus goes, gives you status updates that mean something, makes commands easy to discover, and uses the standard Windows controls your screen reader already knows. It also tries hard to take the worry out of things. Opening a recovered draft, comparing two files or checking how well text came out of a scanned document are all made to be safe and easy to undo.
A first proper session
Here is what your first real visit to QUILL is likely to look like.
You start QUILL. There is no splash screen to wait through. The window appears quickly, with a menu bar across the top, the editor in the middle and a status bar along the bottom. If QUILL finds a screen reader running, it adjusts its hints and the way it announces things to suit. If QUILL finds signs of an earlier crash, or work it saved automatically, it offers to recover it for you straight away.
From there, a good first session goes like this.
- Open a file with
Ctrl+O, or make a new one withCtrl+N. If you would like a smaller file picker that is easier to use with a screen reader, open Preferences (Ctrl+,), go to General and turn on Use simple file open dialog. - Read or write in the editor.
- Press
Ctrl+Shift+Pand explore commands, without memorising anything. - Open the Navigate menu to jump by line, heading, block, region or page.
- Open the Tools menu for spelling, word count, checking extracted text, comparing files, macros and help with regular expressions.
- Choose Help > Open Keyboard Reference to see every shortcut that works in your setup right now. QUILL builds this reference on the spot, so it always matches your current feature profile and any keys you have changed.
The habit this teaches is the most useful one in QUILL: you do not need to go hunting. If QUILL can do something, you can reach it from wherever you are.
QUILLBert found something. He pressed
Ctrl+Shift+Gravetwice in a row to see what would happen, and suddenly every letter he typed moved him around the document instead of writing. H took him to a heading, P to a paragraph. That is Quick Nav, and it stays on until you pressEsc, which is how he got his typing back. Chapter 2 explains the QUILL key properly.
The keys that do most of the work
If you want a small set of keys to learn first, start with these.
Ctrl+Nnew document,Ctrl+Oopen,Ctrl+Ssave,Ctrl+Shift+Ssave as.Ctrl+Shift+Pthe Command Palette.Ctrl+Ffind,F3find next,Shift+F3find previous.Alt+F3turns Reveal Codes on and off, so you can hear the formatting that is normally hidden.Ctrl+Ggo to a line.Ctrl+Shift+GDocument Statistics, the word count and more.Ctrl+Kinsert a link,Ctrl+Enterfollow the link at the cursor.Ctrl+Shift+Grave, L(press the QUILL key, then L) for the List Manager,Ctrl+Alt+Shift+Lfor the Structured List Studio, andCtrl+Shift+F2for Insert Special Character.Ctrl+F9starts and stops Locked Dictation, andAlt+F9says what dictation is doing.F9says the last result again, if you missed it.F7spell check,Ctrl+F7next misspelling,Ctrl+Shift+F7previous misspelling,Shift+F7the thesaurus.Ctrl+TabandCtrl+Shift+Tabmove between open documents.F6andShift+F6move between the parts of the window.Alt+Zturns soft wrap on and off.
When those feel familiar, open Help > Open Keyboard Reference and let QUILL show you the rest, taken from the keys you actually have.
What you learned, and where to go next
You have opened QUILL, written something, found commands by name with
the Command Palette, and met the keys you will use every day. You also
know the two ways out of any muddle: F1 on whatever you are
on, and Help > What Can I Do Here?.
If you would like to go over this with QUILL keeping you company,
open Help > Tutorials… (Ctrl+Alt+F1)
and take the track called Your first hour. Its lessons “Write and save
your first document”, “Do anything by name” and “Getting unstuck” follow
this chapter closely. On the website, Your
first hour with QUILL walks the same ground at a gentler pace.
When you are ready, Chapter 2, Finding your way around, takes you on a tour of the window, the menus and the QUILL key.
Chapter 2: Finding your way around
This chapter is a walk around QUILL. You will learn how to get help on whatever you are on, how to run any command by name, how the QUILL key opens up the rest of QUILL, and what lives where in the window and the menus. Read it once from top to bottom, then come back to it whenever you wonder where something is.
Getting around QUILL
QUILL is built so you never have to memorise an action to reach it.
Three things carry most of the load: F1 for help on what
you are on, the Command Palette for running anything by name, and the
QUILL key for the bigger features.
Help on the focused control (F1)
Press F1 on anything that can take focus, whether that
is a field in a dialog, a button, a menu item or the editor itself, and
a small help window opens. It tells you what the control does and which
keys work there. All of the text sits in one read-only field, so your
screen reader reads the whole thing as soon as the window opens.
The help keys are:
F1help on the focused control.Ctrl+Shift+F1open the full User Guide.Ctrl+Alt+Shift+F1open What Can I Do Here?, ideas for the document you have open.Ctrl+F1the Key Cheatsheet, a list of shortcuts.Shift+F1About QUILL.
Chapter 15, Help, updates and support, covers context-sensitive help in full.
F1 works the same way in every QuillVille app: Radio, Cast, the Media Player, Audio Studio, Inkwell, Weather, the Converter and Beacon. It answers two questions at once. First it says what the window you are in is for, in a sentence or two written for that window. Then it describes the control under your cursor: what it wants, what format it expects, what its default is and what changing it affects. A field that asks for a number of seconds says so, and says which number it starts at.
Some controls already explain themselves by name, such as “Reload the highlighted source from the internet”. For those, F1 gives you the name plus a line on how to work that kind of control (“A list: Up and Down move between rows, Enter acts on the row, and Shift+F10 lists everything else you can do to it”). Nothing answers F1 with silence.
If you would rather read it all in one place, every help sentence in the family is collected in the F1 help reference. The default keyboard shortcuts have a companion document, the keyboard reference. Both are made from the app itself, so they always match what QUILL really does.
The Command Palette (Ctrl+Shift+P)
Ctrl+Shift+P opens the Command Palette, a list of every
command in QUILL that you can search. Type any part of a command’s name
to narrow the list, then press Enter to run it. It is the quickest way
to any action when you do not know its key or where it lives in the
menus. Searching for guide, spell,
compare or glow is good practice. You can also
open it from Tools > Command Palette….
Your search can be looser than the exact name:
- Words can come in any order.
url openandopen urlboth find Open From URL…. - A shortcut works as a search.
ctrl+ofinds Open. - Everyday words are understood.
settingsfinds Preferences…, andquitfinds Exit.
As you arrow through the results, QUILL says each command’s shortcut along with its name. Before long you will find you reach for the key and not the palette.
Every on/off command in the palette says which way it is set right now, for example Toggle Soft Wrap (currently On) and Toggle Dark Mode (currently Off). The same goes for find wrap, the tab control, persistent undo, spell check as you type, word prediction, overwrite mode, extend-selection mode, tab insert mode, abbreviation expansion and more. A menu can show a check mark, but a list in the palette cannot, so the state goes in the name. You never have to flip a switch just to find out which way it was.
When a command cannot run right now, the palette tells you why. A command switched off by a safety update reads as “(unavailable: Turned off by a safety update: …)”, and trying to run it says the reason again.
The palette learns from you, too. The commands you use most rise towards the top of the list.
Palette search modes
Start your search with one of these characters to change how the palette looks:
- Normal search, or
>, searches all commands. :searches command IDs.?favours commands that have a key.~puts recently used commands first.
The QUILL key
The QUILL key is Ctrl+Shift+Grave. The
grave key is the back-tick key, just above Tab. Press it, then one more
key, and you reach most of QUILL’s bigger features without leaving the
keyboard.
Everywhere QUILL shows one of these keys, in menus, in About
> Keyboard Reference, in the QUILL Key Help dialog, on the
cheat sheet and in the status bar, it writes it as
QUILL Key + <key>: QUILL Key + S,
QUILL Key + Shift+O and so on. When you type one into the
Keymap Editor you write it as
Ctrl+Shift+Grave, <key>. Both mean the same
thing.
The QUILL key works in two ways.
- Prefix Mode (One-shot). Press it once and QUILL
waits a moment for your next key. That key runs a command, such as
Gto open a file from a favorite folder orMto paste rich text as Markdown, and then QUILL goes back to normal. - Browse Mode (Locked). Press the QUILL key twice in
a row and QUILL locks Quick Nav (Browse) mode on. Now
single letters move you through the document:
Hfor headings,Pfor paragraphs,Sfor sentences and more. It stays on until you pressEsc.
Every one of these chords can be changed in the Keymap Editor, which
the next topic covers. The full cheat sheet is one key away:
QUILL Key + ?.
The QUILL key chords
These are the chords QUILL starts with.
QUILL Key + NQuick Nav (browse) mode for your next move. If Sticky browse mode (thebrowse_mode_stickysetting) is on, it stays locked untilEsc. Otherwise it ends when the QUILL key times out.QUILL Keypressed twice locks Quick Nav on untilEsc, whatever that setting says. This is the way most people use it: the first press gets QUILL ready, the second locks browse mode.QUILL Key + Gopens Open From Favorite Folder…. (Go to Anything isCtrl+Alt+Shift+A, and the Quick Nav landmark list isCtrl+Shift+Z.)QUILL Key + Mpastes the rich HTML on the clipboard as Markdown at the cursor.QUILL Key + Vopens the browser preview of the current document.QUILL Key + Aopens selection actions when text is selected. With nothing selected, it expands an abbreviation by hand in the middle of a word.QUILL Key + Shift+Aopens the abbreviation manager.QUILL Key + Shift+1toShift+9, thenShift+0,Shift+-andShift+=copy the selection to slots 1 to 12 of the Copy Tray.QUILL Key + ?shows the QUILL key cheat sheet.QUILL Key + Esccancels the QUILL key without running anything.
A few things that once had a QUILL key chord have moved:
- Opening from, saving to and managing remote sites (FTP, SFTP, HTTPS,
WebDAV, S3 and GitHub) have no key to start with. Find them under
File > Open from Remote, or give them a key of your
own. (These were
QUILL Key + Shift+O,QUILL Key + WandQUILL Key + Shift+M.) - Turning abbreviation expansion on or off is
Alt+Shift+A. - The Copy Tray dialog is
Ctrl+Alt+V. - Switching the Tab key between indenting and typing a tab character
is
Ctrl+Alt+Shift+I.
Hearing the QUILL key
When you press the QUILL key, QUILL plays a short double ping that sounds like nothing else, so you know it is ready before any speech arrives. The sound is in every sound pack that comes with QUILL, and you can switch it off on its own in Tools > Reading and Dictation > Sound Scheme… (this used to be called Sound Events).
Some keyboards and drivers report the grave key in unusual ways. QUILL checks for it three different ways, so it recognises the key on any layout.
On macOS, use the physical Control key for the QUILL
key, not Cmd. Cmd+Shift+Grave is macOS’s own shortcut for
cycling windows, and QUILL never sees it. If you would rather use Cmd,
change that system shortcut first in System Settings >
Keyboard > Keyboard Shortcuts > Mission Control.
Moving a QUILL key chord
- Open the Keymap Editor, from Tools > Customize and
Support > Keymap Editor…
(
Ctrl+Alt+Shift+Space). - Find the command you want to move.
- Type the new chord in the form
Ctrl+Shift+Grave, X, putting the key you want in place ofX.
The Keymap Editor stores chords in that
Ctrl+Shift+Grave, X form, and menus and the cheat sheet
show them as QUILL Key + X. If the chord you pick is
already in use, QUILL tells you before anything is overwritten.
The Keyboard Manager
The Keymap Editor, also called the Keyboard Manager, is where you see
and change every key in QUILL. Open it from Tools > Customize
and Support > Keymap Editor…
(Ctrl+Alt+Shift+Space), or from the Keymap Editor entry in
More Preferences (the QUILL key, then O). It is made to be
quick and safe to use, however you think about shortcuts.
- Search two ways from one box. Type part of a
command’s name to narrow the list. Or type a shortcut, such as
ctrl+alt+m,Control + Shift + K, or even a QUILL key chord likequill, s. The editor then tells you which command that key belongs to, or that it is “unassigned and available”. You never have to remember whether a key is free. Just ask. - Forgiving spelling. Write the modifiers however you
like:
control,ctrlorctl, in any order (shift+ctrl+kis the same asctrl+shift+k) and in any case. QUILL tidies up what you type before saving it. A Mac-styleCmdstays separate fromCtrland is never mixed up with it. - Record Keys. Would you rather press the keys than spell them? Choose Record Keys, press the chord, and QUILL fills it in for you.
- Clear warnings when a key is taken. If you choose a key that another command already has, QUILL tells you that command’s name and offers to move the key over, taking it off the other command. Nothing is replaced behind your back.
- Diagnostics and repair. Run Diagnostics checks your whole keymap. It reports duplicate shortcuts, keys for commands that no longer exist, bindings it cannot read, and any key that is “assigned but inert”, meaning the editor cannot actually use it. For the problems it can fix, one press of Heal removes the bad entries and reapplies your keymap, so the menus and the shortcuts agree again.
The Main Window
QUILL’s main window is kept simple: a menu bar across the top, the editor in the middle and a status bar along the bottom. When you have several documents open you can also show a row of tabs, which the Windows and tabs topic, later in this chapter, covers.
The menu bar
The menus run across the top of the window in the order you know from Windows and Office: File, Edit, View, Insert, Format, Navigate, Tools, AI, Window, QuillVille and Help. There used to be a Search menu as well. Its commands now live under Edit > Search Tools.
Every menu and every menu item can be reached from the keyboard.
Press Alt with the menu’s underlined letter:
Alt+F for File, Alt+E for Edit,
Alt+V for View, Alt+T for Tools,
Alt+W for Window and Alt+H for Help.
The menus cover everything. If QUILL can do something, there is almost always a menu item for it. The menus topic, later in this chapter, says what each one holds.
The editor
The editor is the heart of QUILL. It is where you write, where text taken from other files lands, and where reports and comparison summaries open, as ordinary documents you can read and edit like any other.
The editor handles:
- plain text writing
- Markdown-aware writing
- HTML-aware writing
- moving by the structure of the document
- selection helpers
- cleaning up text
- spelling and the thesaurus
- inserting and following links
- reviewing changes after a comparison
The status bar
The status bar is something you can work in, not just a strip of text to read.
Press F6 to move into it. Once you are there, you can
move between its cells and press Enter on one, and most cells open a
related window. Shift+F6 takes you back to the editor.
Depending on your layout and what you are doing, the status bar can
show:
- the current message
- line and column
- word count
- insert or overwrite mode
- tab mode (whether the Tab key indents the line or types a tab character)
- selection size
- encoding
- line endings
- spell-check state
- background tasks
- notifications
- read-aloud state
- autosave timing
- the current search term
- the file path, or that the file is unsaved
You can reorder the cells or hide some of them in Tools > Customize and Support > Status Bar Layout…. Restore Defaults there puts every cell back the way it started.
Open the context menu on a status cell (right-click,
Shift+F10 or the Applications key) to
Activate it, Hide this item, or open
Status bar settings…. On the
Notifications cell (or the Background
Tasks cell) the menu also has Clear All
Notifications, which empties the notification list in one go
without opening the dialog.
The status bar never says the same thing twice. When the title bar is set to show the full path, QUILL hides the file path cell. The current message cell hides itself too, whenever its text is exactly the same as another cell you can see.
To hide or show the whole status bar, use View > Status Bar, described in View and display, later in this chapter.
Moving between regions (F6)
F6 and Shift+F6 move you between the main
parts of the window. If you write, check and move around entirely from
the keyboard, this soon becomes second nature.
When Show Tab Control is on (in the View menu) and
at least one document is open, the row of document tabs joins the
F6 cycle as Document Tabs, so you can
reach the tabs from the keyboard instead of skipping past them. The
order is the editor, then Document Tabs, then the preview (when you have
it open beside the editor), then the status bar. On the tab row, Left
and Right Arrow move between tabs, and Enter, Space or Tab takes you
back to the editor on the document you chose.
The Tab key, indent or tab character
Out of the box, the Tab key indents. It adds one level of indentation at the start of the current line, or of every line you have selected, and Shift+Tab takes one level away. On a Markdown list item, Tab and Shift+Tab move the item in and out a level. QUILL speaks each of these, so you hear that the line moved even though the cursor stays where it was.
When you indent with Tab, or outdent with Shift+Tab, QUILL says how deep the line now sits, for example “4 spaces”, “8 spaces” or “1 tab”. If you would rather just hear “Indented lines”, turn off Announce indentation depth on Tab in Preferences, under Accessibility.
Two settings decide what an indent is made of, both in Preferences:
- Indent size is the number of spaces per indent level, from 1 to 8. The default is 4.
- Indent with tabs makes QUILL insert tab characters instead of spaces.
Whichever you choose, the spoken depth follows it.
If you would rather Tab typed a real tab character at the cursor, the
way it does in a plain text editor, switch Tab Mode
with Ctrl+Alt+Shift+I, or with Format > Tab Key
Inserts Tab Character, which is checked while the mode is on.
QUILL says the new mode when you switch, and the Tab
Mode cell in the status bar shows Indent or
Tab char. Even while Tab types a tab character,
Shift+Tab still outdents, so you can take back a stray indent without
leaving the mode. Tab Mode lasts until you close QUILL.
The menus
Here is what each menu holds and which chapter tells you more. They are listed in the order they sit on the menu bar.
File
File is where documents begin and end: new, open, save and save as, recent files and favourite folders, opening from a web address or over SSH and remote sites, snapshots, publishing, and importing and exporting other formats. Chapter 3, Opening, saving and converting files, covers all of it.
Edit
Edit holds the everyday editing commands, along with selection tools, the Copy Tray and Edit > Search Tools, which has what used to be the Search menu. Chapter 4, Writing and editing, covers editing and selection, and Chapter 6, Moving around and finding things, covers Search Tools.
View
View changes how your document is shown without changing what is in it: soft wrap, the tab row, the status bar, text size, previews and Reveal Codes. It is covered later in this chapter, under View and display.
Insert
Insert puts things into your document: headings, lists, the date and time, links and special characters. Chapter 4, Writing and editing, covers it.
Format
Format holds font, size, alignment, colour and paragraph settings, along with changing case, working on lines, sorting, whitespace, HTML and Markdown, and the document’s language. Chapter 5, Formatting, structure and markup, covers it.
Navigate
Navigate gathers the ways to move around a document: go to line, go to heading, go to an entry in a notebook, the Heading Organizer, the Outline Navigator, back and forward through places you have been, and next and previous by structure. It also has bookmarks, folding and sticky notes. When you need to get around a long document, start here. Chapter 6, Moving around and finding things, covers it.
Tools
Tools is QUILL’s workshop, for jobs that are more than plain editing. The Command Palette is here, along with spelling and writing tools (Chapter 7, Spelling and words), reading, comparison and inspection tools (Chapter 8, Reading, reviewing and listening), speech and dictation (Chapter 9, Dictation and transcription), and braille and accessibility (Chapter 11, Accessibility, speech and braille). Tools > Customize and Support is where you make QUILL your own (Chapter 12, Making QUILL yours), and Story Studio, the Vault and Git are covered in Chapter 14, Projects, notes and the QuillVille family.
AI
AI holds the optional assistant: proofreading, changing the selected text, translation, reading aloud, transcribing audio and more. Nothing in it runs unless you choose it. Chapter 10, AI, when you want it, covers it.
Window
Window lists your open documents and lets you move between them, open a new tab, close the others, or send QUILL to the system tray. It is covered later in this chapter, under Windows and tabs.
QuillVille
QuillVille opens the other apps in the QUILL family, each on a key of its own:
- Open Quill Radio
(
Ctrl+Alt+Shift+F7) - Open Quill Weather
(
Ctrl+Alt+Shift+F8) - Open Quill Cast (
Ctrl+Alt+Shift+F12), the same key that shows and hides Cast from any program once it is running - Open Audio Studio
(
Ctrl+Alt+Shift+F9) - Open Quill Converter
(
Ctrl+Alt+Shift+F10), which changes audio and video files from one format to another - Open Quill Inkwell
(
Ctrl+Alt+Shift+F11)
If an app is not on your computer yet, QUILL offers to download it for you. Chapter 14, Projects, notes and the QuillVille family, says more.
Help
Help has help on the control you are on, What Can I Do Here?, the tutorials, the User Guide, the keyboard reference, Personalise QUILL…, feature profiles, checking for updates and ways to get support. Chapter 15, Help, updates and support, covers it.
Windows and tabs
QUILL lets you have many documents open at once. Each one gets its own tab, and QUILL opens things it makes for you as tabs too. The welcome guide, the keyboard reference and a comparison summary all open as ordinary tabs, right beside the work that produced them.
Tabs and document switching
Ctrl+TabandCtrl+Shift+Tabmove to the next and previous document.Ctrl+Wcloses the document you are in.- The context menu on a tab lets you close that tab, close the other tabs, or close the tabs to its right.
- The same menu can show a saved document in File Explorer.
To see the row of tabs, turn on Show Tab Control in
the View menu (QUILL Key + Shift+T).
The Window menu
The Window menu is small but handy.
- New Tab (
Ctrl+T) opens a new, empty document tab. - Next Document (
Ctrl+Tab, alsoCtrl+F6; on macOSCmd+Shift+]) moves to the next open document. - Previous Document (
Ctrl+Shift+Tab, alsoCtrl+Shift+F6; on macOSCmd+Shift+[) moves to the previous open document. macOS keepsCmd+Tabfor its own App Switcher, so on a Mac QUILL uses the same tab keys as Safari and Xcode. - Close Other Documents (
Ctrl+Shift+F4) closes every document except the one you are in. - Send to System Tray (
QUILL Key + T) tucks QUILL into the notification area without closing it. - After those come your open documents, numbered, such as 1:
notes.txt (Alt+1) (active) and 2: other.md
(Alt+2). Press
Alt+Wto open the Window menu, then the number, to go straight to that document. The one you are in is marked active. The list keeps up as you open and close files, and an untitled document takes its new name the moment you save it.
You can also jump straight to a document by its position without
opening the menu. Go to Document 1 to Go to
Document 10 are Alt+1 to Alt+9, and
Alt+0 for the tenth. If no document is open in that
position, QUILL says so and leaves you where you are. You can change
these keys in the Keymap Editor, like any other.
QUILLBee’s shortcut: Juggling notes, extracted files and previews? Keep your main document first in the row, and
Alt+1will always bring you home.
View and display
The View menu changes how QUILL shows your document on screen. Nothing on it changes what is in the document.
- Toggle Soft Wrap (
Alt+Z) wraps long lines to fit the window without changing the file. - Show Tab Control shows or hides the row of document tabs.
- Status Bar (
Alt+Shift+B) shows or hides the whole status bar. It is the same switch on the same key as in Notepad and QUILL Lite. It is a different thing from choosing which cells the bar carries (right-click the bar, or Tools > Customize and Support > Status Bar Layout…): a bar with every cell hidden still takes up a row of the window. The setting isshow_status_bar(Show status bar). It is on to start with, and QUILL remembers your choice. QUILL says which way it went, because your screen reader will not tell you a bar has left the window. - Increase Text Size (
Ctrl+=), Decrease Text Size (Ctrl+-) and Reset Text Size (Ctrl+0) change how big the editor’s text is without leaving the document. They are the same three keys as in Notepad and QUILL Lite. Chapter 11, Accessibility, speech and braille, has more on the size and face of the text. - Preview… (
Alt+Shift+V), Preview Side by Side, Focus Preview (Alt+F6) and Browser Preview… (QUILL Key + V) show your document rendered, the way a reader would see it. - Auto Side-by-Side Preview opens a live preview beside the editor automatically.
- Announce Headings and Announce Lists choose whether QUILL tells you when you move onto a heading or a list.
- What Is This Document?, What Changed? and Undo and Say What Changed tell you the things a screen reader cannot work out for itself.
- Show Entries Panel and Reveal
Codes (
Alt+F3) show more of the document’s structure and formatting.
Two switches that used to be on this menu are now in Preferences
(Ctrl+,): Wrap Find Searches decides
whether Find carries on from the top when it reaches the end, and
Start With No Document Open makes QUILL open to an
empty workspace instead of a starter document.
Other settings that once lived here are in Preferences too, where they are saved in one place: the theme and dark mode, system tray mode, how the title bar shows the path, how the title marks unsaved changes, persistent undo, spell check as you type, and word prediction as you type. You reach them from Tools > Customize and Support > Preferences….
Live preview while you type
Open the side-by-side preview with Preview Side by
Side, or turn on Auto Side-by-Side Preview. Alt+F6
jumps straight into it, and while it is open it joins the
F6 cycle too.
As you edit, the preview updates quietly in place. The new content is swapped in without reloading the page, so your braille display and screen reader are not interrupted, nothing is read again from the top, and you keep your place. This is the live preview to use if you read with a screen reader or braille.
The Browser Preview in your web browser can also follow your edits. A real browser has to reload the whole page to do that, so QUILL refreshes it only when you pause typing, not on every key. Each time, it puts you back at the section you are editing, or where you had scrolled to, instead of at the top.
Jump from the preview back to the editor
Reading the side preview, and want to change what you just heard? Go to a block (a heading, paragraph, list item, quote, table or code block) and open its context menu with the Applications key, Shift+F10 or a right-click. Choose Go to this location in the editor. The cursor moves to that block in your document, focus goes with it, and QUILL tells you where you landed.
Pressing Enter on a block does the same, when your screen reader passes the key through. The context menu is the dependable way, though: in browse mode there is no way to ask where the virtual cursor is, but a context menu always belongs to the exact spot you are on. The jump is offered when the preview matches your document word for word. A preview that expands Vault links does not offer it, because the places would no longer line up.
What you learned, and where to go next
You know three ways to reach anything in QUILL: F1 for
help on what you are on, the Command Palette (Ctrl+Shift+P)
for any command by name, and the QUILL key
(Ctrl+Shift+Grave) for the bigger features and Quick Nav.
You have been round the window with F6, heard what each
menu holds, moved between documents and tabs, and seen how View changes
what is on screen.
For a guided go at the same ground, open Help >
Tutorials… (Ctrl+Alt+F1). In the Your first hour
track, “Do anything by name”, “The QUILL key” and “Getting unstuck”
match this chapter, and “Make QUILL the size you need”, in Living with
it, covers text size. On the website, Own
the keyboard goes deeper into keys and the Keymap Editor.
Next, Chapter 3, Opening, saving and converting files, shows you how to bring documents in and send them out in the format you need.
Chapter 3: Opening, saving and converting files
This chapter is about getting your words in and out of QUILL. We start with the everyday things: opening a file, saving it, and what QUILL says when something about a file changes. Then we look at the kinds of documents QUILL understands, how to turn one format into another, and how to work with files that live on a server or on GitHub. Read the first two topics now. Come back to the rest when you have a Word file to send or a folder of documents to convert.
Opening files
Most of the time you open a file with File >
Open… (Ctrl+O). The File menu has a few other ways
in, and each one is handy at the right moment:
- New creates a blank document.
- Open… opens a document from disk.
- Open Recent takes you back to files you used
lately. At the bottom of that list, Clear Recent Files…
empties it when you want a fresh start. It asks first, and pinned files
stay. Your files stay where they are; only the list goes. Just above
Clear, Recent Documents… (
Alt+Shift+0) shows the whole list in a window of its own. More on that just below. - Open from Clipboard
(
Ctrl+Alt+Shift+Enter) opens whatever you copied: a file copied in File Explorer, a file path copied as text, or a web link. More on it just below. - Open from URL… downloads a document from the web. Before anything is downloaded, QUILL asks you, naming the website and the size of the file.
- New Document from Clipboard opens a new document that already holds whatever text is on the clipboard. It is on the Edit menu too.
- Snapshots saves a group of open documents as one workspace snapshot, so you can reopen them all together later. If you know Visual Studio Code, it is a little like a lightweight workspace there.
Files on a server or on GitHub have their own commands. They are covered later in this chapter, under Remote access and GitHub remote files.
Opening what you copied, a link, or a file you drag in
Documents reach you in all sorts of ways: a file in File Explorer, a path somebody pasted into a chat, a link in an email. QUILL opens all three without a trip through the Open dialog. The idea comes from PlanCake, a small reading app by Andre of Oire Software.
Open from Clipboard
(Ctrl+Alt+Shift+Enter, on the File menu). Copy first, then
press it. QUILL looks at what you copied:
- Files copied in File Explorer open, one after another. If you copied several, QUILL tells you how many it opened.
- A file path copied as text opens that file. The quotes File Explorer’s “Copy as path” puts around it are fine. Several paths, one per line, open in turn.
- A web link goes to Open from URL, described next.
If the clipboard holds none of those, QUILL says “The clipboard holds
no file, path or link.” and nothing else happens. Ctrl+V
still pastes, as always.
Open from URL… (on the File menu). Type or paste a web address. QUILL finds out the file’s name and size, then asks before downloading anything, for example “Download plan.md from example.com? It is 12 KB.” Say Yes and a small window shows how the download is going. Its Cancel button stops it. If something goes wrong, you hear one plain sentence, such as “Nothing was found at that address on example.com.” A link to a file’s page on GitHub opens the file itself rather than the web page around it.
The document opens read-only, with its web address in the tab name. To keep it, save a copy. QUILL works from a temporary copy of the download and deletes it when you close the tab.
Drag and drop. Drag files from File Explorer onto the QUILL window and they open, and QUILL says how many. Text you drag into the document is still inserted where you drop it.
QUILL Lite has all three, on the same key.
Opening something you worked on recently
QUILL remembers the documents you open, newest first. There are two quick ways back to one.
The first nine. Alt+Shift+1 reopens the
document you opened most recently, Alt+Shift+2 the one
before that, and so on up to Alt+Shift+9. They are the
first nine rows of File > Open Recent, where each
row says the file’s name first and then its folder.
The whole list. Press Alt+Shift+0, or
choose File > Open Recent > Recent Documents….
Arrow to a document and press Enter to open it. In the same window you
can:
- Pin a document you keep coming back to
(
Alt+P). Pinned documents stay at the top, however many others you open. On a pinned one, the button says Unpin. - Remove from List (
Alt+R, or the Delete key) takes one off the list. The file is not touched. - Open Containing Folder (
Alt+F) shows the file in File Explorer. - Clear Unpinned… (
Alt+L) empties the list. It asks first, and pressing Enter answers No. Pinned documents always stay. - Remember up to this many documents
(
Alt+U) sets the length of the list, from 1 to 50. It is the same setting as Recent files to remember in Settings. - Forget missing files when the app starts
(
Alt+M) is the same setting as Drop missing recent files automatically, described below.
A file that has moved or been deleted says “not found” in this window, and Remove from List tidies it away. QUILL Lite has the same window on the same key; the two apps keep their own lists.
The Simple File Open dialog
QUILL can open files with either the standard Windows file open
dialog or its own Simple File Open dialog. The simple
one is a short, keyboard-friendly window: one list of files, a small
filter, your recent files and a switch for hidden files. Both are
reached the same way, with File > Open… or
Ctrl+O. Which one you get is decided by Settings
> General > Use simple file open dialog. It is off to
begin with. Turn it on if you would like a plain picker that is easy to
use with a screen reader.
Here is what is in the Simple File Open dialog:
- A Path field at the top shows the folder you are
in. Type a path and press Enter. A folder opens in the list, and a file
opens in QUILL. Press
Ctrl+Lfrom anywhere in the dialog to jump back to this field. You can paste a path in whatever form you have it: with the quotes File Explorer’s “Copy as path” adds, with%APPDATA%-style environment variables, as afile://link, or starting with~. QUILL tidies it up for you. - A Filter dropdown chooses which file types are shown. The default, Supported files, shows plain text, Markdown, HTML and Rich Text. Choose Plain text, Markdown, HTML or Rich Text to narrow it further, or All files to see everything.
- A Files list shows the folders and files where you
are. Folders start with
[dir]. To go up to the parent folder, press Backspace in the list or use the Up button. - A Hidden toggle shows or hides files whose names
start with a dot, or that Windows marks as hidden. Press
Ctrl+Hin the path field or the file list to flip it. On a Mac, useCmd+Shift+.instead, as the Finder does, becauseCtrl+Hthere is the system’s Hide shortcut. - A Recent button pops up your recently opened files, so you can reopen one with a single choice.
- A Use Windows Dialog button opens the standard
Windows dialog just this once. Your setting does not change, so the next
Ctrl+Obrings you back to the simple dialog. It is there for the odd case, such as a very long path or a custom file association, where you want the Windows picker. - An Open button and a Cancel button. Enter opens the selected file and Escape cancels.
Under the list, a status line tells you the folder you are in, how many entries are showing, and any error. If a folder is off limits (“permission denied”) or a path is not a folder, the dialog stays open so you can fix the path and try again.
QUILLBee’s tip: Someone sent you a file path in an e-mail? In the Simple File Open dialog, press
Ctrl+Lto jump to the Path field, paste it, and press Enter. Quotes and all, QUILL tidies it up.
When a file is not where it was
Files move. A OneDrive or SharePoint file can be a placeholder whose contents were never downloaded to this PC. A file on File > Open Recent may have been renamed or deleted since you last used it. A file on a USB stick or a network share simply is not there when that drive is not connected.
When that happens, QUILL says so in one sentence, in the status bar and out loud:
Bingo3.html is no longer there. It may have been moved, renamed, or deleted, or it may live on a drive that is not connected.
That is all. There is no dialog to close, and QUILL stays exactly
where it was, so you can press Ctrl+O and pick something
else. If you choose a folder where QUILL expected a file, it tells you
that instead.
Your Recent list keeps the entry. A file that is missing today may be on a USB stick you plug back in tomorrow, so QUILL does not quietly forget it because one open failed.
If you would rather lose dead entries, turn on Drop missing
recent files automatically in Settings, on the General page
(the setting is recent_files_auto_clear_missing, and it is
off by default). Even then, it only removes entries whose file has been
deleted from one of this PC’s own fixed drives. Files on USB, removable
or network drives are never even checked, so unplugging a drive never
clears its history. “Not connected” is not the same as “gone”.
Saving files
Saving is three commands on the File menu:
- Save writes the current document.
- Save As… writes it to a new name or place, and converts it to the file type you choose in the dialog.
- Save All writes every open document that has changes.
Save As… really converts. QUILL keeps your text as portable Markdown-style markup, so choosing Rich Text Format (*.rtf) writes real RTF, HTML (*.html) writes a standalone web page, and Text (*.txt) writes your text as a plain file. Choosing Markdown (*.md) keeps the markup just as it is. The file’s extension always decides the format. If you type a name with no extension, the type you selected supplies one. There is more on each format under What happens when you save in another format, later in this chapter.
When Save As changes the format, QUILL can reload the file so the
editor matches it. For example, a freshly saved .rtf can
reopen in the Rich text editor. Reloading replaces what is in the editor
with the saved file, so by default QUILL asks first with a Yes or No
question. To stop the question, set Settings > Editing >
Reload after Save As to match the format to Reload
automatically or Keep current surface.
Filename suggestions. When you save a document that
has never been saved, QUILL fills in the name box from the document’s
first line. It removes leading # marks, quotes and bullets,
and any characters a file name cannot hold. This is only a suggestion:
type over it with anything you like. It never renames a document that is
already saved. It is on by default, and you can turn it off with
Suggest a filename from the first line in
Preferences.
Save As Plain Text
Save As Plain Text… saves a clean plain-text copy,
with the markup taken out. Plain text has no links, so Settings
> Editing > Links in plain-text export decides what
happens to a Markdown link. You can keep the link text and its URL (the
default, so you never lose where a link pointed), the link text only,
the URL only, or the original Markdown link. The same setting applies
whenever Save As writes a .txt file. If your document has
hidden formatting such as fonts, colours or alignment, QUILL offers to
keep it in an Illumination, which comes next.
Keeping formatting in a plain-text file with Illuminations
A plain .txt file has nowhere to store fonts, colours or
alignment, so saving formatted text as plain text normally loses the
formatting. QUILL gives you a choice. It is named after the painted
decoration a scribe adds to a manuscript: an
Illumination is a small companion file,
yourfile.txt.illumination, that keeps the formatting beside
the clean text. Your .txt stays truly plain, so Notepad,
e-mail and every other program can read it. When you open it again
in QUILL, the Illumination puts back every font, colour and
alignment exactly.
What happens is set by Settings > Editing > Saving formatted text as plain text:
- Ask each time (the default). QUILL asks whether to
keep your formatting by saving as Markdown, Word or RTF instead, to save
the plain
.txtplus an Illumination, or to save plain text only and drop the formatting. - Always save an Illumination sidecar. QUILL writes
the clean
.txtand the.illuminationcompanion every time, with no question. - Save plain text and drop the formatting. The
classic save that loses formatting. The
.txtis clean, and any old Illumination beside it is removed.
Two things to keep in mind. The Illumination is a separate
file, so if you copy or e-mail only the .txt, the
formatting stays behind. Keep the pair together. And if you edit the
.txt in another program, QUILL notices the text no longer
matches its Illumination and opens it as plain text, so formatting never
lands on the wrong words. If you want one file that keeps everything,
save as Markdown, which keeps the formatting inline, or
Word/RTF, which turn it into real formatting.
Encoding and line endings (Ctrl+Alt+E)
File > File Format… (Ctrl+Alt+E) is
one window for the two things that decide exactly how your file is
written to disk. QUILL Lite opens the same window on the same key, under
the name Tools > File Encoding and Line
Endings….
- Encoding. Choose UTF-8 for anything new. UTF-8 with
BOM suits the Windows tools that expect one. There is also UTF-16, and
Windows-1252 for older
.txtfiles that use it. A file that arrived in something else, such as UTF-16 big-endian, shows as a keep as is row and stays that way. - Line endings. CRLF is what Windows programs write, and it is what a new QUILL document starts with, the same as Notepad, WordPad, Word and QUILL Lite. LF is what Unix, macOS and most build tools expect. A file that arrived with old-style Mac CR endings keeps them, in its own keep as is row.
Nothing changes until you save, and the window tells you so. If the encoding you chose cannot hold a character in your document, the save names that character and offers Save As. It never quietly turns it into a question mark.
When a file is not UTF-8. Most files today are UTF-8. When QUILL opens one that is not, such as an older Windows file, it tells you once: “Opened as Windows-1252, not UTF-8.” Nothing about the file has changed. QUILL reads every byte, and a save puts every byte back as it was.
Reopen with Encoding… Now and then an old file’s accented letters come out wrong, because it was written in an encoding nobody can guess from the file alone, such as Cyrillic Windows-1251. In the File Format window, choose Reopen with Encoding…, pick the encoding the file was written in, and QUILL reads the same file again from disk that way. If you have unsaved changes, QUILL asks first, because reopening throws them away. Nothing on disk changes. If the file is not valid in the encoding you picked, QUILL says so and leaves your document as it was.
After a reopen, the file saves back in that same encoding, so the next program that reads it sees what it always saw. To turn it into UTF-8 instead, open File Format again, choose UTF-8, and save.
When another program changes the file you are editing
QUILL keeps an eye on the file you have open. When something else
writes to it (Word saving a .docx, a build tool
regenerating a .md, a colleague’s sync client),
QUILL asks what you want to do. Unless you tell it to,
it never reloads on its own.
You have three answers:
- Reload from Disk reads the file again, using the right reader for its format, and keeps your cursor where it was.
- Keep Mine leaves your tab exactly as it is. The version on disk is ignored until you save over it or reload. Escape gives this answer too, because doing nothing to your text is the safe choice.
- Open Disk Version in a New Tab opens what is on
disk as a second, read-only tab named
<name> (on disk), so you can compare the two and decide. Your own tab is not touched.
The question has a checkbox, such as “Do not ask me again for
.docx files.” Check it and QUILL remembers your answer for
every file of that format. That way a build that rewrites the file you
are reading every few seconds is answered once, not every time. Reload
and Keep Mine can be remembered. Opening the disk version in a new tab
is a one-off comparison, so it never is. To take every remembered answer
back, choose File > Forget Remembered File-Change
Answers (Ctrl+Shift+0). A remembered Reload never
throws away unsaved edits; QUILL asks instead.
If the file changes while you do have unsaved edits, the same question spells out what is at stake: reloading throws away your edits, and keeping yours overwrites the disk version the next time you save.
Save looks once more. Right before Save writes your file, QUILL checks the file on disk again. If another program changed it since you opened it or last saved it, even a moment ago, QUILL stops and asks instead of writing over that change:
- Save As… keeps both: yours under a new name, theirs untouched. Enter gives this answer.
- Reload from Disk shows the version on disk and throws away your unsaved edits.
- Overwrite saves your version over theirs.
- Cancel, or Escape, saves nothing.
This matters most when an AI assistant or a sync tool is rewriting a file while you read it. If you already answered Keep Mine for that change, Save does not ask again. QUILL Lite checks the same way, and watches the same way, with the same four settings in its Preferences.
Two related commands are on the File menu:
- Reload from Disk throws away your changes in memory and reads the file again, after asking you to confirm.
- Check for External Changes… asks the same question whenever you want to check.
Four settings on the General page of Settings shape all of this:
- Watch the open file for external changes is on to begin with. Turn it off and QUILL stops noticing when another program changes or deletes your file.
- Reload automatically when you have no unsaved edits is off to begin with. Turn it on and, as long as you have not changed anything yourself, QUILL reloads a changed file without asking, in every format, and keeps your cursor where it was. An answer you asked QUILL to remember still comes first.
- Ask before discarding unsaved edits on a conflict is on to begin with. It is the question above, when you do have unsaved edits, and the question about a file that was deleted. Turn it off and QUILL says nothing in those cases and leaves your text exactly as it is.
- External-change debounce (milliseconds) is how long QUILL waits after it notices a change before it reacts, so a program that writes a file in several steps is dealt with once. The default is 750.
The rest of the File menu
The File menu covers the whole life of a document. Besides opening and saving, you will find these:
- Restore Backup… brings back a saved backup version.
- Page Setup… and Print… handle paper and printing.
- Print Studio… goes a step further. It first tells you what the printout will be, for example “3 pages, Letter, default margins”, which is a print preview you can hear. Then you can choose all, odd, or even pages, print in reverse order, or skip the first page (handy when page 1 is pre-printed letterhead) before it hands you to the same print dialog Print uses.
- Header and Footer… builds a header and footer for the current document. Start from a preset such as Title left, page number right, Filename and date or Roman numerals for front matter, or make your own from a small set of pieces (title, filename, date, page number) placed left, center or right. Turn on Different first page to give page 1 its own header and footer, and choose numeric or Roman page numbers with any starting number. It is saved with the document and printed on every page, from Print or Print Studio.
- Run Current File runs the saved file with the program it belongs to, and Open Target at Cursor opens the path or link under the cursor.
- Rename Current File… and Delete Current File… rename or delete the file on disk without leaving the editor.
- Close Document closes the current tab.
- Exit closes QUILL.
Anything on this menu that could cost you work, such as reloading, restoring a backup or opening a web address, asks before it acts.
Making QUILL your text editor
Installing QUILL tells Windows that QUILL can open your text files, Markdown, rich text, HTML, Word documents, EPUB books and a few more. It doesn’t take anything over. QUILL simply shows up when you choose Open with on a file, and in Windows Settings under Default apps, which is where you decide which app opens what.
Both of the next steps live in one place: open Settings, go to the General page, and find Windows and your files. A line at the top tells you which program opens in place of Notepad right now.
The Make QUILL My Text Editor… button takes you the rest of the way. It tells you what Windows lets an app do and what is up to you, then opens the Default apps page for QUILL. Choose .txt, pick QUILL, and choose Set default. Do the same for any other type you’d like QUILL to open. Anything you leave alone stays with the app that opens it now, and you can change your mind on the same page. This works from a portable copy of QUILL too.
Some programs still start Notepad by name, and so does typing “notepad” in the Run box. If you’d like QUILL to open for those as well, check Open QUILL instead of Notepad and press OK or Apply. It’s off to begin with. Because it changes Notepad for everyone on the computer, QUILL asks first and Windows asks for administrator approval. The checkbox always shows whether it’s on right now, and clearing it puts Notepad back. On Windows 11, QUILL then shows you where to turn off the newer Notepad’s app execution alias, which would otherwise go around the switch. Uninstalling QUILL puts Notepad back for you.
Only one program can open in place of Notepad. If QUILL Lite, or another program, already does, QUILL tells you who before it takes over. QUILL Lite has the same two settings in its Preferences.
Working with Different Document Types
QUILL is at its best with plain text, Markdown, HTML, RTF, EPUB, and text pulled out of other documents. It can also bring in PDFs and scanned pages, with tools to check what came through, and it understands the structure of Office files. Here is what each kind of file gets.
Plain text
Plain text stays plain. QUILL never slips hidden formatting into it.
Markdown
Markdown gets commands that understand its structure: help with lists, headings, links and code blocks.
HTML
HTML gets tag insertion, help with editing its structure, and link handling.
RTF
When an RTF file contains unsafe embedded content, such as OLE objects, QUILL removes it as the file opens and tells you. Remote fields, which would fetch something from the internet, are flagged and wait for your consent instead of being fetched quietly.
Earlier versions had an optional Rich text lens for
RTF files, switched on under Settings, Editing (the “Editor surface”
choice) and toggled with an editing-lens shortcut. It has been retired.
To move a document between Plain text, Markdown, HTML, Rich Text and
Word, use Format > Document Format…
(Alt+Shift+F).
CSV and TSV
When you open a CSV or TSV file, QUILL asks how: in the CSV grid mode, or in the normal text editor. You can remember your choice as the default and still switch modes inside the tab at any time. Grid mode is built for the keyboard and for screen-reader users who want to edit a table cell by cell without leaving QUILL.
Word (.docx and .doc)
Word documents open the same way, with a choice between the structured Word view and the normal text editor. Again, you can remember a default and switch inside the tab.
The structured Word view puts readable structure first. Tables are read out in a straight line, headers and then rows, which is easier to follow with a screen reader. Normal text mode gives you all of QUILL’s editing for making changes directly.
Saving to Word. You can save any document as Word. In File > Save As…, choose Word Document (*.docx) (or Rich Text Format (*.rtf)) in the file type list, and QUILL converts the current content as it saves. Markdown and HTML structure (headings, lists, emphasis, links, simple tables) becomes real Word styles, so you can move around the result in Word by heading, not just look at it. Saving plain text this way gives you a correct but unformatted document, because plain text has no structure to carry.
EPUB
EPUB books get the navigator and reading chapter by chapter.
PowerPoint (.pptx and .ppt)
QUILL keeps a presentation’s structure when it brings it in. Slide titles become headings, bullets become nested list items, tables become text tables you can Tab through, and speaker notes come along when there are any.
Excel-style spreadsheets (.xlsx and .xls)
Spreadsheets come in as text, with their structure kept. QUILL lays each sheet out as readable table text, so you can look through the content quickly. If optional converters are installed, older and mixed-format files come through better.
PDF and OCR-derived text
PDFs and scanned pages are where QUILL’s tools for checking extracted text matter most. Treat them as a proofreading step, not an extra. The next topics cover opening PDFs, OCR and those checks.
What happens when you save in another format
File > Save As truly converts your document to the format you pick in the “Save as type” list. It never just renames the file. QUILL’s editor holds your text in one clean form, and Save As writes that text out in the format you chose. Here is what each choice does:
- Markdown (.md): your text is written exactly as it is in the editor. Markdown is QUILL’s own format, so nothing is converted or lost.
- Text (.txt): also written exactly as it is, Markdown markup included, so a plain-text file comes back just as it went out. If you want the markup stripped, with headings and emphasis turned into plain words, use File > Save As Plain Text instead. That command also offers to keep your formatting in an Illumination. A third route is Format > Document Format… > Plain text, which asks which of the two you want. Save As leaves your file byte for byte as it was, so a .txt you opened comes back unchanged.
- HTML (.html): converted to a complete web page with your document’s title, ready for a browser.
- Rich Text (.rtf): converted with all its formatting. Fonts, sizes, colors, highlights and alignment all carry over.
- Word (.docx): converted to a real Word document. Headings become Word heading styles, so Word and screen readers can move by them. Each line in the editor becomes one Word paragraph, so your line breaks stay exactly where they were. Hidden-codes formatting (font, size, color, highlight, alignment) becomes real Word formatting.
- An extension QUILL cannot write, for example typing
notes.pdfin the name box: QUILL refuses rather than writing a broken file. For PDF, ODT and EPUB it offers to open File > Export, which makes them properly with Pandoc.
You keep editing QUILL text. After a Save As that
converts, the file on disk is Word (or HTML, or RTF), but the editor
still holds QUILL’s clean text, and every Ctrl+S after that
converts it again. QUILL tells you this after the save: “Saved as
report.docx, Word format. You are still editing QUILL text; each save
converts it to Word.” The window title and tab title change to the new
name straight away, and from then on Ctrl+S saves quietly
to the same file.
Your originals are protected. If you opened a PDF,
EPUB, spreadsheet or presentation, what you are editing is text taken
out of it, and the original file cannot hold your changes. Pressing
Ctrl+S on one of these never overwrites the original. QUILL
explains why and opens Save As, so your edits go into a new file in a
format that can hold them.
What carries over between formats
QUILL converts everything through one clean form inside, so what survives a Save As or a conversion depends on the feature, not on the pair of formats. This table is what QUILL’s own tests check. Yes means it carries over as that format’s own structure. Partly means it carries over, but as text or as QUILL’s portable markup rather than a real object in that format. No means it is not kept. The numbers point to the notes after the table.
| Feature | Markdown | HTML | Word (.docx) | Rich Text (.rtf) | Plain text (.txt) |
|---|---|---|---|---|---|
| Headings (1 to 6) | Yes | Yes | Yes | Yes | No |
| Bold, italic | Yes | Yes | Yes | Yes | No |
| Underline | Partly (1) | Yes | Yes | Yes | No |
| Strikethrough | Partly (1) | Yes | Yes | Yes | No |
| Superscript / subscript | Partly (1) | Yes | Yes | Yes | No |
| Text colour / highlight | Partly (1) | Yes | Yes | Yes | No |
| Font family / size | Partly (1) | Yes | Yes | Yes | No |
| Links | Yes | Yes | Yes | Yes | No |
| Bullet lists | Yes | Yes | Yes | Yes | No |
| Numbered lists | Yes | Yes | Yes | Yes | No |
| Blockquotes | Yes | Yes | Partly (2) | Partly (2) | No |
| Code blocks | Yes | Yes | Partly (2) | Partly (2) | No |
| Horizontal rule | Yes | Yes | Partly (2) | Partly (2) | No |
| Tables | Yes | Yes | Yes | Partly (3) | No |
| Images | Partly (4) | Yes | No (4) | No | No |
| Paragraph alignment | Partly (1) | Yes | Yes | No | No |
| Page breaks | Partly (1) | Yes | No | No | No |
Notes:
- In Markdown, underline, strikethrough, superscript
and subscript, colour, highlight, font, alignment and page breaks are
kept in QUILL’s hidden-codes markup. You don’t see it while you
edit, and it turns into real formatting when you export to HTML, Word or
RTF. Markdown itself has no standard way to write these, so another
Markdown app shows QUILL’s
[text]{...}codes instead of the effect. - Blockquotes, code blocks and horizontal rules
belong to Markdown and show properly in HTML. In Word and RTF they
appear as their Markdown markers (
>,```,---) rather than a Word quote or code style. - Tables travel as real tables between Markdown, HTML
and Word. A Word table you open in QUILL becomes a clean
Markdown (GFM) table that you can edit and move around in. Markdown and
HTML tables stay as they are. A table you save to Word becomes
a real, editable Word table with a header row that repeats, so a screen
reader announces the column headers. The one exception is RTF: a table
saved to
.rtfis written as readable pipe text, not a real RTF table. - Images: an image reference
(
) survives a trip through Markdown and becomes<img>in HTML. QUILL does not put image files inside Word documents, and images inside a Word document you open are not brought into the text.
Plain text (.txt) never carries formatting. That is what plain text is for. Use Save As Plain Text when you want the markup flattened on purpose, with the option to keep your formatting in an Illumination.
Choosing a conversion engine
More than one converter can handle a Word document, and each gives a slightly different result. QUILL lets you choose, and describes what each choice gives you in plain words. The defaults suit almost everyone. The choices are there for when they don’t.
- Word document reading engine (Settings >
Editing) decides how a
.docxbecomes editable text when you open it. Auto (the default) tries MarkItDown first and falls back to a plain extract. MarkItDown is fast and reliable: headings, lists and tables come through, but images, comments and fonts do not. Pandoc keeps more of the structure, so footnotes and complex tables come through better. It needs Pandoc installed. If Pandoc is missing, this setting quietly acts as Auto, so your file still opens. - Word document saving engine (Settings >
Editing) decides how your text becomes a
.docxwhen you save. Auto (the default) uses the native writer. Native keeps QUILL’s formatting codes (fonts, sizes, colors, highlights, alignment) and makes each line in the editor one Word paragraph. It is the best choice for documents written in QUILL. Pandoc turns structure into Word styles (headings, lists, tables, links and footnotes) but drops font, size and color codes. - In the Convert File dialog, the Conversion engine choice (Auto, Pandoc or MarkItDown) applies to one conversion at a time. As you arrow through it, a description under the choice changes, so you hear what each engine will do before you convert. MarkItDown only works when the source is Word, PowerPoint, Excel or PDF and the result is Markdown or plain text. If you choose it for anything else, QUILL says so and offers Pandoc. It never swaps in an engine you did not pick.
Import and Export
QUILL can convert between the formats the people around you use, without you leaving the editor. File > Import brings a document from another program into QUILL as a new tab. File > Export saves the current document as a different file type. Both use Pandoc and work in the background, so the editor never freezes. Exports keep your line breaks exactly: one line in the editor is one paragraph in the exported document, in every format.
Import (File > Import) reads Markdown,
CommonMark, GitHub-Flavored Markdown, HTML, Word documents
(.docx), OpenDocument Text (.odt), Rich Text
(.rtf), plain text, CSV and TSV tables, EPUB books, and
LaTeX or TeX.
Export (File > Export) writes the same set, plus PDF and a DAISY Talking Book, which are export only.
A few examples cover most of what people do:
- Choose File > Import > Word Document, pick a
.docx, and a new Markdown tab opens with the document ready to edit. - Choose File > Export > EPUB Book, pick a folder, and QUILL writes an EPUB next to your current file.
- Choose File > Export > PDF to publish a finished document.
A web page you can share. File > Export
> HTML… (Ctrl+Alt+Shift+End) saves a copy of
your document as one web page: its styles are inside it, it has no
scripts, and it says what language it is in, so you can email it or put
it on a website as it is. Task lists show as check boxes and
struck-out text is struck out. The document you are editing
stays the document you are editing. If notes are written into the file,
QUILL asks whether to include them in the page, marked as notes; No is
the default, so a note never ends up in a page by accident.
Getting there by keyboard.
File > Import and File > Export are
ordinary menus: open the menu, arrow down and press Enter. There is no
single key for the whole list, because choosing the format is the point
of the command. The quickest way is the Command Palette
(Ctrl+Shift+P): type import or
export and pick the format from the list.
After the conversion. When the new file is one QUILL can edit (Markdown, CommonMark, GFM, HTML, plain text, CSV or TSV), QUILL asks whether to open it in a new window. Press Yes to open it, or No to carry on where you were. PDF, DOCX, EPUB, ODT and RTF don’t ask, because QUILL cannot edit those directly. Instead a message tells you where the file was saved and copies the path to the clipboard, so you can paste it into File Explorer.
Other formats. Both menus end with Other Pandoc Format…. It shows a list of every other format Pandoc can read (on Import) or write (on Export), such as CommonMark and GitHub-Flavored Markdown. Arrow to the one you want and press Enter, and the conversion runs just like the named ones above. On Export, the list opens on your Default export preset (Settings > General; HTML unless you change it), so if you nearly always export the same way, Enter alone does it.
What it does not do. Importing a PDF this way is not supported, because Pandoc cannot do it reliably. Use Import / Convert Document, described below, and for print-to-braille work, the braille and DAISY tools.
DAISY Talking Book export
File > Export > DAISY Talking Book saves the
current document as a DAISY 2.02 text-only talking book. DAISY is the
accessible book format read by DAISY software and by players such as the
Victor Reader Stream, Plextalk and APH units. A DAISY book is a
folder, not a single file, so the name you choose becomes a
folder holding ncc.html, content.html and
book.smil. Your headings become the player’s navigation
points, and Markdown styling is flattened into clean, readable text. The
book has no audio, so a player reads it with its own text-to-speech. You
can also open the folder in APH Book Wizard Producer to record or
synthesize a full text-and-audio book. The export reads what is on
screen, so you do not have to save first.
Batch Conversion
When you have a whole folder of documents to convert, opening them
one at a time is slow going. File > Import > Batch
Conversion… (or File > Export > Batch
Conversion…, which opens the same wizard) converts a whole
folder in the background. The key is the QUILL key, then B
(Ctrl+Shift+Grave then B).
Use the single-file Import and Export menus for one document. Use the wizard when you have a folder of documents, when every file needs the same treatment, and when you are happy to let it run while you keep writing.
The wizard, page by page
- Introduction. A short summary, then a check for Pandoc and its version. If Pandoc is not installed, the page says so, and Start stays unavailable until you install Pandoc 3.x from https://pandoc.org.
- Folder and options. A folder picker, an Include subfolders checkbox, an Output layout choice (Same folder as source, or Output subfolder per source folder), and an Overwrite choice (Ask each time, Never, Always). These start from your Settings, and the last folder you used is remembered for next time.
- Format and profile. A Direction choice (Import into QUILL, or Export from QUILL), a list of source formats and a list of target formats from the main Import and Export set, and a picker for the seven built-in conversion profiles.
- Review and start. A plain-text summary of the whole plan. Press Start to begin the batch and close the wizard.
QUILL keeps each file’s name and changes only the extension:
report.docx becomes report.md (or
report.html, report.epub, and so on). With
Output subfolder per source folder (the default), the
results go into a new Output/ folder inside the source
folder. With Same folder as source, they go next to the
originals.
Profiles
The profile picker offers seven ready-made profiles. Each one comes with a plain description that your screen reader reads before you press Start.
- Clean Word Document:
report.mdbecomes a polished Word document, with no Markdown left showing. - Accessible HTML Page: a single HTML page with a
title block and
langmetadata, ready for an accessibility check. - EPUB Book: an EPUB ready for publishing yourself, with a table of contents and EPUB-3 metadata.
- GitHub README: GitHub-Flavored Markdown with no wrapper, ready to paste into a repository.
- Print PDF: a PDF with standard PDF metadata. Pandoc picks the right engine for your computer.
- Instructor Handout: a print-ready PDF with 1-inch margins and numbered top-level sections.
- Plain Text for Screen Readers: plain text with no HTML wrapper, no smart quotes and a fixed 80-column width. The right choice for feeding a text-to-speech engine.
Overwriting existing files
The three overwrite choices save you from answering a question for every file:
- Ask each time: QUILL lists every result that would replace an existing file and asks once, with a single Yes or No. If you say No, those files are skipped.
- Never: existing files are skipped automatically. The Status Page counts them under skipped, so the totals still add up.
- Always: existing files are replaced without asking. Useful when you run the same batch again.
Following progress
To watch the batch, open the Status Page (Help > Status
Page). The Tasks & Downloads tab shows a row for it as it
works. The first row is
Batch conversion: scanning <folder>, followed by one
row per file.
When the batch is done, QUILL says one line, through the announcement backend you have set up, with the converted, skipped and failed counts and how long it took:
“Batch conversion complete. 12 of 14 files converted in 4.2 seconds. 2 skipped.”
That line follows your verbosity settings under Settings > Accessibility and Announcements. The Status Page row updates either way, so sighted and low-vision users see the same result. A short report then lists every file that gave a warning or failed, with the exact error.
Batch settings
Three Settings choose what the wizard starts with:
- Include subfolders in batch conversion: on or off,
on by default (
True). - Overwrite behaviour for batch conversion: Ask each time (the default), Never or Always.
- Default output layout for batch conversion: Output subfolder per source folder (the default) or Same folder as source.
You can change any of them in the wizard for one run. To change what it starts with every time, use Preferences.
Import / Convert Document (OCR)
File > Import > Import / Convert Document (OCR)… (also on Tools > Reading and Dictation > OCR and Document Conversion) is QUILL’s rescue tool for documents that are hard to read: locked-down Office files, EPUBs, scanned PDFs and photos of pages. It follows one rule: free first, local first, and nothing is ever uploaded without your say-so.
Here is how a conversion goes:
- The free local converter runs first. Word, PowerPoint, Excel, HTML, EPUB, and PDFs that already contain text convert straight away on your computer and open as clean, editable text. No account, no key, no upload and no cost.
- A scanned document is noticed, not dumped on you. If a PDF comes back nearly empty, QUILL says “It looks scanned or image-based” and asks whether to run free OCR on your computer. Yes runs it. No opens the empty result anyway. Cancel imports nothing. QUILL never opens a blank result without telling you, and never runs OCR without asking.
- OCR on your computer rescues the scan. The local
Tesseract engine reads each page on your own computer (it uses only the
processor and works offline). It marks where each page begins with a
searchable
<!-- Page N -->marker and tells you how it is going (“Recognizing page 3 of 12…”). When it is not confident about what it read, QUILL tells you plainly, so you know to check the result.
Other problems get their own clear message instead of the scanned-PDF question. A file that is really corrupt is reported as damaged, with a note that OCR won’t help (repair it or export it again from where it came from). A PDF on a computer with no text extractor points you to Help > Download Optional Components > “PDF and Office text extraction” instead of claiming it is scanned. The installed apps come with a PDF reader, so this only happens with a pip or source install. A password-protected PDF is handled separately, as described next.
Opening a password-protected PDF
When you open a PDF that is locked with a password, QUILL asks for the password and reads the document. You don’t need to remove the password in another program first. Type the password and the PDF opens. If it is wrong, QUILL tells you and lets you try again. Press Cancel to stop opening it.
The password is used only to open that one file for reading. QUILL never stores, logs or remembers it, so if you close the file and open it again, it asks again. PDFs that are technically locked but open with an empty password (they only restrict permissions) open with no question, as before.
A PDF’s bookmarks come across
If a PDF has an outline, the chapters and sections you would see in
Adobe Reader’s bookmarks pane, QUILL adds those entries to its own
bookmark list (List Named Bookmarks…,
Alt+Shift+G) when you open the file, as it does for Word
and EPUB structure. Each bookmark takes you exactly where Go To
Page for that page would. This happens once, the first time you
open the PDF. If you later rename or delete some of those bookmarks,
opening the file again will not bring them back or make duplicates. A
PDF with no outline opens as usual.
The text from a PDF is repaired before you read it
A PDF does not store sentences. It stores where each letter was printed on the page. So what comes out is a picture of the page rather than the words the author typed, and read aloud that can be rough going. QUILL fixes four things as it opens the file, page by page:
- Words split across lines are joined again. Print layout breaks long words with a hyphen at the end of a line, so “inter-” on one line and “national” on the next would be read as two words, and a search for “international” found nothing. QUILL joins them. A hyphen that belongs to the word stays: Anglo-Saxon and 2018-2019 are left exactly as written.
- Paragraphs are put back together. Every printed line arrives as its own line of text, so speech would stop at the edge of the page instead of the end of the sentence, and moving to the next paragraph moved one printed line. QUILL joins lines that were only broken because the page ran out of room. Blank lines, list items, headings, short deliberate lines and finished sentences keep their breaks, so lists stay lists and paragraphs stay separate.
- Spaced-out headings are closed up. A designer’s letter-spaced title comes through as “C H A P T E R O N E”, which a screen reader spells one letter at a time and a search never matches. It becomes “CHAPTER ONE”. Ordinary text is left alone: a line such as “A B testing” is not a heading and is not touched.
- Missing joined letters are restored. The joined “fi”, “fl” and “ff” shapes a typesetter uses are often stored as characters that mean nothing outside the document’s own font, so a screen reader reads nothing where they were, and “office” is announced as “o ce”. QUILL turns them back into letters, and removes any leftover meaningless character so speech doesn’t stumble over it.
These repairs are careful. When a case could go either way, QUILL leaves the text as it found it, and a PDF whose text is already clean comes through unchanged. They never cross from one page to the next, so Go To Page and the page count stay exact.
Installing the OCR engine
The OCR engine is a free, one-time download of about 48 MB: Tools > Reading and Dictation > OCR and Document Conversion > Install Local OCR Engine (Tesseract)…. QUILL fetches the official installer from its own verified release, checks it byte for byte, and opens it for you to finish. It never installs anything silently. If Tesseract is already on your computer (or installed with Homebrew on a Mac), QUILL finds it and uses it.
The optional Datalab Chandra OCR cloud service
Some documents are too hard even for OCR on your computer: complex tables, forms, handwriting, crowded columns, very poor scans. For those, QUILL supports an optional paid cloud service, Datalab Chandra OCR, using your own key. QUILL only offers it after the OCR on your computer comes back weak (or when you turn down installing the free engine). Every single upload requires your explicit consent in a window that names the service, reminds you to think about private, medical, legal or financial content, and notes that Datalab deletes results from its servers about an hour after processing. A file whose name suggests sensitive content (tax, medical, legal and similar) gets an extra CAUTION line. QUILL decides that from the name only and never looks inside the file to decide. There is no “don’t ask again”.
To set it up, choose Tools > Reading and Dictation > OCR and Document Conversion > OCR Service Settings…. This opens the AI Hub Services tab. Turn the service on, paste your Datalab API key (it is kept in the Windows credential vault, never in a settings file), choose the default mode (Fast, Balanced or Accurate) and output (Markdown is recommended), and press Test Connection. The test checks your key and the address and uploads no document. Other buttons open the provider’s website, key page, pricing, privacy documents, API documents and list of supported file types in your browser, and Copy Service Summary copies a description with no secrets in it, for support requests.
Checking and tidying up after OCR
Review Last OCR Result… opens a checklist for your
most recent conversion: which service made it, the page count, how
confident the recognition was, and, for OCR on your computer, every line
it was unsure of, listed as Page N: [confidence] text.
Arrow through the flagged lines, then search the converted document for
the page marker (for example <!-- Page 3 -->) to jump
to the trouble spot. That way you check by ear exactly where it is
needed, instead of proofreading everything again.
Delete OCR Temporary Files clears any leftover job files from QUILL’s data folder and tells you what it removed. The local tools normally clean up after themselves. Converted results live only in the open, unsaved document until you choose to save.
OCR and Conversion Services… explains each service in plain words: the free local converter, the local OCR engine and the optional Datalab cloud service. For each it tells you what it does, what it is best at, whether it runs on your computer or in the cloud, what it costs and how it is set up right now.
Two settings are there for unusual setups: the OCR recognition
language (ocr_language, English by default) and a path to
the engine if QUILL cannot find it (tesseract_path). The
cloud service’s other options, apart from the key, are on the Services
tab.
Remote access
QUILL can open files from a server, save to it, and copy to it, much as it works with files on your own computer. You can use FTP, SFTP, HTTPS, WebDAV, and Amazon S3 (or any S3-compatible service). Every remote action is something you choose, QUILL tells you what is happening, and nothing is written to disk before you confirm. The commands are on File > Open from Remote:
- Open from Remote… lists every site you have saved,
lets you look around a folder on the server, and downloads the file you
choose. QUILL tells you the host and the expected size, saves the
download to a temporary file, and opens it in a normal tab whose title
ends with
(from site:path). The document is read-only until you save it back with Save Copy to Remote… or copy it to your own computer. - Save to Remote writes the current document to a path you choose on one of your saved sites, and keeps a tilde backup next to the original.
- Save Copy to Remote… writes a copy to the server and leaves your local file as it is.
- Manage Remote Sites… adds, edits and deletes saved sites for all five kinds of server. Each site’s password goes into Windows Credential Manager when it is available, or otherwise into a file protected by Windows (DPAPI). On a Mac, the Keychain is used.
All remote traffic uses a verified TLS context, a checked and encrypted connection. Cloud addresses (S3, HTTPS, and WebDAV over HTTPS) must use HTTPS. FTP is allowed because you chose it, usually for a computer on your own network or an older server. Every remote connection is listed in QUILL’s record of the places it connects to, and file listings from S3 and WebDAV servers are read in a way that a booby-trapped listing cannot take advantage of.
These commands have no keys of their own out of the box. Reach them
from the menu or the Command Palette (Ctrl+Shift+P), or
give them keys in the Keymap Editor.
Editing a file over SSH
If you look after a Linux server, a Raspberry Pi or a web host, you can edit its files over SSH as though they were on your own computer. The commands are on File > Open over SSH.
- Choose File > Open over SSH > Quick Connect…. The Connect to SSH Server window opens.
- Fill in Host or IP address, Port (22 unless your server says otherwise) and Username.
- Choose how you sign in under Authentication:
Password, Private key file or
SSH agent. For a password, type it in Password
/ key passphrase. For a key, type its path, or press
Browse… to find it. OpenSSH, PEM and PuTTY
(
.ppk) keys all work. If your key has a passphrase, type that in the same box. - Press Connect. QUILL says “Connecting to” and the server’s name, and then opens the Open Remote File window on your home folder.
- Arrow through the list. Folders say “dir” in front of their names. Press Enter on a folder to go into it, or on .. (parent directory) to go back up. Press Enter on the file you want, or choose Open.
The file opens in a normal tab, and the status bar says that saving
uploads it back. Press Ctrl+S as usual, and QUILL sends
your changes to the server, keeps a backup copy of the old version next
to it with a tilde on the end of its name, and keeps the line endings
the file already had.
If you connect to the same server often, save it once in File > Open over SSH > Site Manager…. The SSH Site Manager window lists your Saved sites, with New, Edit and Delete buttons beside the list. Pick a site and press Connect. A saved site never keeps your password: QUILL asks for it each time you connect.
QUILL is careful about which servers it trusts. It only connects to a server whose identity your computer already knows, from the same list OpenSSH uses, or one you have already told QUILL to trust. A server it has never seen is turned away, so a server pretending to be yours cannot slip in. If you really do want QUILL to accept a new server the first time it sees it, turn on Trust SSH hosts on first connection on the Administration page of Settings. Leave it off unless you have a reason.
GitHub remote files
QUILL can browse GitHub repositories, open files from them and save your changes back, without Git, the GitHub CLI or GitHub Desktop installed.
Getting started with GitHub
The first time you use a GitHub feature, QUILL asks you to confirm that it may connect to GitHub. You are asked once, and QUILL remembers your answer.
You do not need a GitHub account to browse public repositories. For private repositories, and for anything that changes GitHub, you need a Personal Access Token (PAT).
Creating a Personal Access Token
- Go to github.com and sign in.
- Open Settings > Developer settings > Personal access tokens > Tokens (classic).
- Choose Generate new token.
- Give it a name such as “QUILL” and select the
reposcope (orpublic_repoif you only need public repositories). - Copy the token. You will only see it once.
QUILL keeps your token safely in Windows Credential Manager. It is never saved in a text file.
Managing your GitHub account
Use File > Open from Remote > Manage GitHub Accounts… to:
- See which GitHub account you are signed in as.
- Add or replace a token.
- Sign out and clear your stored token.
If the GitHub commands are missing
GitHub access is the feature called GitHub Remote Access
(core.github_remote). If you can’t find it, open
File > Open from Remote and check whether the GitHub
items are there. If PyGithub is not installed, QUILL shows a message
explaining how to install it: pip install "quill[github]".
The GitHub commands are also unavailable in Safe Mode.
Opening and saving GitHub files
The repository browser
Open File > Open from Remote > GitHub Repository…. The browser has these parts:
- Account shows your GitHub username, or “Anonymous” if no token is stored.
- Repository: type an owner/repo name such as
microsoft/vscodeand press Enter or choose Load. - Branch or tag chooses which version of the repository to browse. It starts on the repository’s default branch.
- Current path shows where you are in the folder tree.
- File list lists folders and files, folders first.
- Status shows progress messages and item counts.
To move around:
- Press Enter on a folder to open it.
- Press Enter on a file to open it (the same as choosing Open File).
- Press Backspace to go up one level.
- Press
F5to refresh the current folder. - Tab through the buttons: Open File, Go Up, Refresh, Copy URL, Cancel.
Opening a file from its address
If you have the web address of a file on GitHub, perhaps from a
colleague, use File > Open from Remote > GitHub File
URL…. Paste an address like
https://github.com/owner/repo/blob/branch/path/to/file and
press Enter. QUILL fetches the file directly.
GitHub’s file service only handles files up to 1 MB. A larger file has to be downloaded by hand from github.com.
Saving back to GitHub
When you have opened a file from GitHub and made changes, use File > Open from Remote > Save to GitHub…. QUILL asks for a commit message. Type a short description of your changes and press Enter. QUILL commits your changes to the same repository, branch and file path.
- You need a token with permission to write (
reposcope). - If the file changed on GitHub after you opened it, QUILL tells you to refresh and try again.
- Pressing Save never does this for you. You choose Save to GitHub each time.
The GitHub Items viewer
File > Open from Remote > GitHub Items… opens a viewer for a repository’s issues, pull requests, branches, commits, tags, releases, workflows and workflow runs. It is the same kind of overview the GitHub website gives you, made for the keyboard and a screen reader. It owes a great deal to GHManage, Kelly Ford’s open-source GitHub browser for screen-reader users, which QUILL has followed from the start. QUILL adds its own touches: pull request and branch differences are read through the same engine as Compare Documents instead of as a raw patch, and the Quick filter stays quiet while you type.
You can browse without signing in. Signing in adds the Batch… menu and the Actions… menu, for things like new issues and pull requests, merging, deleting branches, running workflows and replying to comments. Your pins, favorites and column choices are saved on your own computer only.
Loading a repository
Type a repository as owner/repo, paste a
github.com address, or paste a git@github.com:
remote, and press Load. QUILL turns any of those into
owner/repo for you. If the document you are editing came
from GitHub, or lives in a git folder whose origin remote
points at GitHub, the repository is already filled in.
- Pinned… opens a menu of your pinned repositories. Choose one to load it straight away, or pin or unpin the repository you have loaded. It is your own short list for the few repositories you really work in. It is separate from anything GitHub keeps and never synced anywhere.
- Favorites. Press
Ctrl+Don any row (an issue, a pull request, a branch, a release) to bookmark it. The Favorites… button lists every bookmark across every repository. Choose one to open it in your browser. Favorites are kept between sessions. - View Upstream. When the repository you load is a fork, the View Upstream button becomes available. Press it to load the repository it was forked from, just as if you had typed its name. The button stays unavailable for a repository that is not a fork, or, rarely, for a fork whose parent GitHub cannot find.
Views and the list
Pick a View: Issues & PRs (issues and pull requests together), Branches, Commits, Tags, Releases, Workflows or Workflow Runs. The list shows one row per item, and the Details box below shows the full text of the selected row. In Issues & PRs you can also filter by Show (Both, Issues, PRs) and State (Open, Closed, All), and Sort by number, title, last updated or number of comments.
- List mode. There are two ways to read the list.
Quick shows short cells as they appear in the columns.
Full says each cell as
field: value(for examplenumber: 208, type: ISSUE, state: OPEN, title: Fix the thing), so your screen reader reads a line that explains itself instead of bare values. Switch with the List mode choice, or pressMin the list. - Columns… lists every field for the current view as a checkbox. Uncheck the ones you don’t need (at least one always stays). Your choice is remembered for each view.
- View More loads the next page of results.
Searching and filtering
- Search with GitHub’s own syntax. Press
Ctrl+F(or Tab to the Search box), type any GitHub search, such aslabel:bug is:open crash,author:alice is:prorcreated:>2026-01-01 no:assignee, and press Enter. The results replace the Issues & PRs list, limited to the loaded repository. Clear the box and press Enter to get the normal list back. Loading another repository also clears the search. - Quick filter.
Ctrl+Shift+Fmoves to the Quick filter box, next to Search. Instead of asking GitHub, it narrows the list you already have, as you type. Nothing goes over the network, so it is instant even on a slow connection. It never moves your focus while you type, and it doesn’t announce a count after every letter, which would talk over your screen reader’s own typing echo. QUILL only says the count when a real fetch finishes. Press Escape in the box to clear it. Switching views or loading another repository clears it too.
Reading issues, pull requests and comments
When you select an issue or pull request, the details show its text
and then load the comments. Press Alt+N for the next
comment and Alt+P for the previous one. QUILL selects and
scrolls to each and says “Comment N of M” (and “first” or “last” at
either end).
AI thread summaries. Select an issue or pull request and press Summarize. QUILL’s AI boils the whole discussion, text and comments, down to a short summary in plain prose: what it is about, where it stands, open questions and the next step. It goes at the top of the details and is read out. It uses the same AI connection and consent questions as every other AI feature in QUILL. If AI is not set up, Summarize offers to set it up instead of failing quietly.
Pull request diffs and branch comparisons
- Pull request diffs. Select a pull request and press
Diff…. A list of its changed files opens, each row
reading
status: filename +added -removed. Select a file to hear its changes through the same engine as Compare Documents, for example “Difference 2 of 5. Text changed at line 41”, with both sides labeled (main:andthis PR:) and the changed words described. A new file reads as its content, a deleted file says so plainly, and a binary or very large file falls back to its change counts and GitHub’s patch text. - Compare two branches. In the
Branches view, select a branch and press
Compare… or
Ctrl+Shift+B. QUILL asks for the base branch, then the branch to compare with it (the row you selected fills in the second question). It tells you how far ahead and behind the two branches are and lists every commit between them. The Changed Files tab walks each file’s differences the same way Diff… does. Comparing only reads, so it works without signing in.
Workflows
Switch to the Workflows view to see the repository’s
workflow definitions, the .yml files themselves. The
Workflow Runs view below them shows run history. Select
a workflow and press Enter, or use Actions… > Run “name” on
Branch…, to run it: QUILL asks for a branch, confirms, and
tells you whether GitHub accepted the run. You need to be signed in. If
the workflow does not accept manual runs, QUILL shows GitHub’s own
explanation.
Batch operations
The list lets you select several rows: hold Shift or Ctrl to select issues or pull requests, then press Batch… and choose Close, Reopen or Add label. You must be signed in, because browsing without an account only ever reads. A confirmation names the exact action and the exact item numbers, and nothing changes on GitHub until you confirm. If some items fail, QUILL tells you which, and the rest still go through.
Keys in the Items viewer
- Enter on a row opens it in your browser. On a Branch row, Enter shows that branch’s commits. On a Workflow row, Enter runs it on a branch you choose.
- Backspace in the Commits view (reached with Enter on a branch) goes back to the branch list.
Ctrl+Rrefreshes the current view.Ctrl+Oopens the selected item in your browser.Ctrl+Ggoes to an issue or pull request by number (in the Issues & PRs view).Ctrl+Fmoves to the GitHub search box, andCtrl+Shift+Fto the Quick filter box.Ctrl+Shift+Bcompares two branches (Branches view).Ctrl+Dadds the selected row to your favorites.
The Items viewer follows the same rules as the other GitHub commands: it is off in Safe Mode, asks for your consent the first time, and works without an account for public repositories (GitHub allows fewer requests then) or with your stored token for private ones.
Doing more from the Items viewer
When you are signed in, the Actions… button opens a menu that changes with what you are looking at:
- In Issues & PRs: New Issue… and New Pull Request… ask for a title (and, for a pull request, the head and base branches) and an optional description. If exactly one unmerged pull request is selected, Merge Pull Request #N… appears too. Merging changes the target branch for everyone, so you confirm it by typing the pull request number again, not just by pressing Yes.
- With comments loaded: Reply to Thread… posts a new
comment. (GitHub’s comments are not threaded, so a reply is simply
another comment in the same conversation.) Once you have used
Alt+NorAlt+Pto land on a comment, Edit This Comment… and Delete This Comment… appear as well. GitHub only lets you edit or delete your own comments, so trying it on someone else’s brings back GitHub’s permission error. To delete, you type “delete” to confirm. - In Branches: select one branch and Delete Branch ‘name’… appears. Type the branch name again to confirm. It cannot be undone from QUILL. Compare… is here too, and needs no sign-in.
- In Workflows: select one workflow and Run “name” on Branch… appears, the same as pressing Enter.
- In Workflow Runs: select one run and Re-run Workflow and View Artifacts… both appear.
All of these need you to be signed in. Without an account, the viewer only reads.
Downloading workflow run artifacts
Select a workflow run and choose Actions… > View Artifacts… to see that run’s build artifacts, each with its size and whether GitHub has already let it expire (an expired artifact can’t be downloaded). From there:
- Download Selected… downloads the highlighted artifact, and Download All… downloads every artifact in the run. Both ask you to choose a folder first.
- If a file with that name is already in the folder, QUILL asks before replacing it.
- A progress window with a Cancel button follows the download. Cancelling stops after the artifact that is downloading at the moment.
- Refresh fetches the list again, which helps while a run is still producing artifacts, and Open Run in Browser takes you to the run’s page on GitHub.
A note on your token: GitHub hands the actual download to a different, short-lived address (usually on Azure Blob Storage). QUILL makes that second request without your token, so your token is only ever sent to github.com.
Managing repositories
These commands are on Tools > Git and GitHub > GitHub. They let you do things you would otherwise open a browser for. All of them need you to be signed in. If you are not, QUILL offers to sign you in right there.
Repository administration
- Create Repository… asks for a name, a description, private or public, and an optional organization. Right after creating it, QUILL offers to set up a local folder synced to the new repository in one step, using the same folder sync as Sync Folder with GitHub (QUILL Sync). Starting a new project never means leaving QUILL.
- Fork Repository… forks into your account or an organization you choose, and offers to sync it locally afterwards in the same way.
- Rename Repository… renames it. GitHub sends the old
address on to the new one, but anything elsewhere that has the old name
written into it will need updating. You confirm by typing the
repository’s current
owner/reponame again. - Change Visibility… switches a repository between private and public. QUILL tells you which it is now before asking. Making a repository public adds a warning line, because its whole history becomes visible. You confirm by typing the repository name again.
- Change Default Branch… loads the branches and lets you pick the new default from a simple list.
- Configure Branch Protection… is a short wizard. Pick a branch, then set the required approving reviews, required status checks, and whether the rules apply to administrators too. Or check “Remove all protection from this branch instead” to clear the rules.
- Delete Branch… lists the branches (never the default branch, so you cannot delete the one everything depends on by accident), then asks you to type the branch name again to confirm. It can’t be undone from inside QUILL.
- Commit Multiple Files… lets you pick one or more files on your computer, choose the branch and write a commit message. QUILL commits them all to GitHub together in one commit. This is different from Save to GitHub, which only commits the document you have open. Only plain text (UTF-8) files are supported.
The four riskiest actions, renaming, changing visibility, deleting a branch and (in the Items viewer) merging a pull request, all ask you to type the exact name or number instead of answering Yes or No. A stray press of Enter on one of these is much harder to put right than most things in QUILL.
All eight are in the Command Palette (Ctrl+Shift+P).
They have no keys out of the box. You can give any of them one in the
Keymap Editor (Tools > Customize and Support > Keymap
Editor…).
Organizations, releases, notifications and security alerts
Five more commands on Tools > Git and GitHub > GitHub:
- Browse Organization Repositories… lists the organizations your account belongs to, then that organization’s repositories. Choose one to open it in the GitHub Items viewer. This is for browsing only. QUILL does not manage organization teams or their permissions.
- Create Release… asks for a tag and an optional title, then either your own release notes or GitHub’s automatic notes (a summary of pull requests merged since the last release), and whether to save it as a draft or publish it straight away.
- Dispatch Workflow… runs a GitHub Actions workflow on a branch or tag you choose, the same as “Run workflow” on github.com. It is useful for workflows set up to be started by hand.
- Notifications… is a real inbox: every notification for your account, across every repository, not just the one you have loaded. Each tells you whether it is read or unread, which repository it is from and why you got it. Choosing one opens your GitHub notifications page and marks it read.
- Security Alerts… lists a repository’s open Dependabot alerts (severity, the package affected and a summary), so you can see what needs attention without opening a browser.
Codespaces and Copilot CLI
Four more commands on Tools > Git and GitHub >
GitHub use the gh command-line tool installed on
your own computer, instead of QUILL’s usual GitHub connection. If you
don’t have gh yet, see Downloading git and the GitHub CLI
elsewhere in this guide.
- Codespaces… lists your active Codespaces (name, repository and state). Select one for a menu to Stop or Delete it.
- Create Codespace… asks for a repository and an optional branch, then creates a Codespace. Codespaces use GitHub compute and storage minutes and may cost money. This is the one GitHub command in QUILL that says so, and it asks you to confirm, naming the cost, before it does anything.
- Ask Copilot for a Command… lets you describe in plain words what you want to do (for example, “undo my last commit”) and shows the command GitHub Copilot suggests.
- Explain a Command… asks for a git or
ghcommand you don’t recognize and shows Copilot’s plain explanation of what it does.
These four are new. They have been tested with a stand-in for
gh, but not yet with a real Codespaces repository or real
Copilot CLI access. If something looks wrong, please tell us through
Help > Get Help from Support.
Command-line launching
You can start QUILL from a command line, a script or a shortcut, and tell it which file to open and where to put the cursor. Most people never need this. It is handy when another tool, such as a search or a list of errors, hands you a file name and line number.
The command is quill.exe, the launcher that comes with
both the installed and the portable copy. During setup, the installer
offers an “Add Quill to PATH” option. Turn it on and quill
works from any Command Prompt or PowerShell window without the full
path. If you skipped that option, use the full path instead (usually
"%LOCALAPPDATA%\Programs\Quill for All\quill.exe" for an
install just for you). From a source checkout, the command is
python -m quill.
These are the options:
--help: show the command help and exit.--version: print QUILL’s version and exit without opening the window.--safe-mode: start with optional features switched off.--reset-profile: reset the feature profile store before starting.--diagnostics: start with diagnostics tracing on.--dump-stacks: write a thread-stack dump and exit.--line N: the line (counting from 1) for the first file you open.--column M: the column (counting from 1) for the first file you open.--goto FILE[:LINE[:COL]]: open a file at a line and column in one argument (both optional, counting from 1). It is the short form of--lineand--column, handy when a linter, a search result or a build error gives you afile:line:columnstring. Example:--goto main.kt:27:5.--diff LEFT RIGHT: open two files straight into compare mode, on the first difference, without opening each one by hand.--new-window: start a new copy of QUILL instead of handing the file to the one already running.--wait: when handing the file to a QUILL that is already running, wait until that QUILL closes.
Some examples:
quill --versionquill notes.md --line 40 --column 5quill --goto main.kt:27:5quill --diff old-draft.md new-draft.mdquill --new-window notes.md
What you learned, and where to go next
You can now open files, including ones that have moved, and save them in the format you need. You know what each kind of document gets in QUILL, what carries over when you convert, and how to convert one file or a whole folder. You can rescue a scanned PDF, work with files on a server or on GitHub, and start QUILL from a command line.
To practise with QUILL open, choose Help >
Tutorials… (Ctrl+Alt+F1) and try “Write and save
your first document” and “Open anything, save as anything”. On the
website, Rescue
a scanned PDF, From
document to published audiobook and GitHub
inside QUILL walk through the longer jobs.
Next, Chapter 4, Writing and editing, is where you start shaping the words themselves.
Chapter 4: Writing and editing
This chapter is about the work you do most: typing, fixing, moving text around and putting things in. It starts with the keys you already know from other Windows programs, then shows the extras QUILL adds, such as a tray of twelve clipboards, abbreviations that type for you, and an emoji picker that describes every emoji in words. Read the first few topics now. The rest will keep until you want them.
Writing and editing
Start with the commands you already know. They work in QUILL exactly as they do everywhere else:
Ctrl+Zto undoCtrl+Yto redoCtrl+X,Ctrl+CandCtrl+Vto cut, copy and pasteCtrl+Ato select everything
Once those feel at home, QUILL has more to offer. You can put text away in a numbered slot and paste it back with one chord, get back something you deleted and drop it somewhere else, and run any command twenty times in a row. Each has its own topic below.
Ending a line without a new paragraph (Shift+Enter)
Line Break (Shift+Enter) ends the line
without starting a new paragraph, the same key Word
uses. In Markdown a blank line between two lines makes two paragraphs,
while a line break makes two lines of one paragraph. Use it for an
address block, a verse, or a run of short lines that should sit close
together.
QUILL writes the break in the style set in Settings >
Editing > Markdown line break style
(markdown_hard_break_style), and says which one it used.
The default is a backslash at the end of the line. The
other style, two spaces at the end of the line, cannot be seen on
screen, is not spoken by a screen reader, and is often removed by other
programs when they save. QUILL reads both styles, so a document written
elsewhere with two spaces still shows its breaks correctly here.
QUILL Lite has the same command on Edit > Insert > Line Break, on the same key.
The Edit menu
The Edit menu holds the commands you use while writing. The standard clipboard commands come first:
- Undo
- Redo
- Cut
- Copy
- Paste
- Paste Text Only (
Ctrl+Shift+V), which pastes the words on the clipboard and leaves behind any fonts, colours or links that came with them. If something is selected, the pasted text replaces it. - Copy With Attribution
(
Alt+Shift+C) - Select All
Magic Paste (press the QUILL key, then
Shift+V) looks at what is on the clipboard before it
pastes, and tells you what it found: plain text, a web address,
Markdown, HTML or an image. Then it offers the ways that kind of thing
can go in. A web address can go in as a Markdown link, Markdown can keep
its formatting, HTML can come in as clean text or exactly as it is, and
an image can go in as a picture reference. Plain text is always one of
the choices. Arrow to the one you want and press
Paste.
After those come the commands that know about selection and position:
- Find…, Replace…, Find Next, Find Previous and Find All Matches. The Replace dialog has a Replace All button, so bulk replacement happens in the same place.
- Word Prediction… opens inline word and tag
suggestions (
Ctrl+.). - Extend Selection Mode turns selection growth into a mode of its own.
- The Selection submenu: Select Word, Select Line, Select Paragraph, Select Block, Select to Start or End of Line, Select to Start or End of Document, and the mark commands: Set Temporary Mark, Jump to Previous Mark, Swap Cursor and Mark and List Recent Marks. Selecting text, later in this chapter, has the keys.
- Search Tools, with Count Occurrences, Multi Replace and the regular expression tools (Chapter 5 and Chapter 6 cover them).
- Paste HTML as Markdown turns rich HTML from the clipboard into Markdown as it pastes.
- Paste Markdown as HTML does the opposite. It turns Markdown on the clipboard into a clean piece of HTML, using the same renderer as the live preview and HTML export, and inserts it at the cursor. It has no key at first; give it one in the Keymap Editor.
- Follow Link (
Ctrl+Enter), on the Navigate menu, opens the link under the caret. Adding a link is on the Insert menu. - The delete group, on Format > Line: Delete to Line Start, Delete to Line End, Delete to Document Start, Delete to Document End and Delete Paragraph remove text measured from the cursor. Edit > Restore Deleted Text, below, brings the last three back.
Preferences… and Customize Menus… are with the rest of QUILL’s settings, under Tools > Customize and Support.
Find and Replace
By default Ctrl+F and Ctrl+H open the
standard Windows Find and Replace dialog. Turn on Settings >
Navigation and QUILL Key > Use QUILL’s own Find dialog and
they open QUILL’s own accessible Find dialog instead. It does everything
the Windows one does, and adds these:
- Extended mode (special characters). Choose
Extended in the Mode list to search for characters you cannot
type:
\nfor a line break,\tfor a tab,\xNNor\uNNNNby code, or\N{EM DASH}by name. The Insert Special Character… button offers forty named characters, such as the non-breaking space, curly quotes, the zero-width space and the soft hyphen. Those invisible characters can quietly spoil a document, and now you can find them by name. Replacements understand the same codes, so “replace every non-breaking space with a plain space” takes two fields. - A spoken match count as you type. Pause for a moment and QUILL says “17 matches”, so you know the search is right before you go.
- Peek navigation.
Ctrl+DownandCtrl+Upstep through the matches while you stay in the search field. Each step speaks the match in its sentence and selects it in the editor, and you can keep typing at any moment. Look around first, then press Enter when the search is right. - Spoken match context. Each match is read as the sentence around it (“line 40: …the quick brown fox…”), not just a position. QUILL always tells you when the search wraps past the end of the document.
- A Direction group with a name. The Up and Down choice is a labelled group, so your screen reader says “Direction” when you reach it.
- One dialog, always.
Ctrl+Fwhile it is open takes you back to the search field.Ctrl+Hswitches it to Replace without opening another window.Ctrl+Ljumps back to the search field from anywhere in the dialog. Escape closes it and returns you to your text. Count tells you how many matches there are without moving anywhere.
The setting is off when QUILL is installed, while the dialog is tested with every screen reader. The Windows dialog is unchanged, and you can switch back at any time. For now this dialog searches the current document only. Searching folders or the Vault from it will come later.
Chapter 6, Moving around and finding things, has much more on searching.
Selecting text
You can select the usual way, holding Shift while you move. QUILL also gives you ways to select a whole unit at once, to mark where a selection starts and finish it later, and to leave yourself marks to jump back to.
Anchor selection with F8
With anchor selection you drop an invisible anchor, move anywhere you like, and then select everything between the anchor and the cursor.
| Key | Command | What it does |
|---|---|---|
F8 |
Start selection | Sets an invisible anchor at the cursor. |
Ctrl+Alt+F8 |
Toggle selection marker | Drops the anchor without moving the cursor, or picks it back up if you change your mind. |
Shift+F8 |
Complete selection | Selects from the anchor to the cursor and says how much. |
Ctrl+Shift+F8 |
Reselect | Brings back the last selection you made. |
Alt+Shift+F8 |
Go to start of selection | Moves to the start of the selection without changing it. |
Ctrl+F8 |
Copy all | Copies the whole document. |
Ctrl+Shift+A |
Unselect all | Drops the selection, leaving the cursor where it is. |
Alt+F8 |
Read all | Reads the document from the beginning. |
Selecting by structure
| Key | Command | What it does |
|---|---|---|
Ctrl+Shift+W |
Select word | Selects the word the cursor is in. |
Ctrl+Space |
Select sentence | Selects the sentence the cursor is in. |
Ctrl+Alt+Space |
Select token | Selects the run of characters the cursor is in, whatever kind they
are. On a word it is the same as Select Word; its real use is a run of
punctuation, such as the :: in a path, or the spaces at the
start of a line. |
Ctrl+Shift+E |
Select line | Selects the whole line. |
Ctrl+Shift+H |
Select paragraph | Selects the paragraph at the cursor and says its size and word count. |
Ctrl+Alt+Shift+B |
Select block | Selects the indented block at the cursor. |
Ctrl+Shift+X |
Expand selection | Grows the selection one step: line, then paragraph, then block, then the whole document. |
Ctrl+Alt+Shift+X |
Shrink selection | Undoes the last expand step. |
Alt+Shift+F5 |
Select section | Selects the section at the cursor with all its subsections, and says how many sections and lines that is. Cut and paste then move it anywhere. |
The ordinary selection keys are on the Edit >
Selection menu too, so you can find them there if you forget:
Select to Start of Line (Shift+Home),
Select to End of Line (Shift+End),
Select to Start of Document
(Ctrl+Shift+Home) and Select to End of
Document (Ctrl+Shift+End).
Once something is selected, Duplicate Selection
(Ctrl+Alt+Q) puts a copy of it straight after itself, which
saves a copy and a paste when you are building a list of similar lines.
With nothing selected, it duplicates the line you are on.
You can also run any of these from the Command Palette, and change their keys in the Keymap Editor.
Extend Selection Mode
In Extend Selection Mode, the keys that normally move the cursor grow
the selection instead. Turn it on and off from the Selection menu, or
with Alt+Shift+F9. You can change the key in the Keymap
Editor. While it is on, EXT shows in the status
bar.
The mark ring
The mark ring is a short stack of temporary places to jump back to while you work.
| Key | Command | What it does |
|---|---|---|
Ctrl+Shift+M |
Set Temporary Mark | Puts a temporary mark at the cursor. |
Ctrl+M |
Jump to Previous Mark | Jumps to the latest mark and takes it off the ring. |
Ctrl+Alt+X |
Swap Cursor and Mark | Swaps the cursor with the top mark. |
Alt+M |
List Recent Marks | Shows every mark with its line and column. |
Named marks and the review buffer
Named marks last for the whole session. Find them on Edit > Selection:
- Set Named Mark gives the cursor position a name and remembers it, and tells you the line and column.
- Jump to Named Mark shows a list of your marks with their positions. Choose one and you are there.
- Review Buffer opens the current selection in a
read-only window, so you can read through it with your screen reader
without any risk of changing it. You need a selection first. Its key is
Alt+Shift+U.
Set Named Mark and Jump to Named Mark have no keys at first. Give them keys in the Keymap Editor, or use the Selection menu.
Getting text back, and doing it again
Restore Deleted Text
Undo (Ctrl+Z) puts your last edit back exactly where it
was. Sometimes you want something else: you deleted a sentence, and now
you want to put it somewhere else. Edit > Restore
Deleted Text… (Ctrl+Alt+Shift+Z) remembers the
last three pieces of text you removed with QUILL’s delete commands
(delete to start or end of line, delete to start or end of document, and
delete paragraph). Pick one from the list and it goes in at the
cursor.
- The list is newest first, with a short preview and the length of each, so you can tell them apart by ear.
- If only one deletion is remembered, it comes straight back with no list.
- To change its key, search for “Restore Deleted Text” in the Keymap Editor.
Fans of the classic WordPerfect Editor will know this as its “Cancel” buffer, except that here you choose where the text lands.
Repeat Next Command
When you need to do the same thing many times, such as moving down twenty lines, deleting ten words, typing forty dashes or replaying a macro, you do not have to press the key over and over. Choose Edit > Repeat Next Command…, type how many times, and the next command you run happens that many times. Then the count clears itself and editing carries on as normal.
- It works with nearly any command, including moving, deleting, inserting and a recorded macro.
- The most it will repeat is 1000 times, so a slip of the finger cannot run away with you.
- It has no key at first. If you use it often, give it one in the Keymap Editor (Tools > Customize and Support > Keymap Editor…; search for “Repeat Next Command”).
This is the “Repeat” command from the classic WordPerfect Editor.
Copy Tray
The Copy Tray is twelve clipboards of your own, each with a number. You put text in a slot on purpose, and it stays there until you replace it or clear it, even after you close and reopen QUILL. The Windows clipboard is shared by every program and changes every time you copy. Copy Tray slots belong to QUILL alone.
Pasting and copying with a slot
To paste from a slot, hold Ctrl+Alt+Shift and
press a number key.
| Key | What happens |
|---|---|
Ctrl+Alt+Shift+1 through
Ctrl+Alt+Shift+9 |
Paste from slots 1 to 9 |
Ctrl+Alt+Shift+0 |
Paste from slot 10 |
Ctrl+Alt+Shift+- |
Paste from slot 11 |
Ctrl+Alt+Shift+= |
Paste from slot 12 |
To copy into a slot, press the QUILL key and then the same key with Shift:
| Key | What happens |
|---|---|
Ctrl+Shift+Grave, Shift+1 through
Shift+9 |
Copy the selection to slots 1 to 9 |
Ctrl+Shift+Grave, Shift+0 |
Copy the selection to slot 10 |
Ctrl+Shift+Grave, Shift+- |
Copy the selection to slot 11 |
Ctrl+Shift+Grave, Shift+= |
Copy the selection to slot 12 |
A paste chord does more if you press it quickly more than once:
- Press once to paste the slot at the cursor.
- Press twice to peek. QUILL reads the slot to you without pasting it, so you can check what is there first.
- Press three times to open the Copy Tray dialog on that slot.
QUILLBee’s tip: Can’t remember what is in slot 3? Press
Ctrl+Alt+Shift+3twice, quickly. QUILL reads it to you and pastes nothing.
Copy to Next Empty Slot, Copy to Tray Slot and Search Tray Slots
Edit > Copy Tray > Copy to Next Empty Slot
(Ctrl+Alt+Y) copies the selection to the first slot, from 1
to 12, that is empty and not pinned, and tells you which: “Copied to
slot 4 (first empty).” If all twelve slots are full, QUILL tells you so
and overwrites nothing.
Edit > Copy Tray > Copy to Tray Slot…
(Alt+Shift+Y) lets you choose the slot yourself, from a
list. Each row says what is in that slot now, its label if it has one,
and whether it is pinned, so you know what you would be replacing before
you replace it. Arrow to the slot and press Enter. QUILL says “Copied to
tray slot 3”, or “Replaced tray slot 3” if something was there
already.
Edit > Copy Tray > Search Tray Slots… opens a small search box. Type a word or phrase and QUILL searches the text and labels of every slot and reads you the matches. Press the slot’s number to paste it, or Escape to cancel.
Pinned slots
In the Copy Tray dialog you can pin any slot. A pinned slot:
- Is never filled by Copy to Next Empty Slot.
- Is read with “pinned” in front: “Slot 1 (pinned, signature)”.
- Stays pinned after a restart (the pin is saved in
copy_tray.json).
To pin or unpin a slot, open the Copy Tray dialog
(Ctrl+Alt+V), choose the slot, and press the Pin/Unpin
button.
The Copy Tray dialog
Open it with Ctrl+Alt+V, or Edit > Copy Tray
> Open Copy Tray…. It lists all twelve slots. Each row has
the slot number, a label if you gave it one, and a preview of the text.
Move with the arrow keys. The buttons are:
- Paste puts the chosen slot’s text at the cursor. Enter or a double-click on a row does the same.
- Paste from Clipboard stores what is on the Windows clipboard in the chosen slot.
- Pin / Unpin pins or unpins the chosen slot.
- Save Changes keeps edits you typed straight into the content area.
- Clear Slot empties the chosen slot.
- Close closes without pasting.
To empty every slot at once, choose Edit > Copy Tray >
Clear All Tray Slots (Ctrl+Alt+Shift+Y). QUILL
asks first and tells you how many slots have something in them, with
No already chosen, because this cannot be undone. If
the tray is already empty, it just says so.
Other ways to reach the tray
- The Paste from Tray submenu. Edit > Copy Tray > Paste from Tray lists every slot that has something in it, with its label and a preview: “1 signature, Hi, I wanted to follow…”. Your screen reader reads both as you move through the submenu.
- The status bar. The
Slots: X/12cell shows how many of the twelve slots are in use. Click it to open the Copy Tray dialog. If you cannot find it, add it in Tools > Customize and Support > Status Bar Layout…. - The system tray. QUILL’s icon in the system tray has a Copy Tray submenu listing every slot in use. Choose one to paste it into the active editor, without bringing QUILL to the front first.
Copy Tray tips
- Put a signature, a disclaimer or a heading you use all the time in slot 1 and pin it. One chord pastes it anywhere, and Copy to Next Empty Slot will never overwrite it.
- Label your slots for a research session: slot 1 “intro quote”, slot 2 “methodology note”, slot 3 “source URL”. Copy one piece into each as you read, then paste them in order as you write.
- Slots survive restarts, so you can keep a small set of pieces you reach for every day.
- You can change every Copy Tray key in the Keymap Editor (Tools > Customize and Support > Keymap Editor…).
Clip Library
The twelve Copy Tray slots are for things you chose to keep. The Clip Library, on the Edit menu, is a second, bigger store: a searchable history of up to 200 clips.
- Edit > Keep Selection in Clip Library
(
Ctrl+Alt+M) remembers the current selection. Keeping the same text again from the same place does nothing, because it is already there. - Edit > Open Clip Library…
(
Ctrl+Alt+Shift+M) opens the library. Search as you type, Favorite a clip so it is never pushed out as the history fills up, Remove one you no longer need, Copy to Clipboard, or Promote to Copy Tray… to give a clip a labelled slot of its own. - Rename… gives a clip a short name, which is much easier to find later than its first few words. Leave the name empty to go back to a preview of the text.
- Combine Marked… joins several clips into one piece of text. Mark them with Ctrl or Shift (plain arrow keys still choose just one), choose what goes between them (space, comma, full stop, vertical bar, new line or blank line), and the joined text goes on the clipboard in the order the clips are listed.
- Save as Abbreviation… turns a clip into an abbreviation. QUILL and Quill Inkwell share one abbreviation library, so a clip saved this way can be typed in every program, not just here.
Automatic capture. Turn on Settings > Editing > “Automatically keep everything you copy in the Clip Library” (off at first) and every copy you make inside QUILL is kept for you, whether you used the menu, its key or a right-click Copy. It only sees copies made in QUILL, never the system clipboard in general, and never anything you copied before you turned it on.
Format. What Copy to Clipboard puts on the clipboard, and what Send as Email and Copy as Email Body send, both follow one setting: Settings > Editing > “Kept and sent content format” (plain text, Markdown or HTML). Change it once and both follow.
What the Clip Library is not. It remembers what you keep or copy inside QUILL. It does not watch the system clipboard, and it keeps no history of what you copy in other programs. For a clipboard history across everything you do, use a clipboard manager alongside QUILL. The two do different jobs.
Copy With Source
Alt+Shift+C copies the selection and adds a note of
where it came from in the document. With nothing selected, QUILL copies
the current line. This is handy for notes, reviews and gathering
evidence.
In a Markdown document you can choose what goes on the clipboard, under Settings > Editing > Markdown clipboard format. Plain text only (the default) copies the Markdown just as you wrote it. HTML or Rich text adds a formatted copy as well, so when you paste into Word or an email the headings, bold and links arrive formatted. Notepad and other plain-text programs still get the plain text.
Links
Ctrl+K adds a link written the right way for the
document’s format. Ctrl+Enter follows the link under the
caret. In Markdown and HTML this makes citations and cross-references
much less work.
The Insert menu
The Insert menu puts structured content at the cursor. QUILL treats Markdown and HTML as everyday writing formats, so the tag pickers sit here next to the other inserts.
- Insert Link… adds a link in the right form for the document’s format.
- The Heading submenu: Heading 1 through 6, Decrease Level and Increase Level, and Style Headings… (font, size and alignment) for the current level or all levels.
- Body Text (
Ctrl+Alt+0). - The List submenu: Bullet,
Numbered, Task, List
Manager… and Structured List Studio…
(
Ctrl+Alt+Shift+L). - Insert Code Block, Insert Footnote, Insert Table…, Insert Block Quote, Insert Horizontal Rule, Insert HTML Tag… and Insert Markdown Tag….
- Date and Time (
F5) and the Date and Time submenu. - Insert Snippet… and Manage Snippets… for reusable text with blanks to fill in.
- Special Character…
(
Ctrl+Shift+F2). - Line Break (
Shift+Enter), described under Writing and editing at the start of this chapter. - Insert Emoji… (
Alt+.). - File Content… inserts the contents of another file at the cursor.
- Insert Equation… (
Ctrl+Alt+=).
The topics below explain the ones that need more than a line.
Headings and lists
Heading N sets the level, it does not add one.
Ctrl+Alt+2 on a line that reads ### Notes
gives you ## Notes, not ## ### Notes. It works
from anywhere on the line, not just the start. With several lines
selected, it makes all of them headings in one change,
so a single Ctrl+Z puts them all back. Your screen reader
says “Heading 2” either way, so it is good to know QUILL gets this
right.
Body Text (Ctrl+Alt+0) is the bottom
rung of the Ctrl+Alt+1 to 6 heading ladder. It
takes the heading marker off and leaves the words.
Next Heading is Ctrl+Alt+H and
Previous Heading is Ctrl+Alt+Shift+H.
Ctrl+Alt+L opens the Outline Navigator,
the same key QUILL Lite uses for List Headings, so either habit works,
and Ctrl+Shift+O opens it too. AI
Thesaurus no longer has a key of its own; reach it from the AI
menu or the Command Palette. The plain Thesaurus keeps
Word’s Shift+F7.
Bullet lists are on Ctrl+Shift+L and numbered lists on
Ctrl+Shift+Grave, Shift+L.
Format-aware inserts
Block quote, horizontal rule, table and image write Markdown in a Markdown document and HTML in an HTML document. If the document’s format is not set yet (a new or plain document), QUILL asks “Markdown or HTML?” the first time, then remembers your answer for that document and stops asking.
Some have keys of their own:
- Insert Table is
Ctrl+Alt+T. - Insert Block Quote is the same command as
Quote Lines (
Ctrl+Shift+Q), because both wrote the same>in Markdown. Unquote Lines (Alt+Shift+., that is Alt, Shift and the period) takes the>off again. - Insert Horizontal Rule is
Ctrl+Alt+-.
You can change all of them in the Keymap Editor.
Insert Markdown Tag appears only in Markdown documents. In a plain or rich text document it is not on the menu at all, and if you press its key there, QUILL just says “Markdown tags are for Markdown documents.” Insert HTML Tag is the same idea for HTML, except that it stays on the menu, dimmed, in any document that is not HTML. Navigate > Set Document Language… changes what kind of document you are in.
Special Character (Ctrl+Shift+F2)
Special Character… opens a picker for the 357
characters a keyboard has no key for. Search by name (dash,
euro, acute, arrow) or by a word
people use even if Unicode does not (gbp,
copyright, eszett). Or clear the box and
browse one of fifteen groups: whitespace, dashes, quotes, invisibles,
typography, legal and reference marks, currency, maths and units,
fractions, superscripts and ordinals, arrows, accented letters (small
and capital), Greek, and punctuation from other languages.
Each row shows the character, its name and its code point, and a
description pane changes as you arrow. The search box is also
the code-point box: 2014, U+2014 and
d8212 all find the em dash, and a code point that is in no
group still works, so the picker reaches every character Unicode has.
When you insert one, QUILL tells you what it was, in Describe
Character’s words, because most of these characters cannot be seen on
the page.
QUILL Lite has the same picker on Edit > Insert > Special Character…. Both keys can be changed in the Keymap Editor.
Insert Equation (Ctrl+Alt+=)
Insert Equation… (Ctrl+Alt+=) asks for
a LaTeX or MathML equation in up to two steps.
- Type the formula in LaTeX, for example
E=mc^2or\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}, or paste a MathML fragment. - For LaTeX, choose whether it sits inline in the text
(
\(...\)) or as a block of its own ($$...$$).
If a LaTeX equation is already selected when you open Insert
Equation, QUILL takes off its delimiters and puts the bare formula in
the box for you. MathML (anything starting with <math)
goes in exactly as typed, with no second step. Browser Preview and HTML
export show equations using MathJax 3. Math Equations, later in this
guide, has the formula gallery, symbol abbreviations, exploring an
equation part by part, and Word export.
Word prediction and snippets
Word prediction and snippets are kept apart, so each has its own key.
- Press
Ctrl+.to open Word Prediction (also Edit > Word Prediction…). - Type, and matching words from your document, HTML tags and Markdown tags appear.
- Arrow to the one you want and press Enter to insert it.
To set up and look after snippets:
- Press
Ctrl+Shift+Grave, Sfor Insert Snippet. - Press
Ctrl+Shift+Grave, Shift+Sfor Manage Snippets (create, edit, delete, import, export, and starter packs). - Open More Preferences > Install Starter Snippet Packs for sample sets for everyday writing, developer work, and support and accessibility notes.
- In General Preferences, turn Word prediction and tag IntelliSense or Expand snippet triggers while typing on or off as you like.
Snippets can have blanks such as ${input:name},
${choice:a|b}, ${date}, ${time}
and ${cursor}.
Date and time
Date and Time (F5) types the time and
date at the caret and reads it back to you. It uses Notepad’s key and
Notepad’s layout (14:07 16/09/2026), and QUILL Lite’s too.
It is built into QUILL, so it works in Safe Mode as
well.
Insert > Date and Time is also a submenu. The
bundled Insert Tools Quillin
(com.quill.bundled.insert-tools) adds three items to
it:
- Insert Date puts today’s date at the cursor, in the
format
${date}uses. - Insert Time puts the current time at the cursor,
using
${time}. - Insert Date and Time puts both, with one space between them.
Those three are part of the Insert Tools Quillin, so they switch off with the rest of it, and in Safe Mode. If you turn the Quillin off, the submenu stays but its three items go. Turn it on or off in Preferences > Quillins, for example if you would rather use date and time snippets of your own.
Insert Emoji (Alt+.)
Insert > Insert Emoji… (Alt+.) opens
the Accessible Emoji Picker. It is for the opposite case from
Special Character…: you do not know the code, and you
want help finding the right one. You can browse or search all 3,781
standard emoji by name, keyword, symbol or a typed smiley like
:), and each has a real spoken description of what it looks
like. There is no grid of pictures anywhere in it. It is a category list
and a list of named results, like QUILL’s other browse-and-search
windows.
There are two ways to find an emoji.
Search (the box at the top) looks, in this order, for: the emoji itself if you paste or type one in; an old typed smiley like
:),:Dor<3; part of the official Unicode name or a keyword (for example “grin”, “dog” or “heart”); and last, part of the emoji’s description. So a half-remembered word like “melting” or “puddle” can still find the right one even when it is not a keyword.Category (the list on the left) follows Unicode’s own groups, largest first:
Category Emoji People & Body 2,261 Flags 270 Objects 264 Symbols 224 Travel & Places 218 Smileys & Emotion 169 Animals & Nature 159 Food & Drink 131 Activities 85 Clearing the search box takes you back to the category you chose last.
As you arrow through the results, the Description pane shows the emoji’s category and subgroup, its official name, its keywords, any old typed smiley, and one or two sentences about what it actually looks like: colours, shapes, expression and pose, not just its name again. Press Insert, or Enter on a result, to type the emoji at your cursor and close the picker. Cancel or Escape closes it without inserting anything.
Favorites and Recent sit above the nine Unicode categories:
- Favorites lists the emoji you have starred. Choose any emoji, from a category, a search or Recent, and press Add to Favorites. Once it is a favourite the button reads Remove from Favorites.
- Recent fills itself with the last 30 emoji you inserted, newest first.
Taking an emoji out of Favorites, or letting it drop off Recent, only changes those two lists. The emoji is still in the picker, under its category and in search, as before.
All 3,781 emoji, with their categories, keywords, typed smileys and descriptions, come in one file installed with QUILL. The picker never goes online, in Safe Mode or otherwise. The PRD’s Accessible Emoji Picker section explains how the catalogue is kept up to date.
The full list, with every description, is in Appendix C, Every emoji QUILL can insert.
Abbreviation Expansion
Abbreviation Expansion types longer text for you, like TextExpander.
You type a short trigger word followed by a space, full stop, comma or
other punctuation, and QUILL quietly replaces the trigger with the full
text. For example, type btw (with the space at the end)
and QUILL changes it to by the way .
It is off by default, so your text never changes as you type unless you asked for it. Turn it on when you want it; QUILL remembers your choice.
Turning it on and off
Any of these turns it on, and the same again turns it off:
- Press
Alt+Shift+A, or choose Insert > Toggle Abbreviation Expansion. - Click the ABR: On / ABR: Off cell in the status bar, if it is showing (add it in the status bar settings).
- Change Abbreviation expansion in Settings > Editing.
The built-in abbreviations
QUILL comes with fifteen abbreviations for common shorthand. You can edit or switch off any of them, and add your own.
| Abbreviation | Expansion |
|---|---|
afaik |
as far as I know |
afaict |
as far as I can tell |
asap |
as soon as possible |
atm |
at the moment |
btw |
by the way |
fwiw |
for what it’s worth |
imo |
in my opinion |
imho |
in my humble opinion |
irl |
in real life |
omw |
on my way |
tbh |
to be honest |
tbc |
to be confirmed |
tbd |
to be determined |
ttyl |
talk to you later |
wrt |
with regard to |
Managing your abbreviations
Open Insert > Manage Abbreviations…
(Ctrl+Shift+Grave, Shift+A) to add, edit and organise your
abbreviations. Each one has:
- Abbreviation: the short trigger word, such as
btw. - Expansion: the full text that replaces it, such as
by the way. - Description: an optional note for yourself.
- Case sensitive: when checked, only the exact capitals match. Otherwise any capitalisation of the trigger works.
- Enabled: switch one off without deleting it.
- Category: any word you like (Work, Personal, Email) to group the list. There is a category filter beside the search box, and abbreviations with no category are listed under Uncategorised.
- Expand after: which keys set it off. A space or punctuation (the default), a space only, punctuation only, or never. Never means it only expands from Quick Insert, which suits a long expansion you would not want to appear by accident.
- Speak: what your screen reader says when it expands: nothing, the abbreviation, or the expanded text. You set this for each one, because a short one usually needs no announcement and a long template sometimes does.
- Sound: follow the main sound setting, always play, or never play.
- Add a trailing space after punctuation: adds a
space after the punctuation that set it off, so
co.givesCompany,and notCompany ,. It makes no difference after a space, which already leaves one.
The Search box at the top of the manager filters the list as you type any part of a trigger or its expansion. Switched-off abbreviations show “(disabled)” after their name.
Import and Export read and write your library as a JSON file. Export saves the whole library. Import adds a file’s abbreviations to yours, skips any it already has, and tells you how many it added.
Other ways to use an abbreviation
- Expand now. Press
Ctrl+Shift+Grave, A(or Insert > Expand Abbreviation) to expand the word just before the cursor without typing a space or punctuation. Useful in the middle of a word or at the very end of a document. - Quick Insert. Insert > Quick Insert… opens a list of every switched-on abbreviation, with the ones you use most at the top and a preview of each expansion. Type a few letters, arrow down, press Enter, and the expansion goes in at the cursor. It is how you use an abbreviation you have not memorised, and the only way to reach one set to expand after Never. It has no key at first, but you can give it one in the keyboard settings, and it is in the Command Palette.
- New Abbreviation from Clipboard. Insert > New Abbreviation from Clipboard… opens a new abbreviation with the clipboard text already in the expansion, so all you add is the trigger. It is the quickest way to turn a signature, an address or a block of standard wording into an abbreviation.
Abbreviations in every program, with Quill Inkwell
Your abbreviations also work in other programs through Quill Inkwell, a small free companion app that sits in the system tray. It uses the very same library file as QUILL. Add an abbreviation here and it works in your browser; add one there and it works here. Open it from the QuillVille menu, and see Quill Inkwell’s own user guide for where it will and will not type.
Abbreviations for certain programs only. You can limit an abbreviation to named programs, such as a signature to your mail program or a code snippet to your code editor, by listing them in its Applications field. Leave the field empty, as it is at first, and it works everywhere. This only matters in Quill Inkwell, which types into whatever program you are in. Inside QUILL there is only one program, so the field has no effect there. If Inkwell cannot tell which program is in front, a limited abbreviation does not fire, so it never types into the wrong place.
Variables in expansions
An expansion can include these:
| Placeholder | Inserts |
|---|---|
${cursor} |
Puts the cursor here after expanding |
${date} |
Today’s date (for example June 11, 2026) |
${time} |
The current time (for example 02:30 PM) |
${clipboard} |
The text on the system clipboard |
${datetime} |
The date and time together |
${day} |
Day of the month |
${month} |
Month name |
${year} |
Four-digit year |
${username} |
Your Windows user name |
Fields that ask you something
A signature is the same every time. A letter or a bug report is the same except for a name, a date or a reference number. Put a field in the expansion and QUILL asks for it before inserting:
${field:Label}asks for a value with that label.${field:Label=something}offers a starting value you can keep or change.- The same label used twice is asked once and filled in everywhere, so a name in the greeting also appears in the sign-off.
${choice:Label|first reminder|second reminder|final notice}gives you a list to choose from instead of a box to type in. Use it whenever the answer is one of a few known ones: choosing is one arrow key, and you never have to spell “Second reminder” exactly right. The first option is the default.
A small form opens with one labelled control for each field, a box to
type in or a list to choose from, in the order they appear in the text.
Tab moves between them, Enter moves to the next one, Enter on the last
one accepts, and Escape cancels and leaves your text exactly as it was.
${cursor} still works alongside fields: the cursor lands
where the template puts it once your answers are in. Quill Inkwell shows
the same form, so a template works the same wherever you use it.
Timing and sound
- Multi-press window. How quickly you must press a key twice or three times to count as a double or triple press is set in Settings > Editing as Multi-press time window (ms). The default is 400 ms, and it can be anything from 100 to 1000 ms. Make it longer if you press keys slowly, or shorter if double presses happen by accident when you type fast.
- Sound. To hear a sound when an abbreviation
expands, turn on Play sound on abbreviation expansion
in Settings > Editing. You can point
Abbreviation expansion sound file at a
.wavfile, or leave it empty for the standard system beep.
Abbreviations from Quillins
Installed Quillins can add abbreviations of their own. You can switch
each one on or off on that Quillin’s own preferences page: open
Preferences (Ctrl+Comma) and go to the
Quillin by name. For the bundled Smart Insert Quillin, they are on its
Abbreviations tab. These are kept apart from your own
library and never saved into it, so removing a Quillin removes its
abbreviations too. Your own abbreviations always win over a Quillin’s.
If two Quillins use the same trigger, the one loaded first wins.
They work in other programs too, through Quill Inkwell,
so a Quillin full of medical abbreviations or company wording is useful
everywhere you type.
The bundled Smart Insert Quillin adds four abbreviations that expand as you type:
| Trigger | Inserts |
|---|---|
qbug |
A bug report template (Title, Build, Screen reader, Windows version, Steps, Expected, Actual, Notes) |
qmeet |
A meeting notes template with today’s date |
qlog |
A date and time stamp |
qtodo |
A three-item to-do checklist |
Only abbreviations with fixed text expand as you type. Ones that
build their text when used, such as Smart Insert’s qbrf, do
not fire from typing the word. Use the matching smart trigger
(=brftest()) or the Insert menu command instead.
Abbreviation tips
- Use
${cursor}to put the cursor inside a template. For example,sigexpanding toBest regards,${cursor}Jeffleaves the cursor just after the comma. - Use case-sensitive abbreviations sparingly. Most triggers are lower case, and you rarely need it.
- Abbreviations expand before snippets. If a word is both, the abbreviation wins.
- Export your library now and then, as a backup and to copy it to another computer.
Insert Automation
Insert Automation ties abbreviations, smart text triggers,
.LOG files and append anchors together, all from the
keyboard. Everything it does is announced and can be undone, and it only
acts on an exact match. Nothing runs in the background, and nothing
reads through your file unless you asked.
Smart Text Triggers
A smart text trigger is a short command that starts with
=, sits on a line by itself, and expands when you press
Enter. Because it starts with =, it cannot go off by
accident in the middle of a sentence.
The bundled Smart Insert Quillin comes with these:
| Trigger | Inserts |
|---|---|
=bug() |
A bug report template |
=meeting() |
Meeting notes with today’s date |
=journal() |
A journal entry with today’s date |
=todo() or =todo(5) |
A to-do checklist (5 items unless you give another number) |
=logentry() |
A time stamp at the cursor, in your Log Mode format |
=brftest() |
A predictable test document of several braille pages |
=rand(3,4) |
Three paragraphs of four readable sentences each |
How to use one. Type the trigger on a line by itself and press Enter. If it matches, QUILL replaces the whole line with the new text and tells you what it inserted. If it does not match, nothing happens and Enter works as usual.
Large inserts. If a trigger would produce more than a set amount of text (50 paragraphs at first), QUILL asks before inserting anything. Change the amount in More Preferences > Smart Insert > General tab.
Switching triggers on and off. Every trigger can be
switched on or off in More Preferences > Smart Insert >
Smart Triggers tab. A switched-off trigger’s
=name() text is simply left on the line as you typed
it.
Log files that stamp themselves
If the first line of a text file is .LOG, QUILL treats
it as a log with a time stamp for each entry, just as Notepad has for
decades.
When you open a .LOG file, QUILL:
- Finds
.LOGat the top of the file (within the first 4096 bytes). - Finds where the new entry belongs: a
QUILL-LOG-APPEND-HEREanchor near the bottom of the file, or the end of the document if there is none. - Puts in a fresh time stamp.
- Leaves the cursor just after it, so you can start typing.
- Says “Log timestamp inserted. Type your entry.”
QUILL never changes a read-only file. .LOG further down
a file does nothing on its own. A UTF-8 BOM before .LOG is
fine.
Time stamp format. Choose it in More Preferences > Smart Insert > Log Mode tab:
- Long date and time (the default):
Sunday, June 14, 2026 9:42 PM - Short:
06/14/2026 09:42 PM - ISO 8601:
2026-06-14T21:42:00 - Date only, Time only, or a custom
strftimepattern
For example, set Timestamp format to Custom and enter
%Y-%m-%d %H:%M to get 2026-06-14 21:42.
Append Anchors
Any file can have a QUILL-APPEND-HERE line near the
bottom. When QUILL adds something that belongs at the end of the file,
such as a log time stamp, a template or a braille test block, it puts
the new text just above the anchor and leaves the anchor where it is for
next time.
That gives you a fixed spot that keeps working. Footer notes, details or closing instructions stay below the anchor, and new text always lands above them.
A .LOG file can use the more specific
QUILL-LOG-APPEND-HERE anchor to keep log entries apart from
other added text.
To add an anchor, type
QUILL-APPEND-HERE on a line by itself near the bottom of
your file. That is all. QUILL finds it the next time it adds something
to that file.
Look Up, Thesaurus and the Dictionary
Press the Applications key (or
Shift+F10, or right-click) on any word and the menu has two
submenus named after that word.
- Thesaurus for “running” has the best replacements one key away, each further meaning as a submenu of its own, Opposites, Say Word Summary (what the thesaurus knows, spoken) and More in Thesaurus….
- Dictionary for “running” starts with Look Up “running”… and, when AI is on, goes on with the thirteen AI dictionary items described under the AI menu.
If you have selected a single word, the menus use that word instead of the one at the cursor.
Thesaurus (Shift+F7)
Thesaurus… (Shift+F7, Tools
> Writing and Language) opens a two-part window for the word
you are on, or asks you for one. It finds your word even when it is not
in its plain form. The thesaurus knows “run”, not “running”, and
“happy”, not “happier”, so QUILL works back to the plain word and tells
you: in the title (“running (as run)”) and on each meaning (“verb, from
run: sprinting, dashing, …”). It then gives each replacement back in the
form your sentence needs, with the same capitals: “sprinting” for
“running”, “More glad” for “Happier”, “sought” for “sought”.
You start in the Senses list, with the part of speech first, so type n for the nouns or v for the verbs. Tab moves to the words for the chosen meaning: replacements, then broader: and opposite: words, each labelled. Enter or Replace puts the chosen word in and drops the selection.
Say Word Summary (Ctrl+Alt+Shift+[)
reads you the plain word, its meanings for each part of speech, the
first few replacements and the opposites, without opening anything.
QUILL Lite has the same thesaurus.
Look Up Word (Alt+F10)
Look Up Word… (Alt+F10, Tools
> Writing and Language) is the dictionary without AI, in a
window QUILL Lite shares. You start in the Result, a
read-only box you arrow through: the word, then a labelled section for
each kind of answer. Below it, Words you can use lists
every synonym, opposite, related word and rhyme, each saying which it
is.
- Enter or Replace Word puts the chosen word in place of yours.
- Copy copies the chosen word, or the whole result.
- Add to Dictionary adds the word to your personal dictionary.
Offline, Look Up uses the thesaurus and nothing leaves this computer. The Use online sources checkbox is off until you check it. When it is on, the word, and only the word, never your sentence or document, goes to three free services that need no account:
- the Free Dictionary, for definitions with examples
- Datamuse, for more synonyms, opposites, rhymes and related words
- Wikipedia, for a short summary with a link to the article (a word with no real article, or a page that only lists other meanings, shows no encyclopedia section)
The offline answer appears straight away and QUILL says “Looking up
online”. When the online answer arrives it replaces the box, and QUILL
tells you. Your choice is remembered as
dictionary_online_lookups in the settings file. Uncheck the
box and the next lookup is offline again.
Chapter 7, Spelling and words, has more on spelling and the dictionary.
Sending your writing somewhere else
Send as Email and Copy as Email Body
File > Send as Email opens your usual mail
program with the selection, or the whole document if nothing is
selected, as the message. File > Copy as Email Body
prepares the same text and puts it on the clipboard instead. Use that
when your mail program cuts off or refuses a very long message. Both
follow the same format setting as the Clip Library. Copy as Email Body
is also on the QUILL key: press the QUILL key and then C
(Copy Selection For Email).
Using QUILL as an external editor
Some programs, such as Thunderbird, can hand a draft to another editor and take it back when you are done. QUILL opens one window per file and closes when you close it, which is exactly what those programs expect, so QUILL needs no special setup. For Thunderbird:
- Install the External Editor Revived add-on in Thunderbird (Tools > Add-ons and Themes, then search for it). It also needs a small companion program, and its own setup page walks you through that.
- In the add-on’s settings, set the editor to QUILL’s full path. On
Windows this is usually
C:\Users\<you>\AppData\Local\Programs\QUILL for All\quill.exe. Copy the exact path from the Target field of your QUILL shortcut. - Write a message and press the add-on’s edit-externally key
(
Ctrl+Ein Thunderbird, unless you changed it). Your draft opens in QUILL with everything QUILL offers: spell check, read aloud, AI tools and braille. Save (Ctrl+S) and close QUILL, and the text goes back into Thunderbird’s message window.
The same steps work with any program that opens an editor on a file and reads it back when the editor closes.
AutoOutline numbered headings
Format > Update Outline Numbering numbers every heading in your document by its level, typed as real text at the start of the heading:
- Numeric (the default):
1,1.1,1.2,2,2.1… - Legal:
I,I.A,I.B,II…
Choose the style in Settings > Editing > “AutoOutline numbering style.” Because the numbers are real text, they are read aloud, survive copy and paste, and export with nothing to set up. Add, remove or move headings, then run Format > Update Outline Numbering again. It replaces the old numbers instead of adding new ones in front. Format > Remove Outline Numbering takes them out again.
Work Personas
A Work Persona is a named set of things you use together: a feature profile, a working folder, some favourite files and, if you like, a keymap profile. Make one for each part of your work, such as school, a freelance client or a novel, and switch to it in one step.
Open Tools > Work Personas… to manage them.
- Choose New Persona.
- Type a name, pick a feature profile, browse to a working folder, add your favourite files and, if you want, choose a keymap profile.
- Choose Save.
Then:
- Apply Now switches your feature profile, changes your working folder, reopens your favourite files and applies the keymap, all in the current session. Keymap changes take effect the next time you start QUILL.
- Generate Shortcut… makes a launcher you can
double-click to open QUILL straight into that persona, even when QUILL
is not running. On Windows it is a real shortcut where possible, or a
.batfile otherwise. On macOS it is a.commandfile you open from Finder, which starts QUILL in Terminal. - From a command prompt or another shortcut,
quill --persona "Persona Name"does the same.
A persona is for one person’s different kinds of work. It is not a separate user account, and it does not replace Story Studio, Notebooks or the Copy Tray, though a persona can point to any of them.
Typing stays ahead of you
QUILL is built so that your next keystroke never has to wait. Between one character and the next, it does only three things: updates your text, refreshes the modified marker, and quietly sets the status line.
Everything else, such as the side preview, the spelling hint, word prediction, getting browse mode ready, language detection, turning menu items on and off, and autosave, waits until after your screen reader has been told about the character. QUILL waits for a fifth of a second of quiet first, and if you type faster than that it skips the work until you pause. So the faster you type, the less QUILL does between keystrokes.
The status bar’s word count, line and column, and progress cells also
update in those pauses, using the text QUILL already holds. And the
abbreviation feature only touches the Windows clipboard, which every
program and your screen reader share, at the moment an abbreviation that
uses ${clipboard} expands.
This matters most with a screen reader. NVDA and JAWS speak the character you typed when they get a signal from the same part of QUILL that does this work. Anything done between keystrokes is heard as a delay before the character, and if enough builds up, as keystrokes running together. A missing space between words is usually the first sign. If you ever notice that in a very large document, please report it rather than changing your screen reader settings: it means something is slowing down typing that should not be.
The Editing page in Settings
Most of the Editing page in Settings
(Ctrl+,) is described where the feature itself is. These
are the rest:
- Enable soft wrap wraps long lines to the width of
the window. It is on to begin with, and
Alt+Zturns it on and off as you work. - Auto-fill numbered list markers writes
1.,2.,3.in front of every item when you insert a Markdown numbered list, instead of only the first. It is off to begin with, but QUILL does it anyway while you are in a Markdown document, and for five minutes after you turn a numbered list on. - Backspace after expansion decides what
Backspacedoes straight after an abbreviation expands: Delete the expanded text (the default) or Revert to the typed abbreviation. - Enable persistent undo keeps a saved file’s undo history from one session to the next. It is off to begin with; Chapter 13 has more.
- How to open CSV files is Ask each time (the default), Plain text or Grid.
- How to open Word files is Ask each time (the default), Plain text or Structured.
- Autosave interval (seconds) is how often QUILL autosaves the open document, from 5 to 600 seconds. The default is 30.
- Autoformat straight quotes to curly turns straight quotes into curly ones as you type. Off to begin with.
- Autoformat double hyphen to dash turns two hyphens into a dash as you type. Off to begin with.
- Multi-press time window (ms) is how long QUILL waits for a second or third press of the same key before it treats the first as a single press. It matters for the Copy Tray and Command Palette keys that do something different when pressed twice. The default is 400. Fast typists may like 300, and 500 gives you more time.
What you learned, and where to go next
You now know the everyday editing keys, how to select by anchor, by structure and with marks, and how to get deleted text back or repeat a command. You met the Copy Tray and the Clip Library, the Insert menu with its special characters, equations, snippets, dates and emoji, and abbreviations, smart triggers and log files that do some of the typing for you.
To practise, open Help > Tutorials…
(Ctrl+Alt+F1) and try “Select, mark, and move text” and
“Spelling, words, and the thesaurus” from the Writing and editing
track.
Next, Chapter 5, Formatting, structure and markup, shows how to give your writing shape: headings, lists, tables and formatting.
Chapter 5: Formatting, structure and markup
This chapter is about the shape of your writing: headings, lists, bold and italic, fonts and colours, tables, equations and citations. QUILL keeps your text plain and easy to read while you work, and still gives you a properly formatted document when you save it as Word, RTF or HTML. If you write in Markdown or HTML, or you want a document that other people can navigate by heading, this is the chapter for you. Near the end you will also find the tools for tidying pasted text and fixing character encoding problems, and how QUILL tells you what it has done.
Format menu
The Format menu is where you change how existing text looks and how it is laid out. Most of it works on the selection, or on the current line when nothing is selected.
Case, comments and indentation
The Change Case submenu has five commands:
- Upper Case
- Lower Case
- Title Case
- Sentence Case
- Toggle Case
For code and structured text there are comment and indentation tools:
- Toggle Line Comment (
Ctrl+/) - Toggle Block Comment (
Ctrl+Shift+/) - Indent (
Ctrl+]) - Outdent (
Ctrl+[) - Tab Key Inserts Tab Character
(
Ctrl+Alt+Shift+I), which Chapter 2 explains under the Tab key. - Describe Indent Depth
(
Ctrl+Alt+Shift+V), which tells you how deeply the line you are on is indented, such as “4 spaces” or “1 tab”, without moving anything.
Working with whole lines
These commands are on Format > Line, and act on the line your cursor is on:
- Move Line Up (
Ctrl+Shift+Up) - Move Line Down (
Ctrl+Shift+Down) - Duplicate Line (
Ctrl+D) - Delete Line (
Ctrl+Shift+Delete) - Join Lines
- Delete to Line Start
(
Ctrl+Shift+Backspace) and Delete to Line End (Ctrl+Alt+Shift+Delete) - Delete to Document Start and Delete to Document End, which remove everything from the cursor to the top or the bottom of the document. They have no keys at first, because they remove a lot at once. Ctrl+Z puts it back, and so does Edit > Restore Deleted Text….
- Delete Paragraph
(
Ctrl+Alt+Shift+Backspace) - Quote Lines (
Ctrl+Shift+Q) and Unquote Lines (Alt+Shift+.), which add or take away the>that marks a quoted line in an email or in Markdown.
Five line tools have their own keys, so you do not have to walk the menu each time:
- Hard-Wrap Lines (
Alt+Shift+W) - Delete Lines Containing
(
Alt+Shift+X) - Convert Indentation to Spaces
(
Alt+F11) - Convert Indentation to Tabs
(
Alt+F12) - Line Statistics (
Ctrl+Alt+W)
The first four use the same keys as QUILL Lite, so your hands work
the same way in both. Line Statistics is on Tools >
Advanced, and Document Statistics is on
Ctrl+Shift+G.
Sort and Filter, Whitespace, and numbering lines
Three more submenus of the Format menu work on many lines at once. Each one works on the selected lines, or on the whole document when nothing is selected.
Format > Sort and Filter puts lines in order and weeds them out:
- Sort Lines A to Z (
Ctrl+Alt+S) and Sort Lines Z to A - Shuffle Lines, which puts them in a random order, handy for a quiz or a draw
- Sort Lines Numerically, Sort Lines by Date and Sort Lines by Length, described below
- Delete Lines Containing… (
Alt+Shift+X) and Delete Lines Not Containing…. Type a word or phrase, and every line with it (or every line without it) goes. - Reverse Lines (
Alt+Shift+Z) - Remove Duplicate Lines
(
Ctrl+Alt+D)
Format > Whitespace tidies spaces and blank lines:
- Trim Trailing Whitespace
(
Ctrl+Alt+R) - Trim Blank Lines at the Ends
(
Ctrl+Shift+Enter) and Remove Every Blank Line (Ctrl+Alt+K), described next - Normalize Whitespace
- Convert Indentation to Spaces
(
Alt+F11) and Convert Indentation to Tabs (Alt+F12)
Format > Line has the numbering tools,
Number Lines… (Alt+Shift+N) and
Number Lines (Advanced)…, along with Hard-Wrap
Lines… (Alt+Shift+W). Number Lines
(Advanced)… is for the times the simple version is not enough.
You can set a starting number, an increment, digits or Roman numerals, a
zero-padding width, a custom suffix, and left or right alignment.
Two ways to remove blank lines
The Format menu has two blank-line commands, and their names tell you which is which.
- Trim Blank Lines at the Ends removes only the blank lines before the first line of text and after the last one. Use it before you paste a fragment into something else.
- Remove Every Blank Line removes all of them, including the ones between your paragraphs. Use it on text copied from a web page that arrived double-spaced.
A line with nothing but spaces on it counts as blank to both commands. They used to be called Trim Blank Lines and Remove Blank Lines.
Sorting lines by number, length or date
Besides the plain A to Z sorts, Format > Sort and Filter has three more for structured lists. Each works on the selected lines, or the whole document if nothing is selected.
- Sort Lines Numerically sorts by the first number on each line.
- Sort Lines by Length puts the shortest lines first.
- Sort Lines by Date sorts by the date on each line.
Sort Lines by Date understands the common ways of writing a date:
- ISO dates, such as
2020-03-05. - Slash and dot forms, such as
03/04/2020and5.1.2020. - English month names, such as
Jan 5, 2020,5 January 2020andMarch 3rd, 1999.
When a numeric date could be read two ways, QUILL follows your
region. In US English it reads the month first, so 03/04 is
March 4th. Everywhere else it reads the day first, so 03/04
is 4 March. A date that can only mean one thing, like
25/12, is always read correctly. Lines with no date it
recognizes stay together at the bottom, in their original order, so
nothing is lost.
All three sorts have no key by default. You can give them one in the Keymap Editor.
Bold, italic and rich formatting
Bold and Italic are on the Format menu, as you would expect. Beyond those two, the menu applies real document formatting:
- Underline, Strikethrough, Superscript and Subscript
- Font (the font family) and Size (the point size)
- Text Colour and Highlight
- paragraph Alignment (Left / Centre / Right / Justify)
- line spacing, indent and named styles
QUILL uses what it calls hidden codes for this. The formatting is stored out of sight, so what you read and edit stays clean plain text with no clutter in it. When you save or export, the hidden codes become real formatting, and the document comes out as a properly formatted Word, RTF or HTML file.
Everything else in QUILL works on that same clean text: undo, search, the outline, word counts, read-aloud and the AI tools all see your prose, not the markup.
Applying formatting
Use the Font, Size, Align, Colour and Highlight items on the Format menu. If text is selected, the formatting applies to the selection. If nothing is selected, it applies to what you type next.
Here is what each one offers:
- Format > Font has six everyday typefaces: Arial, Calibri, Times New Roman, Courier New, Verdana and Georgia.
- Format > Font Size has Grow
Font (
Ctrl+Shift+.) and Shrink Font (Ctrl+Shift+,), which step the size up or down, and a list of sizes from 8 to 72 point. - Format > Align has Left
(
Ctrl+L), Center (Ctrl+E), Right (Ctrl+R) and Justify (Ctrl+J), the same keys as Word. - Format > Text Color has Black, Red, Green, Blue, Orange and Purple.
- Format > Highlight has Yellow, Green, Turquoise, Pink and Gray.
- Format > Line Spacing has
Single (
Ctrl+1), One and a Half (Ctrl+5) and Double (Ctrl+2), Word’s keys again. - Format > Paragraph Spacing adds 6 or 12 points of space before or after the paragraph.
- Format > Paragraph Indent indents the paragraph’s left edge by 18, 36 or 54 points, or indents just its first line by 18 or 36 points.
- Format > Paragraph Style makes the paragraph a Quote, a Title, a Subtitle or a Caption.
- Format > Insert Page Break puts a page break on its own line in a Markdown document. You do not see a new page while you write; the break takes effect when you save or export to a format that has pages, such as Word or PDF.
- Format > Clear Formatting
(
Ctrl+Shift+N) is Word’s “back to normal text”. In a rich text document it turns bold, italic, underline and strikethrough off, puts the size, colour, highlight, alignment and spacing back to normal, and takes the text out of any list, all as one step you can undo. In a Markdown document it takes the emphasis codes off the selected text, or off the paragraph when nothing is selected. When you are not sure what is still applied to some text, this is the way to be certain.
The Markdown Format Codes… dialog gathers font family, point size, colour and highlight in one place. It writes hidden Markdown codes, so it works only in a Markdown document. It used to be called “More Font Options…”.
The two items above it are the ones most people mean by “font”:
- Font… changes the editor’s own typeface and size.
- Font for Selection… changes the font of text in a rich text document.
Hearing what is there
Because the codes are hidden, you cannot read them in the text.
Describe Formatting at Cursor speaks exactly what is in
effect at the cursor, for example “Arial, 14 point, centred, bold”. Its
key is Ctrl+Shift+D. To hear formatting changes as you
arrow through a document, check Format > Announce Formatting
on Cursor Move. It stays on until you uncheck it, even after a
restart.
Saving with your formatting
When you use Save As (or Export) to Word
(.docx), Rich Text (.rtf) or
HTML, the hidden codes become real formatting: font,
size, colour, highlight, alignment and the rest. Word export uses a
built-in writer when the optional python-docx component is
installed, and Pandoc otherwise.
If the format you are saving to cannot carry something, QUILL tells you before you commit, instead of quietly dropping it. Saving to plain text drops the formatting, and you get the same warning.
Markdown and HTML awareness
Plenty of people write in plain text and still care a great deal about the structure of what they export. QUILL helps with that by noticing whether the document in front of you looks like Markdown, HTML or plain text. It uses that to guide the insertion helpers and to switch on the commands that make sense for that kind of document. The heading and list keys below, for example, work in Markdown and HTML documents. In a plain-text document QUILL says the command is unavailable and leaves your text alone.
Headings
Headings are what let you, and anyone you share a document with, jump through it by section. QUILL’s heading tools help you keep that structure tidy, not just add decoration.
Setting a heading level (Ctrl+Alt+1 to 6)
Put your cursor on a line and press Ctrl+Alt+1 through
Ctrl+Alt+6 to make it a heading of that level. Press the
same key again on a heading that is already that level to turn it back
into an ordinary line. This works in Markdown and HTML documents.
Alt+Shift+Left and Alt+Shift+Right raise
and lower the level of the heading you are on.
If you use NVDA: these keys take the place of NVDA’s own keys for switching to synthesizer 1 through 6. If you rely on those, rebind QUILL’s heading keys in the Keymap Editor.
Moving a section
In Markdown and HTML, a section is a heading and everything under it. You can move whole sections without cutting and pasting.
Alt+Shift+UpandAlt+Shift+Downmove the section you are in one step, swapping it with the section before or after it. This is right for tidying two neighbouring sections.Alt+Shift+F5is Select Section. It selects the section and everything under it, so ordinaryCtrl+XandCtrl+Vcan put it anywhere: elsewhere in this document, in another document, or in another program. QUILL tells you how much it selected, for example “Selected Bread and 1 section under it, 7 lines”, because your screen reader only says the selection changed.Ctrl+Alt+Shift+F5is Move Section To…, which moves a section to a place you choose instead of one step at a time. It is described just below.
Your cursor must be on the heading for Alt+Shift+Up and
Alt+Shift+Down. In a plain-text document QUILL says the key
is unavailable and nothing moves. A line such as # fake
inside a ``` code fence is never mistaken for a heading.
When there is no section of the same level in the direction you are moving, the section trades places with whatever is next to it, the way Word’s outline Move Up and Move Down work on the same keys. A first child section rises above its parent’s heading. A section that runs to the end of the file cannot move down, and QUILL tells you so and names the key that would promote it to make it a sibling.
The moved section keeps its level. Moving never renumbers your
headings. To change a level, use Alt+Shift+Left and
Alt+Shift+Right; you can combine the two.
Alt+Shift+Up and Alt+Shift+Down used to
expand and shrink the selection. Those commands are now on
Ctrl+Shift+X and Ctrl+Alt+Shift+X, and keymaps
you saved in older versions are moved over automatically.
Move Section To (Ctrl+Alt+Shift+F5)
Moving a section forty places with Alt+Shift+Up means
forty announcements to count. Move Section To… asks
where you want it to go instead.
- Put your cursor in the section you want to move and press
Ctrl+Alt+Shift+F5. - Choose the heading to move it next to. The list holds every heading in the document, and each row reads like “3 of 7, level 2 - Bread”, so two sections with the same name are still two different rows.
- Choose Before, After or Inside that heading.
The whole move is a single edit, so one Ctrl+Z undoes
it.
Only Inside changes a level. It makes your section the last one under the heading you chose, moves everything in it one level deeper, and tells you the new level.
A few things make the two lists easy to use by ear:
- Focus starts in the search box. Pressing Enter there takes you into the results; it does not accept whatever happens to be highlighted.
- The list never reorders itself as you type. It is your outline in document order, so you can find things by position.
- A heading inside the section you are moving is still listed, and marked as such. If you choose it, QUILL explains, for example: “Sourdough is inside Bread, so Bread cannot move into it. Promote Sourdough first if you want them side by side.”
QUILL also refuses to push a heading past level 6, and tells you why.
Press Escape at either question to cancel. Nothing changes and nothing is announced.
Style Headings and the Heading Organizer
To change how headings look, open Insert > Heading > Style Headings…. You can style all heading levels or just the level you are on, and set the font family, point size and alignment. In a Markdown document, styled headings are written as HTML heading tags so the formatting is kept.
For bigger reorganising, open Navigate > Heading
Organizer… (Alt+Shift+O). It lists each heading as
its level and title. In it you can:
- promote and demote headings with
TabandShift+Tab - move sections up and down
- rename headings
- check the heading order before you apply your changes. It catches a wrong starting level, skipped levels and empty headings.
QUILLBee’s tip: Lost track of where you are in a long document? Press
Alt+Shift+Oto open the Heading Organizer and hear every heading as a list.
The Section cell on the status bar
The status bar can show a Section cell, which reads
Section: Heading N (ordinal of total) whenever your cursor
is on a heading in a Markdown or HTML document. It is hidden by default;
turn it on in Tools > Customize and Support > Status Bar
Layout…. In a plain-text document, or on a line that is not a
heading, it stays empty.
Lists
Bullet and numbered lists (Ctrl+Shift+L)
Press Ctrl+Shift+L to start a bullet list, or
Ctrl+Shift+Grave, Shift+L for a numbered list. QUILL looks
at the line you are on:
- If it is not in a list, a new list starts at the cursor.
- If it is already in a list, the same key turns that list off. Only the list you are in changes; every other list in the document is left alone.
When it turns a list off, QUILL tells you how many items it changed,
for example “Bullet list removed, 4 items”, since that is the part you
cannot see. Ctrl+Z puts the markers back.
Numbered lists follow the list_auto_fill_numbers
setting, Settings > Editing > Auto-fill numbered list
markers. When it is on, every item gets its number,
1. , 2. , 3. and so on. When it
is off, only the first item does.
These keys always work in Markdown and HTML documents. In a plain-text document QUILL says the command is unavailable.
Typing in a list
Markdown lists behave the way they do in other editors:
Entercontinues the current bullet, numbered or task item.Enteron an empty list marker ends the list.- On a list item,
Tabnests it one level deeper andShift+Tabbrings it back out.
For bigger changes, open Insert > List > List
Manager… (Ctrl+Shift+Grave, L). It shows your list
as a tree, where you can move, promote, demote, add, edit and delete
items.
Structured List Studio (Ctrl+Alt+Shift+L)
The Structured List Studio lets you build a list by
its parts (each item’s text, a checked box, a term and its definition)
and writes the correct Markdown or HTML for you. You never have to type
-, 1., [ ],
<ul> or <dl> yourself.
Press Ctrl+Alt+Shift+L, or choose Insert >
List > Structured List Studio….
- With text selected, the studio turns your selection into a list. It makes one item per line, or one per paragraph when blank lines separate them, and removes any bullets, numbers or task markers already there. With nothing selected, it starts a new list.
- Choose the type: Bulleted, Numbered, Checklist, or Definition (or description) list. Then choose the output format, Markdown or HTML.
- As you work, a read-only Generated source field shows exactly what will be inserted. The items outline tells you each item’s text, its number or checked state, and its position.
- Inserting the finished list is a single edit, so one
Ctrl+Zundoes it.
Definition lists
For a definition list, fill in the Term and
Definition fields. For HTML, QUILL writes valid
<dl>/<dt>/<dd>
markup. For Markdown, it uses a Pandoc-compatible syntax. A term can
have several synonyms (one per line, each becoming its own
<dt>), and a definition can have several paragraphs
(separated by a blank line, each becoming its own
<dd>).
If you make a Markdown definition list and the document has no profile set, QUILL asks how you want it written instead of guessing:
- embedded HTML, the recommended choice because it works almost everywhere
- a specific Markdown profile: Pandoc, Markdown Extra or MultiMarkdown
- a plain “Term: Definition” list
Nesting, reordering and editing a list later
- Indent, Outdent and Add child build nested lists.
- Move up and Move down carry an item together with all its children.
- To edit a list you already have, put your cursor inside it with nothing selected and open the studio. It loads that list, and when you are done it rewrites just that block.
Converting and importing
- Switching a list to another type carries the content across, and warns you before any structure would be lost.
- Import from clipboard and Import from file… bring text in, with the live preview showing how QUILL understood it.
- When you choose OK, the studio checks the generated source. If something is wrong, your document is left unchanged and you are told what the problem was.
List Studio Settings
Open Insert > List > List Studio Settings… to set your defaults. You can pick a ready-made preset, adjust the main options (verbosity, markers, definition profile and loose lists), and export or import your settings as a JSON file. Save them for all documents, which is what the studio starts from next time, or for this document only, which overrides just the options you changed. The document’s format still chooses the Markdown syntax for definition lists automatically.
The studio used to open with F2, and Insert Special
Character used to be on Shift+F2. Today F2 and
Shift+F2 move between bookmarks, and Insert Special
Character is on Ctrl+Shift+F2. You can change any of these
keys in the Keymap Editor.
Checking off tasks
A task list is a list whose items start with a box:
- [ ] for something still to do and - [x] for
something done. Insert > List > Task makes one,
and plans written by AI assistants are usually full of them.
To check a task, put the cursor on its line and press
Ctrl+Alt+Enter (**Insert
List > Toggle Task Done**). Press it again to uncheck it. QUILL tells you what changed and how many tasks in that list are done, for example “Checked: Write the tests. 3 of 7 tasks complete.” Select several lines first to check them all at once.
Ctrl+Ztakes it back like any other edit. On a line that is not a task, QUILL says so and changes nothing.
In the preview and in File > Export > HTML, a task shows as a real check box, checked or not, with the task’s text as its label.
Markdown profiles and table of contents
Markdown means different things to different writers. A poet wants every line break kept, a documentation author wants a table of contents, and someone contributing on GitHub wants task lists and strikethrough. Format > Markdown lets you say which kind of writing you are doing without learning the names of Markdown extensions.
- Insert > Table of Contents builds a table of
contents from your document’s headings. It uses no AI and makes no
network call, and the links always match your headings exactly, because
they are built from the headings themselves. If your document has a
[TOC]marker on a line of its own, the table of contents goes there. Otherwise it goes right after your first heading. - Select Markdown Profile… lets you pick a named profile: Standard Markdown, GitHub-Style Markdown, Documentation, Poetry and Lyrics, Accessible Publishing, Technical Writing, PRD and Release Notes, or Custom. QUILL tells you in plain words what the profile turns on, for example “Markdown profile: Documentation. 5 extensions enabled.”
- Preserve Single Line Breaks keeps every line break as a line break, instead of letting Markdown join the lines into one paragraph. Turn it on for poetry, lyrics, speeches and scripts, where the line is part of the meaning.
- Read Markdown Processing Status tells you your current profile and what it turns on, without opening a dialog.
- Select Citation Style… chooses how the Author or Student profile writes citations: as Markdown footnotes (light, nothing extra to install), or as full Academic bibliography entries through the Insert > Insert Citation… MLA / Chicago / APA form.
If you would like an outline written in the AI’s own words instead, use AI > Generate Table of Contents. The two commands are separate, and the AI one appears only when AI Assistance is turned on.
Equations and mathematics
Most editors make maths hard for a screen-reader user. The notation is visual, and the usual tools give you a mouse and a palette of symbols. QUILL lets you type an equation as text instead. That works from the keyboard, you can review it character by character, and screen readers that speak maths already understand it.
The bundled Math Equations Quillin adds a formula gallery, symbol abbreviations, a way to step through a formula, and export to Word. All of it is covered below, and also taught from start to finish in Tutorial 7: Write math without learning a new language.
Insert Equation (Ctrl+Alt+=)
Choose Insert > Insert Equation… or press
Ctrl+Alt+=. (Older versions of this guide gave
Ctrl+Shift+E, which now selects the current line.) The
dialog has two fields:
- Equation: type LaTeX, such as
E = mc^2or\frac{-b \pm \sqrt{b^2-4ac}}{2a}, or paste MathML (<math>...</math>). - Display mode: Inline puts the equation inside your sentence. Block puts it on its own line.
QUILL adds the delimiters for you: \(...\) for inline,
or $$...$$ on a line of its own for a block equation. Those
are the marks Browser Preview and Word export both understand, so the
equation shows as maths in the preview and becomes a real Word equation
when you save as .docx. MathML goes in exactly as you typed
it, because it already carries its own markup.
To change an equation you already wrote, select it, including its
delimiters, and open Insert Equation again. An equation from an older
version of QUILL, written with single $ signs, opens the
same way, and inserting it again gives it the new delimiters. The field
holds just the maths, with the delimiters taken off, and the display
mode you used is already chosen. Change it, choose Insert, and the old
equation is replaced.
An equation is ordinary text in your file, so nothing in your document becomes hidden or unreadable. You can always arrow through the raw LaTeX to check it.
Insert Equation was contributed by @salorajan.
The Math Equations Quillin’s own prompt
The Math Equations Quillin has its own Insert Equation… command, a short prompt instead of a form. It writes exactly the same delimiters as QUILL’s own command, so it does not matter which one you use.
LaTeX is the most common format for typeset maths. Type the formula in standard LaTeX and choose a display mode.
- Inline (
\(...\)) keeps the equation within the surrounding text.E=mc^2becomes\(E=mc^2\). - Block (
$$...$$) gives the equation its own line, with a blank line above and below.\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}becomes$$\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$on a single line.
Both are delimiters MathJax recognizes without any setup, and
\(...\)cannot be confused with a dollar amount in your prose the way a bare$...$could.- Inline (
MathML is an XML format used in web publishing and accessible documents. If what you type starts with
<math, QUILL inserts it as it is and skips the display mode question. Screen readers can read MathML directly.If you select a LaTeX equation before you run it, QUILL removes the delimiters, fills in the bare formula, and puts the display mode it detected first in the list, so one keypress confirms it.
Seeing equations rendered
Browser Preview (Ctrl+Shift+Grave, V) and HTML export
add MathJax 3, so equations appear typeset in any browser. QUILL adds it
only for documents that contain maths. The document itself always keeps
the raw LaTeX or MathML, which is what your screen reader reads.
MathJax is loaded from a public CDN by your browser, so the visual rendering needs an internet connection. The LaTeX or MathML, and everything your screen reader says, is always there offline. If you are offline, equations show as their source instead of typeset maths. Nothing is lost.
Common Formulas gallery
You do not have to type a common formula at all. Insert > Snippet Gallery… lists ten ready-made formulas from the Math Equations Quillin:
- the Quadratic Formula
- the Pythagorean Theorem
- Slope-Intercept Form
- Point-Slope Form
- the Slope Formula
- the Distance Formula
- the Midpoint Formula
- Difference of Squares
- the Area and Circumference of a Circle
Choose one and it goes in as a correctly formatted
$$...$$ block. To change it afterwards, select it and open
Insert Equation, as with any other equation.
Maths symbol abbreviations
Like Word’s Math AutoCorrect, you can type a backslash code followed by a space or punctuation, and QUILL turns it into the symbol. This works anywhere in ordinary text, but not inside the equation prompt.
\alphabecomes α\sqrtbecomes √\nebecomes ≠
Case matters where it matters in maths: \delta gives
lowercase δ and \Delta gives uppercase Δ.
There are 88 codes, covering operators, relations, set and logic notation, number sets, Greek letters, calculus and geometry. They come from the Word Math AutoCorrect list published by DAISY (daisy.org/MSMathCodes). You will find them under Preferences > Editing > Insert Automation, where you can turn off any one of them, or the whole set, like any other abbreviation.
Explore Equation Structure
Hearing a long formula in one breath is hard to follow. Explore Equation Structure… lets you step through it one piece at a time.
- Select an equation, or select nothing if you want to type a new one.
- Choose Insert > Explore Equation Structure…, or
press
Ctrl+Shift+Grave, Z. - If nothing was selected, a text prompt asks for the LaTeX or MathML. Enter accepts it; Escape cancels.
- QUILL says where you are (“Whole equation” at the top, or the piece’s name, such as “Fraction”, once you have gone deeper) and opens a list.
The list holds the parts of the current piece, such as a fraction’s Numerator and Denominator or a power’s Base and Exponent, followed by Read this part aloud, Back up one level (once you are below the top) and Done exploring.
Use the Up and Down arrows to move, or type a letter to jump to the next item starting with it. Press Enter, or choose OK, to act on the highlighted item:
- A part takes you into it and lists its own parts.
- Read this part aloud reads just the current piece, then reopens the same list at the same place so you can carry on.
- Back up one level goes to the piece that contains this one.
- Done exploring ends and puts you back in the editor.
Escape, or Cancel, ends the whole session at once, from any list at any depth, just like Done exploring. It does not go back one level; Back up one level is the choice for that.
Richer maths speech with MathCAT
Stepping through the parts needs nothing extra. It works the moment
QUILL is installed, with no download. Read this part
aloud can get better: install the free MathCAT math
speech engine from Help > Download Optional
Components… > MathCAT math speech engine (about 3 MB,
MIT-licensed, from the daisy/MathCATForC project). That
command then uses the same natural-language maths speech that NVDA
ships, instead of QUILL’s simpler built-in reading. If you skip the
download, or MathCAT cannot handle a particular formula, the command
still works with the built-in reading.
Nemeth and UEB maths braille are not available yet. If you use JAWS, its Math Viewer works once an equation is a native Word equation (see the next section), and it remains the fuller option, with braille support.
Word export and round trip
File > Export > Word Document… turns every
\(...\) and $$...$$ equation in your document
into a genuine Word equation, the same kind Word’s own equation editor
makes. It does this through Pandoc, one equation at a time. In Word, the
equation tools work on it, and JAWS reads it as maths, not as a picture
or as literal text. If Pandoc is not available, the equation is kept as
its delimited text, never dropped.
Open that Word file again later with File > Open…
and the equation comes back as the same plain, editable
\(...\) or $$...$$ text. This works whichever
reader you have chosen in Settings > Editing > Word
document reading engine.
Ask about an equation
The AI Hub’s Math Tutor agent explains a selected equation in plain language: what it means, what each symbol is, and its common name if it is a well-known formula. It does not solve anything or change your document.
Ten worked examples, including the quadratic formula, the binomial
theorem, integration by parts and Euler’s identity, are in
docs/math/latex_testing.md.
Citations and bibliographies
For research writing, Insert > Insert Citation… builds a correctly formatted citation from the details you type, so you do not have to remember the punctuation and indentation rules.
- Choose the source type: Book, Journal article, or Website.
- Choose the style: MLA 9, Chicago 17 (author-date), or APA 7.
- Choose what to insert: the in-text citation, the full bibliography entry (Works Cited or References), or both.
- Fill in the details: author or authors, title, year, and the fields
for that source type. Separate several authors with a semicolon, for
example
Jane Smith; John Doe. - Choose Insert. The citation goes in at your cursor.
QUILL applies each style’s rules for you, including author order and “et al.”, initials, italics, and where every comma and full stop goes. You supply the facts and QUILL handles the formatting.
Tables, code blocks and tags
QUILL can guide you through inserting tables, code blocks, HTML tags and Markdown snippets. That helps when you want the structure but do not want to type every opening and closing marker correctly by hand each time.
Cleanup and normalization
The cleanup commands under Tools > Convert are made for pasted material, transcripts, exports and text moved from another program. Use them to turn messy text into something steady and readable.
Character encoding tools
Text for the web often runs into encoding trouble: one tool wants UTF-8 and the next insists on plain ASCII. Format > HTML and Encoding has the tools to sort that out.
Finding characters that are not plain ASCII
Show Non-ASCII Characters opens a read-only report
of every character beyond plain ASCII. For each one it gives the line
and column, the code point, the Unicode name, and whether it converts
cleanly to Latin-1 and to Windows-1252 (MS-ANSI). It does the job people
used to do at the command line by running a file through
iconv with a sentinel string and hunting for what
failed.
You can go back and forth between the report and your document:
- In the report, put your cursor on a character’s row. Each row starts
with
line:columnfollowed by a tab. - Choose Format > HTML and Encoding > Jump to Source Line. QUILL switches to your document and puts you on that line.
- When you have looked at the character, choose Jump Back to Non-ASCII Report to return to the report.
You can give Jump to Source Line a key in the Keymap Editor to go faster.
HTML tags and entities
- Strip HTML Tags takes every tag out of the selection, or the whole document, and leaves just the words. It is the quick way to get readable text out of a piece of web page source.
- Convert Non-ASCII to HTML Entities rewrites every
non-ASCII character as an HTML entity: a named one such as
éwhere it exists, or a numeric one such asé. Ordinary ASCII, including&and<, is left alone. This is the reliable way to feed text to a tool, like Pandoc, that refuses accented characters. - Encode HTML Entities is the older command. It
escapes only the five markup characters (
<,>,&,",'), not accents and symbols. - Decode HTML Entities goes the other way. It turns
entities such as
é,&,éandéback into é, &, é and é, using the standard HTML entity table. An entity it does not know, such as&madeupword;, is left as it is.
Saving in a different encoding
- Re-encode As… saves a copy in the encoding you choose: UTF-8, UTF-8 with a byte-order mark, Latin-1, Windows-1252 or ASCII. A character that does not fit a narrower encoding is written as a numeric HTML entity, never a question mark, so nothing is lost and you can always convert it back.
- Analyze Encoding Requirements tells you the smallest encoding your document fits in, without changing anything. Its short report gives your current encoding, whether the document still fits it, and if not, the simplest encoding that holds every character, checking in this order: ASCII, Latin-1 / ISO-8859-1, Windows-1252 / MS-ANSI, UTF-8.
- Save Using Minimum Required Encoding… saves a copy in exactly that encoding, so a document that only needs Latin-1 is not forced into UTF-8. You can still choose UTF-8 yourself whenever you want; QUILL never switches you to it without asking.
Stripping and repairing characters
- Remove Email Quote Markers removes the
>quote markers at the start of lines in forwarded email, includingName>style prefixes. - Strip Low ASCII Characters removes control characters.
- Strip High ASCII Characters removes non-ASCII characters.
- Convert to Hex Dump opens a read-only view of the selection, or the whole document, as offset, hex and ASCII columns, so you can check exactly which bytes are there.
- Convert OEM (DOS) to ANSI and Convert ANSI to OEM (DOS) fix text from the DOS era that shows up as garbage in Windows, or the other way round, by converting between code page 437 (CP437) and Windows-1252.
- Convert Line-Drawing Characters to ASCII and
Strip Line-Drawing Characters deal with box-drawing
characters (
─,│,┌and the rest of the U+2500 to U+257F block) left over from old DOS art or terminal output. The first turns them into plain-,|and+. The second removes them.
More search and analysis tools
- Multi Replace…, on Edit > Search Tools, makes up to four find and replace swaps in one pass, with an option to ignore case. You do not have to run Find & Replace four times.
- Count Occurrences…
(
Ctrl+Alt+Shift+F3), also on Edit > Search Tools, tells you how many times some text appears in the selection or the whole document. - Count Regular Expression Matches… and Extract Regular Expression Matches…, on the same submenu, ask for a regular expression. The first tells you how many matches there are. The second opens every match in a new document, one to a line, so you can pull all the email addresses or dates out of a long file. If regular expressions are new to you, Tools > Advanced > Regular Expression Helper… builds one for you.
- Lines in First Block Only and Lines Common to Both Blocks, on the same submenu, compare two lists in one document. Paste one list, then the other below it, and put your cursor on the first line of the second list. QUILL treats everything above the cursor as the first block and everything from the cursor down as the second, and gives you the lines only the first block has, or the lines both blocks have.
- Line Statistics, on Tools >
Advanced (
Ctrl+Alt+W), looks for lines that hold exactly one number and opens a short report: count, total, average, median, mode and standard deviation. Lines that are not plain numbers are skipped, so they cause no error.
The Calculator
Tools > Calculator… is a calculator you can use without leaving your writing, and it can work on numbers that are already in your document.
- If the numbers you care about are in the document, select them first: a few figures, a column, some comma-separated lines or a whole table. QUILL puts them in the calculator for you.
- Choose Tools > Calculator…. Your cursor is in the box labelled Enter a calculation, or paste numbers, a column, or a table.
- To work something out, type it, for example
sqrt(264),10 percent of 500or2^10 + 5!, and press Calculate expression. - To sum up a set of numbers, choose a Data operation: Sum, Average, Minimum, Maximum, Count, Product, Median, Range or Standard Deviation. Then choose what it is applied to: All numbers, Down each column, Across each row, or a Full summary. Press Apply.
- The answer is in the Result box. Copy Result puts it on the clipboard, and Insert Result at Cursor types it into your document.
- Press Escape, or Close, when you are done.
The four announcement channels
Everything QUILL tells you travels on four channels, and you choose which ones you want:
- Speech: through your screen reader, or QUILL’s own voice when no screen reader is running.
- Braille: the same message on a connected display. See the next section.
- Sound: short sounds for things that happen often, so you can stop listening to confirmations you already expect.
- Status: the status bar, which always shows the message.
QUILL, Quill Radio and Quill Weather all send announcements the same way, so they behave alike wherever you are.
Three commands worth knowing
All three are in the command palette. Give them keys in the Keymap Editor if you use them often.
- Repeat Last Announcement says the last message again. Speech is gone the moment it ends, so this helps when you were reading something else as a message went by.
- Announcement Self-Test… sends a test phrase on every channel, then shows a report you can copy, saying which channels delivered it and which screen reader or display handled each one. If something is not reaching you, this is the quickest way to tell whether the trouble is QUILL, your screen reader, or a display that is not connected.
- Report Editor Surface tells you, in one keystroke, which editor is active, its window class, whether the braille fix (system-edit emulation) is on, whether the editor border is hidden, and whether braille output is working and through which route. Nothing from your document is included. If you report a braille or speech problem, run this first and include what it says, so the problem can be looked at straight away.
Announcement settings
These are in Settings > Accessibility and Announcements, and you can search for them:
- Show announcements in braille: on by default.
- Braille announcement style: the same wording as
speech, or a short form with the position first
(
p7/87 l14 c3). - Hold errors on the braille display: keeps an error under your fingers instead of letting the next message replace it.
- Sound cues in the companion apps: sounds in Quill Radio and Quill Weather.
- Confirm with a sound in Quiet Mode: hear that something worked without QUILL speaking.
- Keep an announcement history: on by default. QUILL keeps a short list of what it has said, for the Spoken Echo and Repeat Last Announcement. Turn it off and nothing is kept, and the list is cleared straight away; Repeat Last Announcement can then only repeat the message still on the status bar.
- Interrupt speech for: which messages cut across whatever your screen reader is saying. Warnings and errors is the default: problems, and the answer to something you just asked for, cut in. Errors only lets everything except a failure wait its turn. Never interrupt lets every message wait. The change takes effect as soon as you press OK.
Quiet Mode and Meeting Mode silence braille along with speech: nothing is said and nothing is flashed to the display. The status bar keeps updating, so you can still read the latest message there.
Announcements on a braille display
Everything QUILL announces, such as “Saved”, “Now playing: …”, “Weather updated”, or a recording starting and stopping, goes to a connected braille display as well as to speech, in QUILL and Quill Radio alike. It works through whichever screen reader you use: JAWS and NVDA both accept a flash message, and Narrator brailles the notifications QUILL already sends.
Four things are worth knowing:
- Braille never costs you speech. If the display is unplugged partway through, or the screen reader refuses the message, you still hear it.
- Nothing is cut short. A long message is sent whole so you can pan across it. Cutting it to the width of the display would lose the end of a track title, which is usually the part you wanted.
- The same message is not flashed twice in a row. A flash replaces what is under your fingers, so an identical message within a couple of seconds (a stream repeating the same title, for instance) is skipped.
- A burst of messages settles instead of flickering. When several different messages arrive quickly, the first is shown at once and the rest are replaced a moment later by the newest one, so the display is never a blur. Errors are the exception: an error is always shown straight away.
To keep the display on your document, turn off Show announcements in braille in Settings > Accessibility and Announcements. Quiet Mode and Meeting Mode silence braille along with speech.
What you learned, and where to go next
You can now change case and tidy lines, apply rich formatting that stays out of your way until you save, and build headings, sections and lists by keyboard. You know how to write equations and citations, fix encoding problems, and choose how QUILL’s announcements reach you.
To practise, open Help > Tutorials…
(Ctrl+Alt+F1) and try “Structure and formatting” and
“Tables, by ear” in the Writing and editing track. For maths, work
through Write
math without learning a new language on the website.
Next, Chapter 6, Moving around and finding things, shows you how to get around all that structure quickly.
Chapter 6: Moving around and finding things
Long documents are where a screen reader user loses the most time, so QUILL gives you a lot of ways to get from here to there without listening to everything in between. This chapter starts with the everyday things: finding a word, jumping to a line or a heading, and getting back to where you were. Then it moves on to bookmarks, Quick Nav, folding, inline notes and the tools for code and tidy text. If you work with transcripts, legal text, long Markdown notes, HTML source or text pulled out of a PDF, this is the chapter to spend time with.
Search and replace
Finding text (Ctrl+F)
These are the keys you will use every day:
Ctrl+Fopens Find.F3finds the next match, andShift+F3finds the previous one.Ctrl+Shift+F3opens Find All Matches, a summary of every match in one list. (It used to be onAlt+F3, which now belongs to Reveal Codes.)Ctrl+Hopens Replace.Ctrl+Shift+GravethenXreplaces all.
Find Next, Find Previous and Find All Matches live on the Edit menu, beside Find and Replace.
Search modes
You can search for plain text, whole words, wildcards or a regular expression. If regular expressions are new to you, the Regular Expression Helper (Tools > Advanced > Regular Expression Helper…) explains the syntax when you need it. QUILL also keeps your search history, so a search you run often is there waiting for you next time.
Search Tools on the Edit menu
QUILL no longer has a top-level Search menu. The commands that used to live there are now under Edit > Search Tools. This is where you go to search many files at once, or to work with regular expressions and lines:
- Search in Files… (
Ctrl+Alt+Shift+F) and Replace Across Files… (Ctrl+Shift+R) search and replace across a folder of documents. - Count Regex Matches… and Extract Regex Matches… tell you how many times a regular expression matches, or pull every match out for you.
- Lines in First Block Only and Lines Common to Both Blocks compare two marked blocks of lines and keep the lines that are only in the first, or the lines both share.
Search in Files and Replace Across Files appear only when your feature profile includes regular-expression search. In the simpler profiles you still have Find and Replace on the Edit menu.
Navigation
The Navigate menu is built for moving through large, dense material without looking at it. Here are the commands in the order you are likely to want them.
Go To (Ctrl+G)
Go To… (Ctrl+G) is one window for four
kinds of place: a line number, a page,
a bookmark or a heading.
- Press
Ctrl+G. - Choose the kind of place from the radio buttons at the top.
- Type a number, or pick from the list, and press Enter.
The number field and the list follow your choice. The one that does
not apply is dimmed but stays where it is, so the window never changes
shape under you. Pages are exact in a PDF and marked
~4 (estimated) everywhere else.
QUILL Lite opens the same window on the same key, without the Page row. The old Go To Line and Go To Page commands both land here now, so a key you gave them still works.
Go to Percent… moves you a part of the way through the document, for example halfway.
Going back after a jump
Every jump leaves a trail. Back Location takes you back to where you were before, and Forward Location takes you forward again.
- Back Location:
Alt+Lefton Windows,Cmd+[on macOS. - Forward Location:
Alt+Righton Windows,Cmd+]on macOS.
Moving by heading and structure
Headings are the table of contents of a document, and moving by them is the fastest way around a long one.
- Next Heading (
Ctrl+Alt+H) and Previous Heading (Ctrl+Alt+Shift+H) move between headings only: the#,##and###lines in Markdown, and real headings elsewhere. - Next Structure (
Alt+Down) and Previous Structure (Alt+Up) move between every structural element: headings, and also list items, code blocks, tables and block quotes. This steps you through the full outline. - Next Region (
F6) and Previous Region (Shift+F6) cycle the larger parts of the window.
So a heading is one kind of structure. Next Structure is the wide sweep, and Next Heading is the headings-only part of it.
A few more commands on the same menu:
- Outline Navigator… (
Ctrl+Shift+O) lists the document’s outline so you can jump to any part of it. - Heading Organizer… (
Alt+Shift+O) is for changing heading levels, moving whole sections, and checking that your headings are in a sensible order. - Next Block and Previous Block move by block.
- Match Bracket (
Ctrl+Shift+\) jumps to the bracket that pairs with the one at the cursor. - First Non-Blank and Last Non-Blank move to the first or last character on the line that is not a space.
- Go to Anything (
Ctrl+Alt+Shift+A) is a quick search box for jumping to anything by name.
Asking where you are
Three commands on the Navigate menu answer “where am I?” without
moving you. Each one starts with the QUILL key
(Ctrl+Shift+Grave):
- Speak Window Title (QUILL key, then
F) reads QUILL’s title bar, which names the document and says whether it has unsaved changes. - Speak Full Path (QUILL key, then
P) reads where the document is saved, folder and all. A document that has never been saved says so. - Speak Status Summary (QUILL key, then
Q) gives the lot in one breath: the document’s name, where it is, whether it is saved or modified, and its encoding.
What they say also goes on the status bar, so you can read it again in braille.
Search, Replace, and Deep Navigation
QUILL knows what headings, lists and tables are, and it tells you about them as you move. That is the deeper layer of navigation: line and page jumps, block and heading movement, bracket matching, structural next and previous, back and forward history, the outline and bookmarks, all working together. Combined with marks and compare sessions, it makes a long review much less fragile.
Hearing that a paragraph is a heading
Apply Heading 2 to a paragraph, arrow away and arrow back, and your screen reader reads the line but does not say it is a heading. That is not your reader’s fault. No Windows edit control has paragraph styles. The control can tell JAWS or NVDA the font name, the point size and the weight, but it has no way to say that a paragraph is a heading. Word can do it only because it ships its own accessibility support for that.
So QUILL says it for you. Move onto a heading and you hear “Heading 2, Installing”: the level first, then the heading’s own words, as one sentence.
- The level comes first. On a big jump, such as
Ctrl+Home, a search hit or a bookmark, NVDA and JAWS drop anything that was waiting to be spoken. A level said first, as part of the sentence, is never lost that way. It is also the order a web browser uses. - Once, when you arrive. Moving around inside a heading says nothing more. You hear it again when you leave and come back.
- Every kind of heading. Rich text, Markdown, HTML
and a real
Heading 2style in a Word document all sound the same.
If you would rather hear the words first, open Settings >
Accessibility and Announcements and change “Say a heading’s
level” (the heading_announce_position setting) to
after. Your reader then reads the line and QUILL adds
“Heading 2” behind it. It is a little quieter when you read line by
line, but on a big jump you may miss the level.
Applying a heading already tells you what happened, so you never hear it twice. A document that opens on its own title does not greet you with “Heading 1” over your reader’s first reading of the line.
Sometimes you want to read a document simply as text, and one extra
phrase per heading is one too many. View > Announce
Headings (Ctrl+Alt+F3) turns the cue off and on
without leaving the document, and it controls the table cue too. QUILL
tells you which way it went, “Headings announced on arrival” or
“Headings will not be announced”, so an accidental press is never a
mystery. Your choice is remembered (the announce_headings
setting), but think of it as something you press per document.
Headings are only found where they really exist. A # at
the start of a line is a heading in Markdown and HTML, but in a shell
script or a Python file it is a comment, and QUILL says nothing.
Hearing that you are in a list
Arrow into a list and QUILL says “Bulleted list, 5 items”. Go a level deeper and it says “Level 2, 3 items”. Arrow out and it says “Out of list”.
On a web page your screen reader tells you about lists itself. In an editor a list is only characters, so a nested outline would otherwise sound like a run of lines beginning with a dash, and you would have to count spaces to tell level two from level three.
It works in Markdown and in HTML, for all three kinds of list:
| Markdown | HTML | |
|---|---|---|
| Bulleted list | -, *, + |
<ul> |
| Numbered list | 1., 1) |
<ol> |
| Definition list | a line, then : the definition under it |
<dl> |
In a definition list you also hear “Term” and “Definition” as you move between the two, so you can tell if you have written one inside out.
Items are counted at your own level, inside your own list. A three-item list whose second item has four sub-items is “3 items” at level one and “4 items” at level two, never “7”. Two sub-lists under two different bullets are two lists.
QUILL stays quiet:
- As you move down a list. Your reader is already speaking each item.
- On
- - -or***. Those are horizontal rules. - Inside a fenced code block. A
-in a code sample is part of the sample. - In a plain document. A letter is full of hyphens.
- In rich text. There the bullets belong to the
control, and a
-you type is a hyphen.
To turn the list cue off, use View > Announce
Lists (Ctrl+Alt+F5). It is a separate switch from
the heading one, because when you are reorganising an outline you want
the levels, and when you are proofreading the same file you may not.
QUILL tells you which way it went, “Lists will not be announced” or
“Lists announced as you enter them”, and remembers your choice as the
announce_lists setting.
The key is Ctrl+Alt+F5 rather than
Ctrl+Alt+F4 on purpose: miss the Control key on that one
and you have pressed Alt+F4, which closes the window.
Moving through a table cell by cell
Arrowing along a table line tells you the characters but not the shape. QUILL gives tables their own keys, and every move tells you where you are before it tells you what is there.
Ctrl+Alt+RightandCtrl+Alt+Leftmove one cell along the row.Ctrl+Alt+DownandCtrl+Alt+Upmove one cell down or up the column.Alt+HomeandAlt+Endjump to the first or last cell of the row.Ctrl+Alt+HomeandCtrl+Alt+Endjump to the first or last cell of the whole table.
Each move speaks the position and the contents together: “Row 2 of 6, column 3 of 5: Portland”. An empty cell is called “blank”. When there is nowhere to go, QUILL says so and stays put: “No more cells” at the end of a row, “No more rows” at the end of a column, and “No more cells, end of table” (or “No more rows, end of table”) on the very last cell. That way you know whether the row stopped or the whole table did.
When you arrow into a table in the ordinary way, you hear its shape, “Table, 6 rows, 5 columns”, and leaving it says “Out of table”. Outside a table these keys do no harm; QUILL just says “Not in a table”.
This works on Markdown tables you type yourself and on tables QUILL
brings in from Word. A .docx table arrives as a real table
laid out as Markdown rows, so the same keys and announcements apply. A
cell whose text contains a | character stays one cell and
does not throw the column count off.
QUILL Quick Nav Mode
Quick Nav is like browse mode on a web page. Single letters move you around a long document, and nothing you press changes the text. It only moves the cursor.
Turning Quick Nav on
There are two ways in:
- Locked Quick Nav, the usual way. Press
Ctrl+Shift+Gravetwice in a row. The first press starts the QUILL key; the second locks Quick Nav on until you pressEsc. QUILL says “QUILL browse mode locked. It stays active until you press Escape.” - For one move. Press
Ctrl+Shift+GravethenN. Quick Nav is on for the next move. If thebrowse_mode_stickysetting is on, it stays locked untilEsc; otherwise it ends when the QUILL key times out.
Quick Nav keys
Once Quick Nav is on, the keys are the same either way:
Hmoves to the next heading, andShift+Hto the previous one.1through6move to the next heading at that level, andShift+1throughShift+6to the previous one.AandShift+Amove by link.LandShift+Lmove by list.IandShift+Imove by list item.TandShift+Tmove by table.QandShift+Qmove by block quote.BandShift+Bmove by bookmark.'andShift+'move by code block.NandShift+Nmove by inline note.PandShift+Pmove by paragraph.SandShift+Smove by sentence.TabandShift+Tabmove by block.Copens the table of contents (the Outline Navigator)..(period) repeats your last move.]jumps to the line after the current list or table, and[to the line above it.Escleaves Quick Nav.
The key table at the top of this guide and the QUILL key cheat sheet are the up-to-date reference.
A few things to know:
- If there is nothing of that kind to move to, QUILL tells you.
- Find and replace commands take you back to normal editing on their own.
- After each move QUILL tells you where you landed. QUILL browse move detail, in Settings > Navigation and QUILL Key, sets how much it says: Line and column (the default), Line only or Say nothing.
- Preload QUILL browse cache in background, on the same page, is on by default. If you turn it off, QUILL builds the cache the first time you use Quick Nav.
How Quick Nav finds things
QUILL builds a list of the places in the document once, and reuses it until the text or the kind of document changes. That keeps Quick Nav quick on long Markdown and HTML files.
- Headings come from Markdown and HTML headings.
- List items come from Markdown list markers and HTML
<li>tags. - Paragraphs come from blank lines in text and Markdown, and from block tags in HTML.
- Sentences come from sentence-ending punctuation.
- Tables come from Markdown tables and HTML
<table>tags. - Block quotes come from Markdown
>lines and HTML<blockquote>tags. - Code blocks come from Markdown fences and HTML
<pre>or<code>tags. - Bookmarks come from your bookmarks.
- The list is rebuilt after you edit, replace the whole document, or switch tabs.
QUILL key prefix actions
Press the QUILL key (Ctrl+Shift+Grave) once and it waits
briefly for a second key:
Nturns on Quick Nav, as described above. Pressing the QUILL key a second time instead locks it on whatever the setting says.Mpastes web content as Markdown. QUILL reads the rich HTML on the clipboard (theHTML Formatcopied from web pages and word processors), turns headings, lists, links, bold and italic, code and block quotes into Markdown, and inserts it at the cursor. If there is no rich HTML, the plain text on the clipboard is treated as HTML. A read-only document is never changed.Aopens selection actions when text is selected.Fspeaks the window title,Pspeaks the full path of the current file, andQspeaks a short status summary. These are handy when several documents are open and you want to check where you are.?shows the QUILL key cheat sheet, andEsccancels.
Quick Nav (Landmarks) has a key of its own,
Ctrl+Shift+Z, rather than a QUILL key letter. It lists
everything in the document you can move to (headings, links, lists,
tables, block quotes, bookmarks, code blocks) with a filter that shows
how many of each there are. It also lists the document’s misspellings
and, while a search is active, the search hits, so you can jump to a
misspelled word or a match from the same place.
Quick Nav and QUILL key settings
The Navigation and QUILL Key page in Settings holds the rest of the choices for Quick Nav and the QUILL key:
- Wrap QUILL browse navigation carries on from the other end of the document when there is nothing more in the direction you are moving. On to begin with.
- QUILL browse feedback is how each move is signalled: Speech only (the default), Sound only, Speech and sound or Silent.
- Sticky browse mode keeps Quick Nav on after a move instead of going back to editing.
- QUILL key prefix timeout (seconds) is how long the QUILL key waits for its second key. The default is 2.5 seconds, and 0 means it waits until you press something.
- Browse mode follow-on timeout is how long Quick Nav
stays on between moves after you start it with
N: Instant, Fast (one and a half seconds), Normal (four seconds), Slow (eight seconds), Custom… or Unlimited, which is the default. With Custom, type your own time in milliseconds in the box that follows it. - Custom sound for browse mode entry (WAV file), Custom sound for browse mode exit (WAV file), Custom sound for browse navigation (WAV file) and Custom sound for browse not-found (WAV file) replace the four Quick Nav beeps with sounds of your own. Each has a Choose WAV file… button and a Preview button. Leave one blank to keep the beep.
- Include headings in Quick Nav, Include
links in Quick Nav and Include lists in Quick
Nav decide what the Quick Nav list (
Ctrl+Shift+Z) offers. All three are on to begin with. - Quick Nav debounce (milliseconds) is how long that list waits after you stop typing in its filter before it searches. The default is 250.
- Quick Nav minimum characters is how many letters you type before the filter starts matching, from 1 to 5. The default is 1.
QUILLBee’s tip: Lost in a long document? Press
Ctrl+Shift+Gravetwice, thenHto hop from heading to heading.Escputs you back to typing.
Bookmarks and marks
Bookmarks
A bookmark is a place you want to come back to, even days later. The commands live together on Navigate > Bookmarks:
- Set Bookmark (
Ctrl+Shift+B) drops a bookmark in the next free numbered slot. - Next Bookmark (
F2) and Previous Bookmark (Shift+F2) - Clear All Bookmarks (
Ctrl+Alt+B) - Set Bookmark 1 to Set Bookmark 9
(
Ctrl+Shift+1toCtrl+Shift+9), described under Numbered bookmarks below - Set Named Bookmark…, which asks for a name
- Go To Named Bookmark…
- List Named Bookmarks…
(
Alt+Shift+G) - Set Temporary Bookmark
(
Ctrl+Alt+J) - Go to Temporary Bookmark
(
Ctrl+Shift+J)
Bookmarks belong to each document and are kept between sessions. When you reopen a file, its bookmarks are still there. QUILL also remembers your last cursor position in each saved document and puts you back there when you reopen it. A new document that has never been saved keeps its bookmarks only until you close it; save it, and they are kept.
Bookmarks also stay on the right words as you edit. Each one remembers the text around it, so it follows that text even after you add or delete paragraphs above it. If the bookmarked text itself is deleted, the bookmark goes back to the position it remembered. This works for named and numbered bookmarks alike, and you do not have to do anything.
Temporary bookmark
Sometimes you just want to say “right here” and come straight back, with no name and no dialog. That is the temporary bookmark. Both commands are on Navigate > Bookmarks, just under List Named Bookmarks…, and in the command palette:
- Set Temporary Bookmark (
Ctrl+Alt+J) sets it at the cursor. - Go to Temporary Bookmark
(
Ctrl+Shift+J) jumps back to it.
Set it, move away, jump back. Setting a new one quietly replaces the old one. It is not kept between sessions: it is scratch paper for the work in front of you. Use a named bookmark for anything you want to find next week.
If you used the 0.9.0 betas, the temporary bookmark was on
Ctrl+Shift+K and Alt+Shift+K. Those keys now
belong to Lower Case and Previous Inline Note.
Numbered bookmarks
Numbered bookmarks give you fixed slots you set with one keystroke, no menu and nothing to type:
Ctrl+Shift+1throughCtrl+Shift+9set the bookmark for that slot at the cursor.Ctrl+Shift+Bdrops a bookmark in the next free slot.Ctrl+Alt+Bclears them all.
To get back to one, use F2 and Shift+F2,
the bookmark list (Alt+Shift+G), or Go To…
(Ctrl+G) with Bookmark chosen. They are stored like named
bookmarks, under names such as “Quick 3”, so they are kept with the
document. Going to a slot you have not set tells you so plainly.
Marks, bookmarks and selecting a block
These three all “mark a spot”, so they are easy to mix up. Here is what each one does.
Bookmarks are named places that are saved. They travel with the file, as described above. Use Set Named Bookmark…, Go To Named Bookmark… and List Named Bookmarks… when you want to name a place and come back to it days later.
The mark ring is a short stack of temporary jump points. It lasts only for the current session and is never saved.
- Set Temporary Mark (
Ctrl+Shift+M) drops a point at the cursor. The status bar says “Mark ring point set at line …, column … (temporary jump)”. - Jump to Previous Mark (
Ctrl+M) jumps back to the most recent mark and removes it from the ring. - Swap Cursor and Mark (
Ctrl+Alt+X) moves the cursor to the mark. - List Recent Marks (
Alt+M) shows the marks in the ring.
These commands only move the cursor. They do not select text and they do not copy anything. In some other editors you drop a mark, move away, and cut or copy everything in between. QUILL’s mark is not that. It is a breadcrumb you can jump back to.
To copy or cut from one point to another, select the
text. Put the cursor at the start, then either hold Shift while
you move to the end (arrows, Ctrl with the arrows, the Page
keys, Home and End) or use one of the selection commands below. Then
press Ctrl+C to copy or Ctrl+X to cut. There
is no separate “copy from the mark to the cursor” command; the selection
is what gets copied.
Selecting a block, a line or a paragraph. A block here means the indented block at the cursor: a run of lines at the same indent, like the inside of a list item or a code block. The selection commands are on Edit > Selection:
- Select Line (
Ctrl+Shift+E) selects the current line. - Select Paragraph (
Ctrl+Shift+H) selects the paragraph around the cursor. - Select Block (
Ctrl+Alt+Shift+B) selects the indented block at the cursor. - Select to Start/End of Line and Select to Start/End of Document.
- Expand Selection (
Ctrl+Shift+X) grows the selection one step at a time: word, line, paragraph, block, document, telling you the new size each time.
Each one tells you what it selected and how many words, so you know exactly what you have before you copy or delete it.
Favorite folders
Favorite folders are a short list of folders you want to reach quickly. They are different from the recent folders Windows keeps. Recent folders track what you opened lately; favorites track what you actually want to hand. A folder you use all the time but have not touched in months still belongs here.
- Add Current Folder to Favorites
(
Ctrl+Shift+GravethenShift+F) adds the current document’s folder. Save the document first if it is new. - Remove Favorite Folder…
(
Ctrl+Shift+GravethenShift+X) lets you choose a favorite to take off the list. - Open From Favorite Folder…
(
Ctrl+Shift+GravethenG) opens Quick Open, described next.
All three are on File > Favorite Folders.
Open From Favorite Folder
Open From Favorite Folder… opens a small window with a text box already focused, much like Quick Open in Visual Studio Code.
- Start typing part of a file name. The list below narrows as you type, across every favorite folder at once, and capital letters do not matter.
- Arrow to the file you want. Each entry tells you which favorite folder it came from.
- Press Enter, or choose OK, to open it.
By default QUILL looks only at the files directly inside each favorite folder, not in folders inside them, which keeps the list instant. Check Include subfolders to search every subfolder too. That search stops at a few thousand files, so even a very large folder cannot hang the window.
Folding and inline notes
Code folding
Folding lets you tuck away a heading section or a fenced code block
(```…```) so it is out of your way, without
ever hiding it from you.
- Toggle Fold (
Ctrl+Shift+[) folds or unfolds the smallest region around the cursor and tells you what happened: “Folded: 14 lines under ‘Chapter Two’” or “Unfolded: ‘Chapter Two’.” - Next Fold (
Alt+Shift+]) and Previous Fold (Alt+Shift+[) jump between regions you can fold, folded or not, and tell you the region’s name, whether it is folded, and how many lines it has. - List Folds (
Ctrl+Shift+]) opens a list of every region you can fold, with its state and line count. Pick one to jump to it, or fold and unfold it from there.
In most editors, folding hides lines and the arrow keys skip right over them, so a screen reader user cannot tell whether text was folded or deleted. QUILL never does that. Folding never changes the text, and arrowing by character, word or line works exactly as before. Arrow through a folded region and you will read every word of it. Folding only changes where the jump commands take you.
Inline notes
Inline notes are comments you attach to a line or a selection: a question, a reminder, a note to yourself while you draft, or your thoughts on a plan somebody sent you. They are on Tools > Writing and Language, and you can change any of their keys in the Keymap Editor.
- Add Inline Note… (
Alt+Shift+I) attaches a note to the selected text, or to the current line if nothing is selected. The Note on line at the top shows the start of that text, so you can check you are in the right place. Type the note and choose Save. - Next Inline Note (
Alt+Shift+J) and Previous Inline Note (Alt+Shift+K) move to the next or previous noted text, and QUILL reads the note. - Speak Inline Note (
Alt+Shift+H) reads the note at the cursor. Press it twice quickly to open the note so you can read, change or delete it. - Delete Inline Note… (
Alt+Shift+Delete) deletes the note at the cursor. QUILL reads you the note and asks first, and No is the default. - List Inline Notes… (
Alt+Shift+Enter) shows every note in the document in one list: the note, the line it is on, the text it is about, and whether it is private or in the file. PressEnterto go to a note,Deleteto delete one andF2to edit one. The buttons also let you Remove All notes (QUILL asks first), Copy All of them as plain text, or Export them to a Markdown or JSON file. - In Quick Nav,
NandShift+Nmove to the next and previous note too.
Each note remembers the exact text it was placed on, plus a little around it, so it follows that text as you edit. If that text is deleted, the note is kept, not lost: the list shows it last, marked “the text it was on is gone”, so you can read it and remove it. A new document keeps its notes until you close it; save it and they are kept.
Private notes and notes in the file
Normally a note is private. It is kept in QUILL’s own settings folder, the document itself is never changed, and nobody else ever sees it. That works in every kind of document.
In a Markdown or HTML document you can also write a note into the file. Check Write this note into the file in the Add Inline Note window, and the note goes into the document as a hidden comment on its own line, right after the text it is about:
Back up the uploads folder.
<!-- quill-note: And the database dump. -->
The file is still a perfectly good Markdown or HTML file. Web pages,
GitHub and other programs hide the comment, but anyone who opens the
file in a text editor, and any AI assistant you hand the file to, can
read your note. That makes it the way to review a plan an AI assistant
wrote: read it, leave your notes in the file, and give the file back.
Because a note in the file is part of the text, Ctrl+Z
takes back adding, changing or deleting one.
The check box remembers your last choice for each document. To start
every new note in the file, turn on Write new inline notes into
the file (the inline_notes_in_file setting) on the
Editing page in Settings. It is off unless you change
it.
Notes on the command line
A script, or an AI assistant working in a terminal, can read and clear the notes written into a file without opening QUILL:
quill --notes list plan.mdprints every note with its line and the text it is about. Add--jsonfor a list a program can read.quill --notes check plan.mdsays how many notes are left.quill --notes clear plan.mdremoves them all and saves the file, keeping its encoding and line endings.
The exit code tells a script what happened: 0 means done (or, for
check, no notes left), 3 means check found
notes still in the file, 1 means the file could not be read or written,
and 2 means the command was mistyped. Private notes are never shown
here; they stay yours.
Working in code
Code-aware editing
When you open a source file, QUILL loads a language profile based on the file extension. It knows HTML, Markdown, CSS, Python, JavaScript, TypeScript, C, C++, C#, PHP, Go, Rust, Kotlin, Shell, YAML, JSON, TOML and SQL, and treats anything else as plain text. The profile tells QUILL how the language is put together, so moving and announcements make sense for code.
- Next Token and Previous Token, on the Navigate menu, move by code token instead of by word. You land on the next name, keyword, operator or value, which is much easier to follow by ear than moving by character or word.
- Token movement goes well with the optional indentation tones described under Sound notifications and earcons, so you hear the structure as pitch while you move.
Setting the document language
QUILL normally goes by the file extension, but you can set the
language yourself for the current document. That helps with an unsaved
document, an unusual extension, or code you pasted into a plain
.txt file. You get the whole of that language’s editing
support:
- Bold and Italic insert the right
markup (
<strong>/<em>for HTML,**...**/*...*for Markdown). - The heading, table, list, and tag menu items become available for HTML and Markdown.
- Toggle Line/Block Comment uses the language’s
comment style (
#,//,<!-- -->,--). - Heading and structure navigation, the outline, link insertion and live preview all follow the language you chose.
There are three ways to set it, and they all do the same thing:
- Key:
Ctrl+Alt+F6opens the language picker. Type to find a language; the current one is already selected. - Menus: Navigate > Set Document Language… opens the same picker. Format > Document Language is a checkable list where you can switch with one key press and hear which language is active.
- Status bar: the Language part shows the current language, with (set) after it when you chose it yourself. Press Enter on it to open the picker.
Choose Auto-detect from file to go back to following
the file name. Setting a language never renames the file. If you set
HTML on a .txt file, QUILL reminds you to use Save
As to save it as .html. The choice applies to the
current tab and is forgotten when you close the file.
Automatic language detection
QUILL can guess the language when you paste or type code into a plain
.txt or new document. This is off by default. Turn it on in
Settings > Editing > Auto-detect document
language, which has four choices:
- Off: never guess. This is the default.
- Hint in the status bar only: the status bar quietly shows something like “Looks like HTML”. Nothing changes and nothing is spoken.
- Suggest and announce, you confirm: QUILL tells you which language it thinks this is (“This looks like HTML”) and you decide whether to set it.
- Switch automatically: QUILL sets the language and tells you.
QUILL waits a moment after you stop typing or pasting, then looks at the first several thousand characters. It is careful: it only acts when it is confident, never guesses on ordinary prose, and never overrides a real file extension or a language you set yourself. It also learns a little from the languages you use during a session. In every mode you either stay in control or hear what changed. Braille files and pasted braille are not affected, because braille has its own Braille Mode.
Abbreviation expansion
If you write HTML or CSS, three commands on the Edit
menu turn short Emmet-style abbreviations into full markup. You can type
ul>li.item$*3>a[href]{Item $} instead of a whole
three-item list.
- Expand Abbreviation expands the selection, or, with nothing selected, the word just before the cursor. It is one undo step, so one Undo puts it all back.
- Preview Abbreviation… asks for an abbreviation (filled in from your selection, if you have one) and shows the result in a new tab without touching your document. It is a safe way to try something.
- Explain Abbreviation… gives you a plain, indented breakdown of what an abbreviation means (tag, id, classes, attributes and how many times it repeats) before you expand it. It is the quickest way to learn the grammar by ear.
The usual Emmet operators work: child (>), sibling
(+), climb-up (^), grouping
((...)), multiplication (*N) and numbering
($, with $$ for zero-padded numbers). So do
ids (#id), classes (.a.b), attributes
([attr="value" bool-attr]) and text ({...}).
Common tags get sensible attributes if you leave them out:
a gets an empty href, and img
gets src and alt. Elements like
br and img never get a closing tag.
Some ready-made snippets expand as they are:
!gives a full HTML5 page.!a11ygives an HTML5 page with a skip link andheader/main/footerlandmarks in place.skiplinkgives just the skip link.form:a11ygives a labeled form field inside a fieldset.table:a11ygives a table with a caption and properly scoped header cells.
When the document is a .css file, all three commands
work with CSS shorthand instead, such as d:f for
display: flex;, pos:a for
position: absolute;, m10-20 for
margin: 10px 20px; and mt-10 for
margin-top: -10px;.
If QUILL cannot make sense of an abbreviation, the status bar tells you what it expected and where.
Quill Eraser
Quill Eraser (Tools > Writing & Language > Quill Eraser…) tidies the small mechanical slips in your text: extra spaces, spaces at the ends of lines, a missing space after punctuation, too many blank lines, and sentences that start with a small letter. It offers a fix for each one. It follows fixed rules, so there is no AI and nothing goes over the network.
To check only part of the document, select it and use Quill Eraser on Selection…. If nothing is selected, it offers to check the whole document.
What Quill Eraser checks
Each finding comes with a confidence level (High, Medium or Low) so you can decide what to fix first.
| Rule | Confidence | What it catches |
|---|---|---|
| Multiple spaces between words | High | Two or more spaces where one space belongs |
| Trailing spaces at end of line | High | Spaces or tabs at the end of a line |
| Space before punctuation | High | A space immediately before ,, .,
!, ?, ;, or : |
| Excessive blank lines | High | More consecutive blank lines than your configured maximum (default: 2) |
| Missing space after sentence punctuation | Medium | A sentence-ending ., !, or ?
directly followed by a letter |
| Missing space after comma, semicolon, or colon | Medium | A ,, ;, or : directly
followed by a letter |
| Sentence starts with lowercase letter | Medium | A sentence or paragraph that begins with a lowercase character |
Quill Eraser leaves web addresses, email addresses, file paths, code, decimal numbers and times alone. In a Markdown file it also skips fenced code blocks, inline code, front matter and link addresses.
Code files
If you run Quill Eraser on a code file (.py,
.js, .ts, .html and so on), it
asks first. You can check only for spaces at the ends of lines, which is
safe in code, or skip the check. The prose rules are never used on code
files.
The review dialog
When Quill Eraser finds something, it opens a review window that stays open while you keep working in the editor.
- The findings list shows each issue in order: confidence, type and line number.
- Select a finding and the pane below tells you what was found, what the fix is, and what it means in plain English.
- Apply Fix makes the fix and moves on to the next issue.
- Ignore hides the finding for this session without changing anything.
- Go to Issue takes you to the exact place in the editor with the text selected, so you can decide for yourself.
- Previous / Next move through the list.
- Rescan checks again after you have made changes by hand.
- Close closes the window.
QUILL tells you the result of every action.
Quill Eraser settings
Four settings at the end of the Spelling page in
Settings (Ctrl+,) control Quill Eraser. Each one’s name
starts with “Quill Eraser”, so typing eraser in Find a
setting lists all four:
| Setting | Default | What it does |
|---|---|---|
hygiene_min_confidence |
high |
Minimum confidence level to report. Set to medium or
low to see more findings. |
hygiene_allow_double_space_after_period |
off | Suppresses the “multiple spaces” rule when exactly two spaces follow
., !, or ?
(two-space-after-period style). |
hygiene_max_blank_lines |
2 | Maximum consecutive blank lines before a finding is raised. |
hygiene_rules_disabled |
(empty) | Comma-separated list of rule IDs to disable (e.g.
prose.lowercase_sentence_start,prose.missing_space_after_comma). |
The rule IDs you can put in the disabled list are
prose.multiple_spaces, prose.trailing_spaces,
prose.space_before_punctuation,
prose.excessive_blank_lines,
prose.missing_space_after_sentence_punct,
prose.missing_space_after_comma and
prose.lowercase_sentence_start.
What you learned, and where to go next
You can now find text in one document or many, jump by line, page,
heading or bookmark with Ctrl+G, and get back with
Alt+Left. You know what QUILL says about headings, lists
and tables, how Quick Nav moves you with single letters, and the
difference between bookmarks, marks and a selection. Favorite folders,
folding, inline notes, the code tools and Quill Eraser are there when
you want them.
To practise with QUILL guiding you, open Help >
Tutorials… (Ctrl+Alt+F1) and try “Get around a
long document”, “Find, replace, and search across files”, “Select, mark,
and move text”, “Tables, by ear” and “Quick Nav: single-letter
movement”. On the website, Own
the keyboard covers much of the same ground.
Next, Chapter 7, Spelling and words, shows you how to check spelling and find the right word.
Chapter 7: Spelling and words
This chapter is about getting the words right. You will check spelling a whole document at a time or one word at a time, hear exactly how a misspelled word is spelled, find a better word in the thesaurus, look up what a word means, and count what you have written. Near the end you will also find how to quieten QUILL’s sounds, or choose new ones. Everything here works on your own computer, with no AI and no internet connection, unless you choose otherwise. AI spelling and grammar help is in Chapter 10, AI, when you want it.
Spelling
QUILL checks spelling on your own computer. Nothing you write is uploaded, and no AI provider is involved. The everyday commands are on the Tools menu:
- Spell Check… (
F7) opens the Spelling Review, which walks you through every misspelling. - Spell Check Word (
Alt+Shift+F7) checks only the word you are on. - Next Misspelling (
Ctrl+F7) moves straight to the next one in the document, andCtrl+Shift+F7goes back to the previous one.
Spelling Review (F7)
Press F7 to start a guided spelling review.
- What it checks. If you have text selected, QUILL checks only the selection. With nothing selected, it reviews the whole document, starting at your caret.
- Where you land. The Spelling Review dialog opens with focus in a read-only Context field. The misspelled word is selected inside its sentence, so you hear it in context. You can arrow through it letter by letter or copy the text, just as you would in a read-only document.
The controls, in Tab order, are: Context, Change to, Suggestions, the Review most-frequent words first checkbox, then the buttons Change, Change All, Ignore Once, Ignore All, Read Sentence, Add to Dictionary, Undo Last and Close.
- Suggestions lists the corrections QUILL has for the word. Arrow through them; choosing one fills Change to for you.
- Change replaces this occurrence and moves to the next problem. Pressing Enter in the Change to field does the same.
- Change All replaces every remaining occurrence in
the part you are checking, and keeps the capitals as they were
(
tehbecomesthe,TehbecomesThe,TEHbecomesTHE). - Ignore Once skips this occurrence. Ignore All skips every occurrence, for this session only.
- Add to Dictionary adds the word to your personal dictionary for good.
- Undo Last takes back your last spelling action without closing the dialog. It is unavailable until you have done something.
- Read Sentence (
Ctrl+R) reads aloud the whole sentence around the misspelling, so you can hear the word in context without leaving the dialog. The Read Sentence button does the same thing. Alt+Wtakes you back to Context and selects the current word again, at any point. It is handy after you have been arrowing around the context.
When every problem has been dealt with, QUILL tells you how many words were changed, ignored and added to the dictionary, and puts you back in the document.
Review most-frequent words first
Normally the review goes from top to bottom. Check Review most-frequent words first in the dialog and it walks the misspellings by how often each word turns up instead, with the most common first. It is the same dialog and the same buttons (Change, Change All, Ignore Once, Ignore All, Add to Dictionary, Undo Last); only the order changes.
This is for really messy documents: a rough scan that came through OCR, or a document with one mistake repeated many times. Press Change All on the top word and the order is worked out again straight away, so whatever is now most common among what is left comes to the front. You clear the worst offenders first, without hunting for them in reading order. QUILL remembers the checkbox for next time.
How much the review says
Spelling review announcement verbosity, on the Spelling page of Settings, chooses how much the review tells you:
- Concise: progress numbers and the result of each action, and nothing else.
- Balanced (the default): the kind of problem, the current word, your progress and the results.
- Detailed: all of that, plus hints about the controls and reminders of what you are checking.
Four more settings on the same page belong to the review:
Spelling review context display mode: the Context box usually shows the sentence with the misspelling plus the sentences either side. Choose Full paragraph to see the whole paragraph instead; Read Sentence then reads the paragraph.
Spell out the misspelled word letter by letter: after telling you the misspelling, QUILL reads it letter by letter. On to begin with.
Pause before spelling the word (milliseconds) is how long it waits before spelling starts, from 100 to 3000. The default is 800.
Wrap spelling review to the beginning: when the review reaches the end of the document, it offers to carry on from the top back to where you started. On to begin with.
Spell Check Word (Alt+Shift+F7)
If you are used to checking just the word under the cursor in another
word processor, Spell Check Word
(Alt+Shift+F7) is that. It checks only the word at your
cursor and leaves the rest of the document alone.
- If the word is spelled correctly, QUILL says so and that is all. No dialog opens.
- If it is misspelled, a small list opens with the same choices as the right-click spelling menu: suggested corrections, Add to Dictionary and Ignore. Pick one and you are back to typing.
Use F7 when you want to work through a whole document or
selection. Use Alt+Shift+F7 when you only want to check the
one word in front of you.
Moving between misspellings
Sometimes you would rather stay in the document and hop from one
problem to the next. Ctrl+F7 moves to the next misspelling
and Ctrl+Shift+F7 to the previous one. When you land on
one, QUILL says the word and then spells it (see How a misspelling is
said, later in this chapter).
QUILLBee’s shortcut: Coming from Word?
Alt+F7also jumps to the next misspelling, just as it does there.
To hear them all in one place, open the Misspelling
List (Alt+Shift+L). It lists every misspelling in
document order. Arrow through it and press Enter to jump to any one.
Ranked spelling
Tools > Misspelling List (Ranked by Frequency)…
(Alt+Shift+R) shows the same list in a different order. The
word that turns up most often comes first, and each entry carries its
count, for example “teh (Ln 12, Col 4, 8 occurrences).”
A repeated typo or a single OCR misreading is usually the quickest
thing to fix first. Deal with one entry, by correcting it or with
Add to Dictionary, and you have dealt with every
occurrence of that word at once. Arrow through the list and press Enter
to jump to any occurrence, exactly as in the regular list. The
document-order list on Alt+Shift+L stays as it was, and it
is still the default.
Spell check as you type
With spell check as you type turned on, finishing a word the dictionary does not know plays a soft spelling sound, and the status line shows “Possible misspelling” with the word. The sound comes from your current sound pack; if the pack has no spelling sound, you hear the Windows beep instead. QUILL uses a sound here, not speech, so it never talks over your screen reader in the middle of a sentence.
The check waits until you have finished a word, with a space, a comma or a new line. It does not judge a word you are still typing, so “recie” on the way to “receive” never sets it off.
Some places are full of things that look like misspellings, so the live check stays quiet there: web addresses, email addresses, Markdown inline code (between backticks) and fenced code blocks. The F7 review still covers the whole document; only the alert as you type skips them.
You can switch the spelling sound on or off by itself in Tools > Sound Scheme (look for “Possible misspelling as you type”). The spell check as you type toggle turns the whole live check on or off.
Quiet in code files
In source and configuration files the live check says nothing at all.
That covers .py, .json, .js,
.css, .ps1, .log,
.yml and the other coding file types. Almost every name and
setting in a file like that is a word no dictionary knows, so you would
hear nothing but wrong alerts.
Markdown is writing, so .md files are
checked. Only the code blocks, inline code, web addresses and email
addresses inside them are skipped.
The setting is
spellcheck_skip_code_files, and it is on
by default. Turn it off if you want the live check everywhere, whatever
the file type.
F7 is never affected. The Spelling Review checks
whatever document you run it on, a code file included. Pressing
F7 is you asking for a check.
Spell check a document before saving
Turn on Settings > Editing > Spell check a document before saving (off by default) and QUILL opens the Spelling Review for you each time you save, so you can fix misspellings before the file is written. Fix or skip them as usual; the save then goes ahead with your corrections. This applies to Save and Save As for the document you are working on.
Spell-check language
Tools > Spell Check Language… chooses the
language the spell checker uses. It affects both the F7
review and the check as you type.
English (United States) is built in and works offline straight away. Other languages are downloaded when you first choose them. Pick Spanish (Spain) or French (France), for example, and QUILL fetches that dictionary from its own verified source. The download is checksum-checked, and a progress window lets you cancel it. After that the language works offline, just like English.
QUILL remembers your choice between sessions. If you are offline, or you cancel the download, English keeps working and nothing else changes. The downloaded dictionaries are kept in your QUILL data folder, so reinstalling or upgrading QUILL never makes you fetch them again.
How a misspelling is said
Speech alone cannot tell you what is wrong with a misspelled word.
“receive” and “recieve” sound the same, so hearing the word tells you
nothing. The letters are the answer. So when you land
on a misspelling, with Next or Previous Misspelling or in the
F7 review, QUILL says the word, pauses, and then spells
it.
The spelling comes as a second, separate announcement, so you can cut it off. Press your next key and the spelling is cancelled before you hear it. If you are moving fast you lose nothing, and if you want the letters they are there.
Twelve settings under Spelling in Settings control
all of this. Both editors also gather them in a window of their own. In
QUILL it is Spelling Announcements, on
Ctrl+Alt+Shift+F6, or type its name in the command palette
(Ctrl+Shift+P). In QUILL Lite it is Tools >
Spelling > Announcements. They are the same twelve settings
in the same file, so setting them up once sets up both editors.
While you are typing
- Play a sound when you type a misspelling
(
spelling_alert_sound) plays the falling blip when you finish a misspelled word. Turn it off for silence. - Also say the word when you type a misspelling
(
spelling_alert_speech) speaks the word as well. It is off by default, because being interrupted while you are writing costs more than it tells you. - Shortest gap between two alerts for the same word
(milliseconds) (
spelling_alert_repeat_ms) is the shortest time before the same word is reported again, so one stubborn name does not become a drumbeat. Zero means every time. The default is 750.
Whichever way you set those two, the status bar always shows the word, for example “Possible misspelling: teest”, so you can read it with your screen reader whenever you like. QUILL does not speak that status line on its own; it is spoken only when Also say the word when you type a misspelling is on, which is what the setting means in QUILL Lite too.
Spelling a word out
- Spell misspelled words out letter by letter
(
spell_aloud_enabled) is the main switch. - How letters are spoken
(
spell_aloud_style) chooses how the letters are said. Plain Letters (R, E, C) are fastest. The Phonetic alphabet (romeo, echo, charlie) is clear where B, D, E, P, T and V all sound alike. Letters, then the phonetic alphabet is for learning a word rather than checking one. - Say which letters are capitals
(
spell_aloud_capitals) says “cap” before a capital letter, so you can tell MacDonald from Macdonald. It is worth having, because letters are always spoken as capitals, whatever the word does (several voices read a single lower-case letter as a word).
When the letters follow
There are three pauses, because the right wait is different in each place.
- Pause before spelling a word (milliseconds)
(
spell_aloud_delay_ms) is the pause in theF7review, where you have stopped to decide. The default is 800 ms. - Spell the word when you move to a misspelling
(
spell_aloud_on_navigation) and Pause before spelling when moving between misspellings (milliseconds) (spell_aloud_navigation_delay_ms) cover Next and Previous Misspelling. There you may just be passing through, so the default pause is shorter, 600 ms. - Spell each suggestion as you arrow through them
(
spell_aloud_suggestions) and Pause before spelling a suggestion (milliseconds) (spell_aloud_suggestion_delay_ms) spell whichever correction you arrow onto in the suggestions. Choosing between two spellings by ear is as hard in a list as it is in the document. - Spell the first suggestion on arrival
(
spell_aloud_first_suggestion) also spells the top suggestion when the review reaches a new word. It is off by default, because it doubles what you hear each time you arrive.
The thesaurus, Look Up and other word tools
The rest of the writing and language commands on the Tools menu are about words themselves: finding a better one, finding out what one means, and counting them. Chapter 4, Writing and editing, gives a short introduction; this is the fuller story.
Thesaurus (Shift+F7)
Tools > Thesaurus… (Shift+F7) opens
a two-pane picker for the word you are on. It finds the word even when
it is in another form, so “running” finds “run”, and when you choose a
replacement it goes back in the form your sentence needs.
Look Up Word (Alt+F10)
Look Up Word… (Alt+F10) is a dictionary
with no AI. Out of the box it uses the thesaurus, which works offline.
Check Use online sources in the window and it also
brings definitions, more words, and a Wikipedia summary from three free
online services. Nothing goes online until you check that box.
Say Word Summary and Dictionary Status
- Say Word Summary (
Ctrl+Alt+Shift+[) says what the thesaurus knows about the word you are on, without opening a window. - Dictionary Status… (
Alt+Shift+;) shows which spelling engine QUILL is using, how many words are in your personal, document and project dictionaries, and whether the thesaurus is installed.
Document Statistics (Ctrl+Shift+G)
Tools > Document Statistics…
(Ctrl+Shift+G) gives you the number of words, characters,
lines and paragraphs, and the reading time. It used to be called Word
Count. It now has the same name and key as in Word and QUILL Lite.
Sounds, and turning them off
QUILL plays short sounds, called earcons, for things your screen reader does not mention, like a misspelling or a paste. Here is how to silence them all at once, change one, or build a set of your own.
Quiet mode
Alt+Shift+M silences every sound at once. Press it again
to bring them back. It is one key so you can reach it while the noise is
happening: on a call, in a quiet room, or when you have simply heard
enough for today. The setting is shared with QUILL Lite, so silencing
one editor silences both.
The Sound Scheme window
Tools > Reading and Dictation > Sound Scheme…
(Ctrl+Alt+Shift+O) lists every sound QUILL can make, and
lets you hear them.
As you arrow through the list, each event plays as you land on it. That turns a list of about a hundred and forty sound names into something you can browse by ear. It is a checkbox under the list, so if you are hunting for one row you can turn it off and pass the rest in silence.
Each row tells you everything about itself: its group, the event, whether it is switched on, which file it plays and how long that file is. Your screen reader reads it all as you arrive, so you never have to Tab away to find out. The buttons underneath work on the row you are on:
| Button | What it does |
|---|---|
| Play | Play this event now, even when the event is switched off |
| Switched on | Silence this one event without changing which sound it has |
| Browse… | Use a WAV file of your own |
| No Sound | Remove the sound from this event entirely |
| Use Default | Put this one event back to the sound the scheme ships |
QUILL refuses a file that is not a WAV, is longer than ten seconds, or is bigger than two megabytes, and tells you why when you choose it. Better to hear about it then than to have the event go silent later with no clue why.
- Save As Scheme saves the whole set under a name you choose, as an ordinary folder with the sounds copied into it. It keeps working after you tidy your Downloads folder, and you can zip it up and send it to a friend.
- Delete Scheme removes one of your own schemes. The schemes that come with QUILL cannot be deleted.
- Restore All Defaults puts every event back and switches them all on. It always works completely, because QUILL never overwrites the sounds it ships.
QUILL Lite opens the same window over the same schemes, so a scheme you make in one editor is offered in the other.
The sounds themselves
The Ink pack that comes with QUILL has a sound for every event. That includes the ones desktop programs have had for decades: open, close, cut, copy, paste, delete, undo, redo, print, information, question and task finished. Those are the moments a screen reader says nothing about; nothing is announced when a paste lands, for example.
Related sounds share a tone and differ by direction, so you learn a family once instead of one sound at a time.
- Undo and redo are the same figure, played backwards from each other.
- Open and close are one pair of bells, rising and falling. App start and app exit are the same pair, one note longer.
- Cut, copy and paste are one dry wooden tick in three gestures. Delete is that tick dropped an octave and a half, with a breath of noise underneath.
- Nothing to undo does not move in pitch at all, because nothing moved.
Starting with a blank document, or not
When you start QUILL without opening anything, it gives you an empty Untitled document, as most editors do. If you always open an existing file and would rather not close a blank one every time, turn off open_blank_document_at_startup, under General in Settings.
Turning it off changes only that one case. A file you double-clicked, a file named on the command line, the documents from your last session and recovered unsaved work all still open. QUILL Lite has the same setting, with the same name, in Preferences.
Spelling keys at a glance
These work straight from the document, without opening a dialog first.
| Key | Action |
|---|---|
F7 |
Open the Spelling Review |
Alt+Shift+F7 |
Spell Check Word, the word at the cursor |
Ctrl+F7 |
Jump to the next misspelling |
Ctrl+Shift+F7 |
Jump to the previous misspelling |
Alt+Shift+L |
Misspelling List |
Alt+Shift+R |
Misspelling List, ranked by frequency |
Shift+F7 |
Thesaurus |
Alt+F10 |
Look Up Word |
Ctrl+Alt+Shift+[ |
Say Word Summary |
Alt+Shift+; |
Dictionary Status |
Ctrl+Alt+F9 |
Add Word to Dictionary, the word at the cursor |
Add Word to Dictionary (Ctrl+Alt+F9)
teaches your personal dictionary the word at the cursor, so a name or a
word from your work stops being called a misspelling, in this document
and every other. If the word is already there, QUILL tells you and
changes nothing.
What you learned, and where to go next
You can now check a whole document with F7, or one word
with Alt+Shift+F7, and hop between misspellings with
Ctrl+F7. You know how to put the most common mistakes
first, how QUILL spells a word out and how to tune that, and how to pick
a spell-check language. You met the thesaurus, Look Up Word and Document
Statistics, and you can silence QUILL’s sounds with
Alt+Shift+M or change them in the Sound Scheme window.
To practise with QUILL open, try the lesson “Spelling, words, and the
thesaurus” in Help > Tutorials…
(Ctrl+Alt+F1).
Next, Chapter 8, Reading, reviewing and listening, shows you how to have your work read back to you and how to check a document before you share it.
Chapter 8: Reading, reviewing and listening
This chapter is about taking things in rather than typing them. You will have QUILL read your document to you, look closely at text you did not write, see the formatting that normally stays hidden, and compare two versions of a file. Later on it covers turning documents into audiobooks, and keeping your place in everything you listen to. Start with Read Aloud. The rest is there when you need it.
Read Aloud
Read Aloud speaks your document in a voice of your choosing, separate from your screen reader. It is handy for proofreading by ear, for resting your ears from a fast screen reader voice, or for simply listening to a long piece. You can start, pause, stop, preview, and choose a voice.
Starting and stopping
Everything for listening lives on Tools > Reading and Dictation:
- Read Aloud is a submenu:
- Start / Pause (press the QUILL key, then
R) starts reading from the cursor, and pauses or carries on when you press it again. - Voice… and Settings… choose the voice and how fast, how loud and how high it speaks.
- Generate Audio… saves the reading as a sound file instead of playing it, described below.
- Announcement Backend… chooses how QUILL’s own short messages reach you: automatically, through your screen reader, or on the status bar only.
- Announcement Trace (in Settings)… opens Settings at the switch that keeps a record of QUILL’s announcements. It is only useful when support asks you for it, and it never records your document.
- Start / Pause (press the QUILL key, then
- Stop Reading (press the QUILL key, then
Shift+R) stops the current reading straight away. - Say Selected (
Ctrl+Shift+Y) reads the text you have selected. - Read All (
Alt+F8) reads from the cursor to the end of the document. - OCR Image…, OCR Clipboard Image and OCR Screen Capture… turn a picture of text into text you can read. There is more on them under OCR Image, later in this chapter.
Generate Audio… makes a recording of your document in your Read Aloud voice. It uses the selection if you have one, and the whole document if you do not. Choose a name and a type in the save window: a Wave file always, and MP3, M4A, M4B audiobook, OGG, Opus or FLAC as well when the free ffmpeg tool is on your computer. Making audio from your documents, later in this chapter, covers the bigger jobs.
There is one setting worth knowing about. Move cursor to follow Read Aloud (in Settings > Read Aloud) makes the cursor select each sentence as it is read, so the caret tracks what you hear and stops where the reading stopped. It is off by default. With a screen reader running, moving the selection makes the screen reader say “selected” over the Read Aloud voice. If you are sighted or have low vision and want the cursor to follow along, turn it on.
The rest of the Read Aloud page in Settings tunes the voice:
- Read Aloud engine chooses which speech engine reads. Choosing a voice, below, explains them.
- Read Aloud rate is the speed of the Windows voice in words per minute, from 80 to 450. The default is 200.
- Read Aloud volume runs from 0 to 100. The default is 100.
- Read Aloud pitch runs from 0 to 100. The default is 50.
- Read Aloud sentence pause (milliseconds) adds a pause between sentences, up to two seconds. The default is no extra pause.
- ElevenLabs Read Aloud voice and ElevenLabs Read Aloud model are used when the engine is ElevenLabs. Pick a voice in the Voice Browser rather than typing one; left blank, ElevenLabs uses its default voice and model.
- AI Voice provider, AI Voice model and AI Voice choose the cloud voice used by Read Aloud with AI Voice and by audio export: OpenAI (the default), Google Gemini, or ElevenLabs (export only). Leave the model and voice on Provider default unless you have a favourite.
Choosing a voice
Read Aloud uses voices on your own computer. The Windows system voice runs on SAPI 5. It is always there, works offline and needs no download, so Read Aloud works the moment QUILL is installed. DECtalk, eSpeak NG, Piper, and Kokoro (neural, offline) are extra downloads from Speech Center, which keeps the installer smaller. Before any download starts, QUILL tells you what is available right now and what it suggests you do next. For cloud voices, see Read Aloud with AI Voice, which covers OpenAI and Google Gemini voices.
The Kokoro voice models (about 120 MB), the classic DECtalk runtime (about 2 MB), and the eSpeak NG engine with its voice data (about 40 MB) are not in the installer. The first time you choose one of these voices, QUILL downloads it for you from its own verified source. The download is checksum-checked and has a progress window you can cancel. Your other voices, including the SAPI 5 system voice, keep working while it downloads. If you are upgrading from a version that bundled these, your existing copies are kept and keep working, so there is nothing to download.
Manage Voices is the Speech (Offline) tab of the Speech Settings dialog. It lists SAPI 5, DECtalk, Piper, Kokoro, and eSpeak NG. ElevenLabs, the only cloud voice, has its own Speech (Online) tab, so local and cloud voices are never mixed in one list. The Set as Default button (also on the voice list’s right-click menu) applies your engine and voice choice at once, without closing the dialog with OK.
To hear a voice before you choose it:
- In Manage Voices, select the voice.
- Press the Preview button.
If the voice is already downloaded, QUILL speaks the preview phrase with that voice’s real model. If it is not downloaded yet (a Kokoro voice, for example), QUILL plays a short pre-recorded sample so you can still hear it before you decide. The rate, volume, pitch, and speed controls only apply to real speech, so they stay dimmed until the voice is downloaded.
Starting a new preview stops the one already playing, so previews never overlap. Some neural voices take a moment to get going. While they do, QUILL plays a short earcon and, by default, says “Generating preview, please wait”. You can turn either off on its own: the earcon in Tools > Reading and Dictation > Sound Scheme…, and the announcement in Settings > Accessibility and Announcements. While a preview is generating or playing, the Preview/Test button becomes a Stop button, so you can cancel it at any time.
Voices in other languages
Read Aloud speaks more than English. The Windows engine lists every voice installed on your PC, in any language. Add one in Windows Settings under Time & language > Speech > Manage voices (Italian’s Elsa, say, or a Spanish, French, German, or Japanese voice) and it appears in QUILL’s voice list, ready to use, with nothing to download from QUILL.
The offline neural voices go further too:
- Kokoro includes Spanish, French, Hindi, Italian, and Brazilian Portuguese voices. They are part of the voice pack you already downloaded, so picking one just works.
- The Piper catalog includes Italian voices (Paola and Riccardo) that you download like any other.
- eSpeak NG offers those languages from its built-in data.
Pick the voice whose language matches your document, and Read Aloud, audiobook export, and batch speech all speak it correctly.
Text cleanup for speech
Real documents are full of typography that trips up speech engines. The optional text cleanup pass (turn it on in Read Aloud settings) fixes curly quotes, em and en dashes, ellipses, invisible spaces, ligatures, bullets, symbols, fractions, and emoji, the same way every time. It also speaks phone numbers, emails, and URLs clearly. For each type you choose whether to announce it, speak it, or speak it and then repeat it, which makes an address easy to catch. Cleanup runs first, before anything else, so live Read Aloud and batch export sound the same.
Teaching QUILL how to say a word
Tools > Speech > Manage Pronunciations… teaches QUILL how to say particular words: names, brands, acronyms, and technical terms. Each entry is a substitution, either literal or a regular expression, and can be case-sensitive. QUILL applies it silently to the text just before speaking, so a correction is heard everywhere speech happens, in batch export and live Read Aloud alike.
- A dictionary can be global (all projects) or belong to one project.
- An entry can target a specific engine.
- You can preview an entry to hear the result.
- A small starter dictionary already covers common terms.
SSML Builder and SSML playback
For fine control over how a passage is spoken, the SSML
Builder dialog writes <speak> markup for you
from ordinary controls: emphasis, pauses (<break>),
say-as, phonemes, and prosody. A read-only preview shows the markup it
made, so you never type the tags yourself. Read Aloud plays this markup
natively on SAPI 5 and eSpeak NG, so the pauses and
emphasis happen instead of being read out.
Read Document in Browser (experimental)
Your web browser has voices QUILL’s own engines cannot reach, including Microsoft Edge’s “Online (Natural)” voices. This optional feature reads your document with them.
To turn it on:
- Open Settings > Experimental.
- Check the acknowledgement box.
- Turn on Read the document aloud in your browser.
- Apply Settings. It works straight away, with no restart.
A Read in Browser (Experimental) item then appears under Tools > Reading & Dictation > Read Aloud, and the command palette gains Read Document in Browser (Experimental).
When you use it, QUILL writes a self-contained, accessible reader page and opens it in the browser you chose under Settings > General > Preview browser. The page has:
- a labelled Voice picker. Each voice is marked “on this device” or “online”, and the list is filtered to your QUILL display language. Check Show all languages to see the rest.
- a Speed slider.
- Play and Stop buttons.
Focus lands on Play, changes are announced through a live region, and Escape stops. Reading goes section by section, so even a book-length document stays reliable. Pause keeps your place and tells you where you are (“Paused at section 12 of 300”), and resuming carries on from that section. Stop goes back to the top. Your voice and speed are remembered between sessions, and the document text carries your display-language tag so a screen reader reading the page pronounces it correctly.
About privacy: QUILL itself makes no network call, and no audio file is made. Voices marked “on this device” speak locally. The browser’s “Online (Natural)” voices are made in the voice company’s cloud, so choosing one sends the text being read to that service. Pick an on-device voice to keep everything local. The reader page holds your document text. It is written to QUILL’s app-data folder and deleted when you close QUILL, so no plain copy is left behind.
Voice commands on the same menu
The Speech menus also hold QUILL’s voice commands. They are listed here so you know what they are when you meet them. Chapter 9, Dictation and transcription, covers them properly.
- Voice Command (Offline) (Tools > Speech) is push-to-talk for QUILL. Run it, speak one command such as “save file”, “word count” or “next heading”, then run it again to stop and act. Recognition happens entirely on your computer with the offline speech engine, and only a safe list of non-destructive commands can ever run, so a misheard phrase cannot do damage. Say “cancel” or “never mind” to give up. Turn it on with the Voice commands (push-to-talk) setting. It is off by default and always off in Safe Mode.
- Voice Conversation Mode (Tools > Speech) is the hands-free version. Run it once and QUILL listens for a command, then keeps a short follow-up window open after acting, so you can chain commands (“next heading”, then “read aloud”, then “word count”) without arming it again. A sound marks every state: a rising chime when conversation mode starts, a soft two-note when the microphone opens, a gentle rise when your command is recognized (with a brief moment to say “cancel” before it runs), a sparkle when the action finishes, a quiet tick while QUILL is working, and a calm falling tone if nothing matched. Run it again, or say “stop”, to turn it off. The nine cues are Sound Events you can retune or replace in any sound pack. Four settings let you pace it to your own rhythm: the pause that ends a command, the cancel window, the follow-up window, and the “still working” tick interval. Set any of them to 0 to switch that part off. It uses the same on-device recognition and the same safe list as Voice Command, and is also off in Safe Mode.
- Listen for Hey QUILL (Tools > Speech) turns on always-listening. QUILL listens continuously, on your computer, for the phrase “Hey QUILL”. Say “Hey QUILL, save file” to run a command straight away, or just “Hey QUILL” to start one. The status bar shows that the microphone is live and plays a reminder now and then, so an open microphone never takes you by surprise. Run the command again, or say “stop”, to end it. The Listen for ‘Hey QUILL’ (wake word) check box on the Transcription page of Settings is the same switch, so turning it on in either place turns it on in both; check it and press OK, and QUILL starts listening straight away. If voice commands are off, QUILL tells you and leaves the box unchecked. Normally listening stops when you close QUILL, so the microphone is never on by surprise the next time. Turn on Keep listening for “Hey QUILL” across restarts and QUILL picks up listening again when it starts. Off in Safe Mode.
- Speak Voice Status (Tools > Speech) tells you what the voice features are doing right now: whether QUILL is listening for “Hey QUILL”, whether conversation mode is on, and whether it is listening for a command. When none of them is, it says “Voice is not listening right now”, which is the quick way to be sure the microphone is closed.
- Ask a question by voice. In conversation or wake mode, if you speak a question rather than a command (starting with “ask”, or shaped like a question, such as “how do I save my document”), QUILL opens Ask QUILL with the question filled in and ready to send. You press Enter to send it, so a person always decides what reaches the AI. This needs AI set up. Questions are the only thing voice ever sends to a network service, and never on their own.
For the complete reference (every voice mode, every spoken command, and the privacy rules) see Voice Interaction.
Tools for Reading, Review, and Inspection
These tools help when a file is hard to read, or when you need to know exactly what is in it. They answer questions like “which kind of space is that?”, “where does the bold end?” and “did this scan come through properly?”
Describe Character at Cursor
Some characters sound the same but are not: a curly “smart” quote and
a straight apostrophe, a no-break space and an ordinary space, an
invisible zero-width space that quietly breaks a search, or a stray
byte-order mark pasted from the web. Tools > Advanced >
Describe Character at Cursor (Ctrl+Shift+C) tells
you exactly what sits under the cursor. It says the answer where you are
and leaves it in the status bar, so you can read it again.
When you want to study a character, Character
Details (Ctrl+Alt+C) opens the full description in
a read-only window, the same kind F1 help uses, so your screen reader
can read it all in one pass or line by line. It gives:
- the character’s name (for example “No-break space” or “Right single quotation mark”),
- its Unicode code point in both hexadecimal and decimal,
- its category in plain words (uppercase letter, dash punctuation, control character, and so on), and
- a note for the invisible characters that are easy to miss, plus a flag when the character is not ASCII.
If the cursor is at the very end of the document, it tells you so instead of guessing.
Reveal Codes (Alt+F3)
QUILL keeps formatting codes hidden, so your editing text stays clean and fast. Reveal Codes lets you see and hear every one of them when you ask. If you used WordPerfect, you will know it: this is the same idea, built for a screen reader.
Press Alt+F3 (or check View > Reveal
Codes) to open a pane below the editor. It shows your document
as an ordered stream of bracketed codes and text:
[Bold On], [Font: Arial],
[Size: 14], [Center],
[Heading 2], [Link: ...], [Tab],
[¶ Hard Return], [No-Break Space],
[Smart Quote], and so on. The editor itself does not
change. Reveal Codes is a window onto the hidden formatting, not a
different way of editing.
Reveal Codes is hidden by default and costs nothing until you open it.
QUILLBee’s tip: Not sure whether a word is really bold, or where the bold stops? Press
Alt+F3, arrow to it, and you will hear “bold on” right where it starts. PressAlt+F3again to close the pane.
Moving between the panes
F6 moves through the regions (Editor, then Reveal Codes
when it is shown, then the Status Bar), and Shift+F6 goes
back, just like switching windows. The two carets stay in step however
you move: arrow keys, word jumps, Home and End, Page Up and Page Down, a
mouse click, or a jump from Find. Move in the editor and the pane
follows to the same spot. Move in the pane and the editor’s cursor
follows to the matching place. Sit in whichever you like and your place
in the document comes with you.
Moving through the codes
In the default Flowed view the pane reads like your document with the hidden formatting showing, and the caret moves the way it does in the editor:
Left ArrowandRight Arrowmove one character at a time, but step over a whole code in one go. One press moves you across[Bold On]and your screen reader just says “bold on”. It is never spelled out letter by letter.Ctrl+LeftandCtrl+Rightmove by word, stopping at each code.Up ArrowandDown Arrowmove by line and read the new line, as in the editor.HomeandEndgo to the start and end of the line.Ctrl+HomeandCtrl+Endgo to the top and bottom of the document.- Land on a code and you hear it named as one thing: “bold on”, “tab”, “centred”, “font Arial”. An opening code also tells you how far its formatting reaches (“bold on, 12 characters”).
While you arrow through the pane, your screen reader does the talking. The region is named once when you arrive, and after that you hear the character, word, line, or code your screen reader reads. QUILL puts its fuller phrase (for example “italic on, 15 characters”) quietly in the status bar, where you can read it whenever you want it. Jumps you ask for (next or previous code, go to the matching pair) and mouse clicks are still spoken by QUILL.
If you would rather hear QUILL’s own phrase on every arrow press, turn on Reveal Codes: Speak Codes Aloud in the command palette. It is off by default.
In either view you can also jump code to code, skipping the plain text, and from an opening code to its matching close.
Editing a run in place (F2)
- Move onto text that sits between a pair of formatting codes, for
example the words inside
[Bold On] ... [Bold Off]. - Press
F2. The pane limits you to just that stretch of text, and you can edit it freely. - Press Enter to put your change back into the document, or Escape to cancel.
The codes around it are left exactly as they were. The whole stretch
edits as one piece, so a run that contains a [Tab] or a
code inside it (bold text with one italic word, say) comes along
together. The inner codes appear as their markup and are put straight
back when you press Enter. If you press F2 on plain text with no
formatting around it, QUILL tells you there is nothing to edit
there.
Views and how much it says
In Settings > Editing (or on the View menu) you can choose:
- Flowed (the default): the interactive pane
described above, with codes shown inside the running text
(
[Bold On]Hello[Bold Off]), movement by character, and F2 editing. It is the closest to the classic WordPerfect look and the most natural layout on a braille display. - Structured: one item per code in a list. It is clear and labelled, and good for scanning structure. Your screen reader reads each item as you arrow through it. Movement by character, word and line, and F2 editing, belong to the Flowed view only.
- Verbosity: quiet (just the code name), balanced (adds how far an opening code reaches), or detailed (adds Unicode notes for invisible characters).
QUILL remembers your view and verbosity between sessions.
EPUB Navigator
When you open an EPUB, the navigator lets you move chapter by chapter instead of scrolling blindly through one long block of text.
Chapter headings are also placed in the text itself, so single-key
heading navigation (H and Shift+H) walks every
heading in the book, not just the chapter breaks. Many older or
home-made EPUBs never used real headings at all. For those, QUILL works
the headings out from the book’s layout (a paragraph styled as a title
or chapter, or a short bold line on its own), so heading navigation and
the chapter outline still work where they would otherwise be empty.
Equations are spoken, not skipped. When a chapter contains
mathematics (MathML, or LaTeX written as a math span or
between $$...$$ or \(...\) delimiters), QUILL
turns each equation into plain words and places it in the text as “Math
Equation: …” so you hear the formula as part of its sentence. It uses
the same math speech as the editor: the MathCAT engine when it is
installed, and QUILL’s built-in reader otherwise. A formula QUILL cannot
understand is read as its plain source instead of being dropped, and a
book with no math reads just as before.
OCR Image
OCR Image… (on Tools > Reading and Dictation) reads the text out of a picture, using optical character recognition on your own computer. Nothing happens behind your back: you choose the image, confirm, and hear progress as it works.
Two more commands on the same menu skip the file altogether:
- OCR Clipboard Image reads the picture you have just copied, for example with the Print Screen key or Copy Image in a web browser. If there is no picture on the clipboard, QUILL tells you so.
- OCR Screen Capture… takes a picture of the screen and reads it. QUILL asks whether you want The whole screen or The active window, with the active window already chosen.
Both show you the recognised text to review, just like OCR Image.
Document intake and extraction quality
When you bring in a scanned PDF or another hard-to-read file, the text QUILL pulls out may not be perfect. These commands help you check. Instead of assuming every import is right, QUILL helps you ask whether the extraction is good enough, what may have been lost, and whether you should quote from it directly.
Comparing documents
When you have two versions of something (a draft and the edited copy, or your file and the one that came back by email), comparing them tells you exactly what changed. Everything happens on your own computer. You can compare one file with another, review several open documents, move through the differences one at a time with both documents following along, and make a summary of what changed.
The Comparison menu
Tools > Comparison holds:
- Compare with File…
- Compare Open Documents
- Next Difference / Previous Difference
- Announce Current Difference
- Difference List…
- Toggle Synchronized Navigation
- Toggle Ignore Whitespace
- Compare Options…
- Generate Accessible Report
- Create Difference Summary
- Copy Current Difference / Copy All Differences
Toggle Ignore Whitespace decides whether spaces count as a change. Each press moves one step and says where you are: exact (every space counts), ignore trailing (spaces at the ends of lines do not count), then ignore all (no difference in spacing counts), and back to exact. Use it when one copy went through a program that tidied the spacing and you only care about the words.
Generate Accessible Report writes every difference into a new Markdown document, under a heading that names the two files and says how many differences there are. Because it is an ordinary document, you can read it at your own pace, search it, and save or send it.
Moving through the differences
Once a comparison is open, these keys do most of the work:
Ctrl+Alt+Shift+.moves to the next difference.Ctrl+Alt+Shift+,moves to the previous one.Ctrl+Alt+Shift+Dreads the current difference.
The compare dialog is a list you can review with your screen reader, one difference at a time, entirely from the keyboard.
Compare sounds
If you use a sound pack, compare mode plays short earcons: one when a
comparison opens, one when it closes, separate ticks for moving to the
next or previous difference, and a soft “blocked” tone when you reach
the first or last difference and there is nothing further. You can turn
each one on or off in Tools > Reading and Dictation >
Sound Scheme… (Ctrl+Alt+Shift+O), under the
Compare section. The topic on sound notifications and earcons has more
about sound packs.
Making audio from your documents
QUILL can turn your writing into audio files: a single document, a whole folder, or a chaptered audiobook ready to publish. This section is for when you want something to keep, share or put on a phone. Live listening is Read Aloud, earlier in this chapter.
Audiobook and Batch Speech
Tools > Speech > Audiobook & Batch Speech…
(Ctrl+Shift+Grave then Y) is the guided home
for audio production. It turns a whole folder of documents into speech
audio in one pass, and it builds chaptered audiobooks from documents,
from a folder of recordings, or from both. It is a wizard that asks one
thing at a time. It is listed in the command palette under “Audio
Studio…”. It replaced the old single-page Batch Export to Speech Audio
dialog; every option is still there, spread across clear steps, and your
saved project settings still fill everything in.
What do you want to make
The first page asks what you want to make. It remembers which one you chose last time and selects it for you.
- Narrate documents into an audiobook or speech audio. The steps are: What should I read? (folder, file types, filters); Who should read it? (engine, voice with a preview button, pace, round-robin voices, voice casting rules, translated editions); How should chapters work? (chapter mode, spoken headings, the transition sounder and its volume, pauses); Output and diagnostics (format, existing-file policy, loudness, incremental-rebuild reuse, dry run, temp folder); the book page (optional, to put everything together into one audiobook); and a summary in plain words.
- Combine audio files into one chaptered audiobook. A shorter path: pick the folder of recordings, describe the book (title, author, narrator, cover, M4B or MP3, ACX loudness), review the summary, and Start. Each file becomes one chapter, and you always review the chapter list before the book is built. There is more on this under Build an audiobook from a folder of recordings, below.
- Edit an existing audiobook. Pick a finished MP3 or M4B and it opens in the Chapter Workbench, described below. A file with no chapter markers opens as one chapter, ready to split up.
Moving through the wizard
Each step is announced as you arrive (“Step 2 of 7: What should I read?”). Back and Next move between steps. Skip to summary jumps ahead when your saved project profile already fills every page, so a repeat run is three keystrokes. The work runs in the background with progress for each file, and you can cancel it. It uses the same speech engine as live Read Aloud, so the voice you audition is the voice you get.
The source pages offer a list of recent source folders, and the edit path’s file picker remembers recently opened audiobooks. Both lists are kept between sessions, are separate from your recent documents, and never grow without limit.
What should I read
- Source folder, and whether to include subfolders.
- The file types to include:
.docx,.md,.html/.htm,.txt. - Optional include/exclude filters: patterns separated by semicolons or commas, matched against the file name and its path.
- Skip files larger than (MB): a maximum file
size, in megabytes (
0means no limit). One accidental 400 MB export in a folder can no longer take over an overnight run. Any file over the limit is left out, and the live document count on the same step changes as you change the limit. Press Count documents to hear the settled count.
Who should read it
Engine, voice, and pace. Any offline engine (SAPI 5, DECtalk, Piper, Kokoro, eSpeak NG), with a Preview button to hear the voice first.
Round-robin voices read each article or heading in a different voice, cycling through a list you build:
- Pick a voice from the Round-robin voices combo box.
- Press Add voice.
- Repeat for each voice, and use Move Up, Move Down and Remove to set the order.
Article 1 uses the first voice, article 2 the second, and so on, starting again at the top when the list runs out. The list uses voices from the engine you selected, so the sound quality stays consistent, and changing the engine clears it. Leave the list empty to use the single chosen voice.
Voice casting lets you say exactly who reads what, on top of the rotation. On the same page, add rules: a pattern plus the voice that should read every matching chapter. A pattern matches the heading title as a wildcard (
Chapter *,*interview*, or an exact title, ignoring case) or a section number (#1for the opener). The first rule that matches wins; chapters no rule matches go to the rotation or the single voice. Rules use voices of the selected engine (switching engines clears them) and are saved in job files. A dialogue-heavy drama or an interview show can cast its voices on purpose instead of by rotation order.If a voice ever fails to speak (a broken system voice, a missing model, or a cloud voice the provider rejects), QUILL notes it and skips it on later runs, so one bad voice in a rotation cannot keep stopping your batches.
Your combine and round-robin choices are remembered for each project.
Translated editions
Also export in other languages (translated) makes a translated audiobook alongside the original.
- Choose a language.
- Pick a voice for it.
- Press Add language. Repeat for as many languages as you want. Remove language drops one.
- Choose Translate with: AI provider (any AI provider you have set up) or LibreTranslate (runs locally).
Voices are offered local ones first (eSpeak speaks nearly every
language offline, plus any Windows voice installed for that language),
then the premium multilingual cloud voices: OpenAI, Gemini, and
ElevenLabs. Those need the matching provider API key, the same
key the AI Voice feature uses. When you press Start, each document is
translated and written as
<doc> (<Language>).<ext> next to the
original, with the same chapters, page-turn cue, and loudness. A
pronunciation dictionary can be limited to one language, so it only
affects that language’s narration. If a cloud voice you chose has no key
set up, that language is skipped with a note and the run carries on.
You see the cost first for cloud runs. Cloud translation and cloud narration are paid by use, so if your choices would use a paid cloud service, QUILL shows a combined cost estimate and asks you to confirm before it starts. Runs that use only local engines and LibreTranslate start straight away.
How should chapters work
- Chapters turn a long document into a chaptered file you can move around in. Choose MP3 (ID3 chapter markers) or M4B audiobook (native MP4 chapter atoms, the Apple and audiobook format). Apple Podcasts, Overcast, VLC, foobar2000, and others recognize both.
- A transition sound plays between articles: a natural page-turn by default, or a different earcon from your active sound pack. Whichever you use is matched to the audio format automatically, so it always joins cleanly.
- You choose whether each heading is spoken, and set pauses between articles and between sentences, plus a short silence at the end that stops clipping.
- A very long section is split automatically at a safe sentence boundary, so no single passage runs past the engine’s time limit. The run report lists how many chapters each document got.
- Chapter mode: keep the whole document as
one chaptered file, or choose Separate file per
article to write each section under a heading as its own
NNN - <heading>audio file, in a folder for that document. - Combine empty headings: when a heading has no text of its own (a “Part” heading followed straight away by a “Chapter” heading), fold it into the next article that does have text and join their titles (“Part One: Chapter 1”), so you do not hear an empty chapter. Off by default. Turn it on with the Combine empty headings into the next article checkbox.
Output and diagnostics
- Output format: WAV (always
available) or, when
ffmpegis installed, MP3, M4A, M4B (audiobook), Opus, FLAC, or OGG. Whenffmpegis missing, compressed formats fall back to WAV with a note for each file, instead of failing. MP3 has a quality setting, and WAV can be made to one sample rate and channel count throughout. - Normalize loudness: check Normalize loudness to audiobook (ACX) level to bring every exported file to the same audiobook loudness, the standard the Build Audiobook tool uses. QUILL measures each file and re-levels it in two passes, without touching the chapters or their timing. Needs ffmpeg; without it, the file is saved as it is, with a note.
- If a file already exists: Skip (a
cheap way to resume), Overwrite, or
Rename so both are kept
(
name (2).mp3). - Output layout: mirror the source folders or
flatten everything into one folder. You can also rename
outputs with a template such as
{index:03d} - {stem}, which gives001 - chapter-one. - Audiobook metadata: album, author or narrator, genre, and year are written into compressed files. Each file’s title comes from its heading or name, and its track number from its position.
- Dry run: instead of speaking, write a
<doc>.preview.txtfor each document with the exact text that would be spoken (after cleanup, pronunciation fixes, and polish) and how many pronunciation substitutions were made. You can proofread what will be said before waiting on slow speech. - Audition: check Audition on the output step to convert only the first document. You can judge the voice, the pace, and the loudness in a couple of minutes before you commit to an overnight run.
- Run report: optionally write a
manifest.jsonandmanifest.csvlisting every file’s status, output path, length, and any error.
Incremental rebuilds
With Reuse unchanged audio from the last run checked
(the default), QUILL takes a fingerprint of each document’s text
together with every setting that shapes its audio. On the next run,
documents that have not changed, and whose audio is still on disk, are
reused instead of spoken again, and you hear “Reused … (unchanged since
last run)”. Edit one chapter of a forty-document book and only that
chapter is narrated again. Change the voice or any audio setting and
everything rebuilds by itself. Uncheck the box to force a full rebuild.
The fingerprints are kept in the source folder’s
.quill/speech-cache.json; deleting that file also forces a
fresh run.
The book page
- Look up book details. Type the title (and the
author, if you know it) and press Look up book details.
QUILL searches Open Library and
MusicBrainz, two free public catalogs, and the match
you pick fills in the author, genre, and year. QUILL asks before the
first contact, and only the title and author you typed are sent. If the
match has a cover image on Open Library and you have not set one, QUILL
offers to download it as
cover.jpgnext to your audio and fills the cover field. Say no and nothing is fetched. - Spoken credits. Check Add spoken opening and closing credits and QUILL narrates the usual audiobook frame (“My Book. Written by Jane Doe. Narrated by Sam Reader.”) in the run’s own voice, as the first and last chapters.
- Polish during the build. The audio source page’s
Trim silences from each recording and the book page’s
fade-in / fade-out / tempo controls are applied while
the audiobook is built. Each chapter file is prepared first (silence
trimmed from the start and end, fades added, and the tempo changed
without changing pitch) and then joined into the master. The prepared
copies live in the build’s temporary folder, so your source recordings
are never overwritten. If polishing one file fails, the build keeps
going with that file as it was. The defaults (no trim,
0ms fades,1.0tempo) leave the audio unchanged.
Settings that stay with the folder
A folder remembers its whole speech setup in
<folder>/.quill/speech-project.json: engine, voice,
output format, chapters, text cleanup, pronunciation dictionaries,
metadata, and run policy. Set up a project once and run it again
whenever you like. When you open the wizard on a folder you have set up
before, those settings fill in by themselves, and your
choices are saved when you press Start. Anything you
change this run beats the folder’s saved settings, which beat your
global defaults.
Job files go one step further. On the summary page,
Save a job file writes a small .quilljob
file that pins this exact run: folder, voices, chapters, mastering, and
book details. You can edit it by hand. Load a job file
on the first page brings everything back, filled in. Keep one per
project, or edit it in Notepad between runs.
Running it without you
- Library mode (a checkbox on the combine-audio path) builds every subfolder as its own audiobook in one unattended run. Point it at a folder of book folders and come back to a shelf of finished masters, each titled after its folder.
- The watch action “Build audiobook from the folder” keeps a drop folder working for you. Whenever new recordings land in a watched folder, its chaptered master is rebuilt automatically. A batch of files arriving together causes one rebuild, not many.
Export to Translated Speech Audio (one document)
Tools > Speech > Export to Translated Speech Audio is the one-document version of the translated export above. It translates and narrates just the document you are editing, with no folder involved.
- Pick the output format.
- Choose Translate with: any AI provider you have set up, or local LibreTranslate.
- Add one or more language + voice targets, the same way as in the wizard. Local voices are listed first, then the premium cloud voices.
- Press Export.
QUILL writes <doc> (<Language>).<ext>
next to your document. If the document has unsaved changes, QUILL offers
to save first, so your latest edits are the ones translated. As with the
wizard, a combined cost estimate appears before any
paid cloud run.
The dialog also has an “Open in Audio Studio” button. It closes the dialog and opens the Audiobook and Batch Speech wizard with your document already filled in, for when you want chapters and the rest.
Build an audiobook from a folder of recordings
The wizard’s Combine audio files path (Tools > Speech > Audiobook & Batch Speech…, the second choice on the first page) joins a folder of existing audio files into one chaptered audiobook, the kind your audiobook or podcast app moves through track by track. Where the narrate path turns documents into speech, this one stitches a folder of audio (your own recordings, or speech QUILL exported earlier) into a single master.
- Point it at a folder of audio files. Each file
becomes one chapter, in natural sort order, titled from
the file name (a leading track number such as
01 -is removed). - Edit the chapters before building. The dialog lists the chapters, and works fully from the keyboard. You can rename the selected one (type a new title and press Rename or Enter), move it up or down, merge it into the chapter above (the two files then play as one chapter with one marker), or remove it from the book. Restore original undoes every edit in one press.
- Bring your titles with you. Import
titles… reads chapter names, in order, from an Audacity label
track, a CUE sheet, plain timestamp lines, Podcasting 2.0 chapters JSON,
or a CSV spreadsheet. Any sheet with a “Title” column
works, and so does a simple
number,titlelist, so a chapter list you keep in Excel can name your MP3 files in one step. Export titles… writes the current list back out as text. - Honest numbers, before and after. The run log
starts with a pre-flight check. It names files whose
sample rate, channels, or format differ (the build still works; it
re-encodes them) and gives an estimated length and size. After the
build, QUILL re-reads the finished book and tells you
what a player will actually see: “verified 24 chapters”, or exactly what
went wrong. A plain-text chapter report and a
Podcasting 2.0
...chapters.jsonfile are written next to the book. - Choose M4B audiobook (native MP4 chapter atoms, the Apple and audiobook format) or MP3 (ID3 chapter markers). You can move by chapter in both in Apple Podcasts, Overcast, VLC, foobar2000, and others.
- Check Normalize loudness to ACX (Audible/audiobook) spec to bring the master into the loudness range audiobook platforms require (RMS between -23 and -18 dB, peak under -3 dB). After the build, QUILL measures the result and says in the status bar whether it met the ACX range.
- Fill in the book’s title, author, narrator, genre, and
year. A cover image in the folder (named like
cover.jpg,folder.png, and so on) is picked up automatically, or you can browse for one. - The build runs in the background, and the status bar tells you when it is done.
The Chapter Workbench
The Workbench is where you fix a finished audiobook by ear. Reach it from the wizard’s Edit an existing audiobook path.
The chapter list and the player
The chapter list reads each row in full (“3. The Long Road, starts 1:02:03, runs 12:40”). Press Enter on a chapter to hear it.
The built-in player has Play/Pause, Stop, Previous and Next chapter, Rewind and Forward, a position slider that speaks minutes and seconds, and a volume slider. The current chapter is announced as playback moves into it.
- It remembers where you stopped in each book and picks up there next time.
- It has a playback speed control, from 0.75x to 2x, with the pitch kept natural.
- It answers “Where am I?” with the whole picture: “Chapter 4 of 24: The Long Road. 3:12 into the chapter, 9:28 left in it. 1:02:03 of 7:41:00 in the book, 6:38:57 remaining.”
Playback normally uses Windows’ built-in media engine, with nothing
to install. For gapless audio, exact seeking, and instant chapter jumps
even in 8-hour books, download the mpv player engine
from Help > Download Optional Components (about 44
MB, checksum-verified; its licenses and a source offer come inside the
download). The player switches to libmpv the next time
it opens. If you prefer, you can instead put a libmpv-2.dll
into the data folder’s engine-packs\mpv folder, or set the
QUILL_LIBMPV environment variable to point at one. If the
DLL is missing or broken, QUILL quietly stays on the built-in
engine.
Fixing the chapters
- Split at playhead: listen for the spot where a chapter should begin, pause there, and press the button. The chapter is cut in two exactly at that point. This is how you fix a book whose chapters landed in the wrong places.
- Set start to playhead: move an existing boundary. Select the chapter, park the playhead where it should start, and press. The previous chapter’s end moves with it, so there are never gaps.
- Merge into previous, Rename (type and press Enter), and Restore original (one press undoes every edit).
- Add chapter… puts a marker at the playhead, or at a time you type, and asks what to call it. Past the end of the last chapter it adds a new one at the end instead of refusing.
- Delete chapter removes a marker only. The audio joins its neighbour, and unlike Merge it works on the first and last chapters too.
- Edit chapter… opens a small window for the title and the exact start and end (and a chapter link and image, if you publish with Podcasting 2.0).
- Preview chapter plays just that chapter and stops at its end.
Nudging a boundary until it sounds right
Nudge back and Nudge forward move
the selected chapter’s start by one step. From the chapter list,
Alt+Left and Alt+Right do the same, and adding
Shift moves ten steps at once.
- The Step box goes from 100 milliseconds up to 10
seconds, and remembers your choice for next time
(
audio_studio_chapter_nudge_ms, half a second to start with). - Hear boundary plays three seconds before the marker and two after it, then stops. It is the quickest way to tell whether a boundary falls in the middle of a sentence.
- Check Hear after each nudge to have that happen automatically after every press. It is off by default, so you only get sound on every keypress if you ask for it.
- Each nudge speaks only the new time (“0:00:09.500”), so it keeps up when you hold the key down. The full sentence follows about half a second after you stop.
- Push a marker into its neighbour and it stops there and says “Cannot move further” once.
Finding chapters for you
- Propose chapters from silences… listens for
silences in the recording, using ffmpeg’s
silencedetect. A small dialog asks for the noise threshold (dB, default -30) and the minimum silence length (seconds, default 0.8), and QUILL suggests chapter boundaries in the middle of each silence. The suggestions land in the chapter list for you to review; nothing is applied without you. Press Restore original to undo. So one long recording is no problem: open a single 80-minute file (it opens as one chapter), press one button, review, and save. - Propose AI titles… names a folder of
track07-style chapters by listening to them. The first minute of each chapter is transcribed on this computer by the local speech model, so the audio never leaves your computer. Only that text goes to the AI you have set up (a local model keeps even the text on your computer). A short suggested title for each chapter lands in the list for you to review, and Restore original undoes the lot. Needs AI set up; not available in Safe Mode.
Checking, importing and splitting
- Check against ACX measures the file with ffmpeg’s loudnorm and shows a result with integrated loudness, true peak, and noise floor, plus a plain suggestion for each thing that fails (“Integrated loudness is -14.2 LUFS, target -20 plus or minus 3; make the recording 5.8 dB quieter”). The result is announced when the measurement finishes, however you close the dialog.
- Import chapters… replaces the whole list from Audacity labels, a CUE sheet, timestamp lines, Podcasting 2.0 JSON, or CSV. Export chapters… writes the list in any of the same five formats.
- Split into files… goes the other way: one audio
file per chapter, named
NN - Title, in a folder you pick. That gives you podcast episodes straight away, or tracks for players without chapter support.
Book details and tags
Book details (title, author, narrator, genre, year)
are edited right in the Workbench. All tags… opens the
full Tag Editor for everything else: twenty-six fields
over five pages (main, details, publishing, sort order and cover art).
They include track and disc numbers, composer, publisher, copyright,
BPM, ISRC, language, grouping, the compilation flag, the four sort-order
fields, and cover art you can load, save out or remove.
Ctrl+Tab moves between pages. The five quick fields and the
editor always agree with each other, in both directions.
You can also open the Tag Editor on its own, without the Workbench: check Edit the tags only on the Studio wizard’s Open a book page.
The same editor is in podHarvest. A file edited in one reads back exactly as you left it in the other, with the same fields, operations and keys. If you use both, you only learn it once.
Saving
Save writes an MP3’s edits in place: only the tags are rewritten and the audio is left alone. An M4B depends on what you changed. Tag edits alone also save in place and finish at once. A chapter change needs Save As, which copies the audio into a new file without re-encoding, so there is no loss of quality. Long saves run in the background, so QUILL stays responsive.
Publishing
Publish… offers ways to get the finished book out into the world. Each one is something you choose to do:
- Podcast feed: QUILL writes a complete
.rssfile next to the book (RSS 2.0 with iTunes and Podcasting 2.0 tags; chapter navigation uses thechapters.jsonfile beside it). Upload the feed and audio wherever you like. Making the feed never touches the network. - Folder feed (all episodes): run a whole show from
one folder. Every MP3, M4B, or M4A master becomes an episode (the oldest
file is episode 1), with its title from its tags or your own, your
description for each episode (edited in an accessible episode list), its
real publication date, length, and chapter link. The show settings are
kept in the folder, so after each new build, one press of Write
feed.rss now makes the complete feed again. Write show
notes page makes an accessible
show-notes.htmlbeside it, with a heading for each episode, the descriptions, and chapter lists, ready to upload with the feed. - SFTP upload: save a destination (host, folder, and the public web address that matches it), and QUILL uploads the book and its companion files over SSH, with the same strict host-key checking as editing over SSH. The password is kept in the Windows Credential Manager, never in QUILL’s settings.
- Auphonic: send the book to your own Auphonic account for professional post-production. QUILL uploads it, waits for the production to finish, and downloads the results into a folder next to the book. Your API token is also kept in the credential vault, and you can manage it in AI > AI Hub > Services with QUILL’s other service keys. Press Check account and load presets first: QUILL tells you whose account the token belongs to and how many processing credits remain, and fills the preset picker with your saved Auphonic presets. The confirmation then names the preset and your balance before anything uploads. QUILL asks before anything is uploaded.
Publishing is not available in Safe Mode. Every upload runs in the background and tells you when it is done. SFTP uploads and Auphonic transfers show a progress dialog that speaks whole-percent steps as the file moves (“Uploading book.m4b: 42%”) and has a real Cancel button. What cancelling does depends on when you press it, and QUILL tells you which happened:
- Cancelling an SFTP upload stops in the middle of the file. Files that already finished stay on the server.
- Cancelling Auphonic before the upload finishes means no production starts.
- Cancelling Auphonic after that leaves the production running in your Auphonic account and skips the download.
The Universal Audio Converter
Apart from the audiobook wizard, QUILL has a general audio converter. It changes audio files from one format to another, and pulls the sound out of video files, entirely on your computer using the bundled ffmpeg. It works in Safe Mode and never uploads anything. There are three ways in:
- Voices > Convert Audio…: the dialog, from the audiobook and batch speech wizard.
quill convert: a command for scripts, for examplequill convert *.wav --to mp3 --preset podcast --out ./done. Add--dry-runto see the plan first,--list-presetsor--list-formatsto see what is available, and any of the Advanced options (--bitrate,--sample-rate,--channels,--loudness,--gain,--high-pass,--trim-silence,--speed,--compress,--level,--fade-in,--fade-out).- Convert from URL…: paste a link (YouTube, and the many sites yt-dlp supports) and QUILL downloads the best audio and hands it to the converter. This is the only part that uses the internet. yt-dlp is not bundled, so the first time you use it QUILL asks once, shows a rights notice (“only download content you have the right to use”), and installs the small yt-dlp component. It is not available in Safe Mode.
Building a batch
- Add single files or whole folders. A folder is searched, and its layout of subfolders is copied into the output folder.
- Choose the output format. Only formats your ffmpeg can actually make are offered, so a conversion never fails halfway for lack of an encoder.
- Pick a preset: Just convert (change the container only), MP3 128/192/320, Podcast, Audiobook, Voice memo, Web Opus, Archival FLAC, or Hearing-aid mono.
- Choose an output folder, or leave it to make a
Convertedfolder beside the source. - Choose what happens when a file already exists: auto-number (never overwrites an original), skip, or overwrite.
The batch runs in the background on several files at once, so the window stays responsive. Progress shows in the status bar and, when QUILL is minimized, in the tray tooltip. The final summary is spoken and always names any files that failed, so a problem is never hidden behind “done”.
Advanced options
Check Advanced options to show more controls on top of the preset:
- exact bit rate, sample rate, channels (keep, mono or stereo), and bit depth
- loudness normalized to an audiobook (-20 LUFS, ACX) or podcast (-16 LUFS) target
- gain in decibels
- a high-pass filter to remove low rumble
- trim silence from the ends
- speed, a tempo change from 0.5x to 2x with no change in pitch
- a compressor and a volume leveler
- fade in and fade out, in seconds
Each control leaves the preset alone until you change it, so Advanced only overrides what you set on purpose. The effects are the same ones QUILL uses elsewhere, so the results match the rest of the app.
Media
QUILL also plays podcasts, recorded programmes and audiobook chapters. This part is about keeping your place in all of it, even across computers, and about letting it stop by itself when you fall asleep.
Continue Listening
Continue Listening… (in the Command Palette) is one list of everything you started and did not finish, newest first, with the kind named on every row: a podcast episode you are twenty minutes into, a recorded programme or LibriVox chapter you were halfway through. It answers the question “what was I in the middle of?” in one place.
- Resume starts the highlighted row where you left off.
- Forget This One drops the saved place and removes the row. The episode stays unplayed, because “I am not going back to this” and “I finished it” are different things. Clearing what you have given up on keeps the list worth opening.
Carry My Place Between Machines
If you listen on more than one computer, Carry My Place Between Machines… makes your place follow you. It needs two things: a folder both computers can see, and a recovery phrase.
The folder is yours. Point it at somewhere inside OneDrive, Dropbox, iCloud Drive, a network share, or even a memory stick you carry between the two. QUILL runs no server of its own and never holds your listening history. Everything is encrypted before it reaches the folder, so whoever runs that folder learns nothing but file sizes and times.
The recovery phrase is eight ordinary words, made up for you, something like earth dock hollow iris farm laser daisy amber. Write it down. It is the key, and QUILL cannot get it back for you if you lose it. Read My Phrase Aloud says it back numbered, one word at a time, which is just what you want while writing it on paper.
To set up the second computer, use the same window:
- Open Carry My Place Between Machines… on the second computer.
- Point it at the same folder.
- Type the phrase from the first computer.
QUILL notices the folder is already set up and says so. If the phrase is wrong it tells you at once (“that recovery phrase does not match this folder; nothing was changed”) instead of half-syncing and failing later. Typing is forgiving about capitals, spacing and punctuation, and a word that is not on the word list is named, so you only need to check that one.
Sync Now runs it and tells you in a sentence what happened: what came back, what went out, and whether two computers disagreed about a place (the most recent wins, and you are told). It can also run when playback stops, if you like. If both computers remembered a different place in the same thing and they are more than a few minutes apart, QUILL treats that as a real disagreement and tells you, instead of quietly picking one.
Everything works normally with no sync at all. Nothing ever waits on the folder before playing.
Sharing your place with apps that are not QUILL
The sync above carries your place between two copies of QUILL. It is encrypted from end to end, which is right, and which is also why no other app can read it. If you listen on a phone with a podcast app that is not ours, it does not help you.
Listening Places is the other half, and it is a separate checkbox in the same window. In the folder you already chose, QUILL also writes a small, plain file in a published format that any podcast app is free to read and write. There is no account, no server, and no signup. The format is written down publicly, so another app can simply support it.
What that means for you:
- Turn on only the half you want. The encrypted QUILL-to-QUILL sync and the shared plain file are separate switches, because they reveal different things. You can use either, both, or neither.
- No recovery phrase is needed for this half. The shared file cannot be encrypted and still be readable by another app, so setting it up is one checkbox.
- Titles are left out unless you say so. Every show and episode is identified by a scrambled fingerprint instead of its name, so a folder you share with a family member does not become a list of what you listen to. A third checkbox, off by default, adds readable titles if you want them.
- Each device writes its own file. That stops a cloud drive ever making a “positions (Jeff’s conflicted copy)”, and it means a third and fourth device work with no extra setup.
- The most recent place wins, not the furthest. If you jumped back twenty minutes on purpose and then opened the episode somewhere else, that jump is kept.
- It reads at launch and when you press Sync Now, and at no other time. So a position from another device never moves the playhead under you in the middle of an episode.
Sync Now covers both halves in one press and reports on each.
Sleep Timer
Tools > Media > Sleep Timer… stops whatever is playing after a while, from one place.
- Choose a preset (15, 30, 45, 60, or 90 minutes), or type your own number of minutes.
- Press Start.
Over the last 20 seconds, playback fades gently down and then stops. Your volume is then set back to what it was before the fade, so pressing play later is not suddenly quiet. Open the dialog again while a timer is running to hear how much time is left, or press Cancel Sleep Timer (also in the Command Palette as Media: Cancel Sleep Timer) to stop the countdown early.
What you learned, and where to go next
You can now have QUILL read to you in the voice and language you
like, and teach it how to say the words it gets wrong. You can inspect a
character, hear the hidden formatting with Reveal Codes
(Alt+F3), read an EPUB by chapter, and step through the
differences between two documents. You know where QUILL makes
audiobooks, fixes their chapters and publishes them, and how to keep
your place in what you listen to.
To practise with QUILL beside you, open Help >
Tutorials… (Ctrl+Alt+F1) and try “Have it read to
you”, “See the formatting that is normally hidden” and “Inspect a
document you did not write”. On the website, Rescue
a scanned PDF and From
document to published audiobook walk through the longer jobs.
Next, Chapter 9, Dictation and transcription, turns things around: you speak and QUILL writes.
Chapter 9: Dictation and transcription
This chapter is about turning speech into text. You will learn to talk straight into a document, to turn a recording into a transcript, and to have QUILL make meeting minutes or notes out of that transcript for you. Most of it runs entirely on your own computer, with no account and nothing uploaded. If you would rather speak than type, or you have a pile of recordings to get through, this chapter is for you. The parts about speech models, optional downloads and memory come last, for when you want to tune things.
Dictating into a document
QUILL gives you three ways to dictate. Live Dictation writes each phrase as you pause, which suits most people most of the time. Locked Dictation records a whole passage and writes it when you finish. Dictate (Offline) is the simple start-and-stop toggle on the Speech menu. All three put the words at your cursor, and all three work without an internet connection.
QUILLBee’s tip: Can’t remember what you are allowed to say? While Live Dictation is running (
Ctrl+F11), just say “what can I say” and the whole list opens in a window.
Live Dictation (Ctrl+F11)
This is the dictation QUILL Lite has, in QUILL too, on the same keys. It lives at Tools > Speech > Live Dictation.
- Put your cursor where you want the words.
- Press
Ctrl+F11. - Talk, then pause. Each phrase is written at the cursor when you pause. A soft tone tells you it arrived, and the words are read back to you.
- When you are done, press
Ctrl+F11again, or say “stop dictation”.
If you would rather hold Ctrl+F11 down while you talk
and let go to stop, you can turn that on; see Holding Ctrl+F11 to talk,
below. Dictation On, the first row of the submenu, is
checked while dictation is writing, and the status bar says what
dictation is doing.
Nothing leaves your computer, nothing is downloaded, and no recording is kept, unless you choose OpenAI dictation with your own key (see “OpenAI dictation, with your own key” below). Unlike Locked Dictation, which records a passage and transcribes it afterwards, Live Dictation writes as you go.
The same submenu has more windows:
- Recent Phrases… (
Shift+F11) lists the last twenty phrases of the session, with Insert Again and Copy. - My Words and Phrases… (
Alt+Shift+F10) is a window with Add Word, Add Phrase, Add Correction, Edit and Remove. It edits yourdictation.mdfile for you. - Switch Dictation Language
(
Ctrl+Shift+F11) swaps between English and Spanish. See “Switching between English and Spanish”. - Start or Stop Live Transcript
(
Ctrl+Alt+Shift+PageDown) writes everything you say into a new document of its own. See “Live transcripts”. - Dictation Context for This Document…
(
Ctrl+Alt+Shift+PageUp) tells QUILL what this document is, in a sentence. See “Dictation Context for This Document”.
Here are the dictation keys in one place:
| Command | Key |
|---|---|
| Start or stop Live Dictation | Ctrl+F11 |
| Recent Phrases | Shift+F11 |
| Switch Dictation Language | Ctrl+Shift+F11 |
| Start or Stop Live Transcript | Ctrl+Alt+Shift+PageDown |
| Dictation Context for This Document | Ctrl+Alt+Shift+PageUp |
| Dictation Status | Alt+F9 |
| My Words and Phrases | Alt+Shift+F10 |
| Dictation Settings | Alt+Shift+F6 |
| Tidy Dictated Text | Ctrl+F3 |
A few things that are good to know while you talk:
- Escape throws away the phrase being heard, and the words heard so far.
- Your words go where you were when you started speaking, even if you move the cursor while they are being recognised (see “Where the words go”).
- Pressing
Ctrl+F11in a second document moves dictation there. - If your microphone goes away, dictation pauses, and it picks up again when the device is back.
- If the engine has a problem, QUILL quietly restarts it once before it tells you about a failure.
The full list of everything Live Dictation understands is its own page, Dictation commands, built from the same table QUILL itself reads. While dictating, say “what can I say” to open that list in a window.
Holding Ctrl+F11 to talk
Press Ctrl+F11 to start dictating and press it again to
stop. That is all most people ever need, and it is how dictation starts
out.
If you prefer to hold the key while you talk, like the button on a walkie-talkie, turn on Hold the dictation key to talk; a quick press still turns it on and off in More Dictation Settings. Then:
- Put the cursor where you want the words.
- Press and hold
Ctrl+F11. You hear the two rising tones and “Dictation on” straight away. - Keep holding the keys, and say what you want to say.
- Let go. Dictation writes your last phrase, then you hear the two falling tones and “Dictation off”.
With that turned on, a quick press still works just the same: dictation turns on and stays on until you press Ctrl+F11 again. QUILL tells the two apart by how long you hold the keys. Half a second or more is a hold.
Stopping never cuts you off. If you press or let go of Ctrl+F11 while you are still finishing a sentence, dictation waits for that phrase, writes it, and then stops.
Seeing the words while you speak
With most engines, your words appear when you pause. With Nemotron (an optional download, see “Better accuracy: optional speech models”) or OpenAI dictation, QUILL knows the words while you are still saying them, and shows them to you:
- The status bar shows the words so far after the word Hearing, for example “Hearing: Can you send me the”.
- If you use a braille display, the same words appear on it as they arrive.
- They are not in your document yet, because the engine may still change its mind as it hears more. When you pause, the final words go into the document, and the preview goes away.
You do not hear these words spoken, so nothing talks over you while you talk. If you would like to hear them, open More Dictation Settings and set While you speak, the words heard so far to Show it, and say new words quietly. You then hear the new words every couple of seconds, never the same ones twice. Choose Do not show it to turn the preview off.
Nemotron also gets its punctuation right at the end of a sentence now. It decides whether a sentence was a question once it hears the next one, so a full stop it wrote at your pause can turn into a question mark a moment later, when you carry on talking.
Punctuation
You do not need to say punctuation. The built-in engines add full stops, commas, question marks and capitals by themselves. When you want a particular mark, say it (“comma”, “new paragraph”) and your word wins. If a pause splits a sentence and the next part begins with a word like and or which, the full stop the pause put in is taken back out.
Punctuation and layout, anywhere in a phrase. You can say “period”, “comma”, “question mark”, “open quote” and “close quote”, brackets, “hyphen”, “dash”, “slash”, symbols like “at sign” and “percent sign”, “new line”, “new paragraph” and “tab”. Say “literal” first to write one of them as a word.
What you hear
After each phrase you hear a soft tone and the words read back to you, so you know what landed without reading the line. The read-back says the punctuation too, by the same names you would use to dictate it. You say “Hello, world.” and you hear “Hello comma world period”. A new paragraph is read as “new paragraph”, a quotation mark as “open quote”, and so on. That happens whatever punctuation level your screen reader is set to, so you always know whether the comma went in.
A few things are left quiet because saying them would only get in the way: an apostrophe or a hyphen inside a word (“don’t”, “well-known”), and the point or comma inside a number (“3.5”, “1,000”). A web address reads the way you would say it: “example.com” is “example dot com”. In Spanish you hear the Spanish names, “coma” and “punto”.
The status bar and a braille display show the real characters, for example “Dictated: Hello, world.”, so on braille you read exactly what was written.
If you would rather hear just the words, turn off Say punctuation marks in the read-back in More Dictation Settings. To choose a tone only, the words only, both or neither, use What you hear after each phrase in Dictation Settings.
Letters, numbers and symbols
Most of the time you just talk and the engine writes words. For the moments when you need something exact, an email address, a file name, a heading in a Markdown file, here is what you can say.
Spelling a whole run. Say “start spelling”, then the
letters, then “stop spelling”. The phonetic alphabet (alpha, bravo,
charlie…) is the reliable way. Say “capital” before a capital letter and
“space” for a space. While you are spelling, punctuation goes in with no
spaces around it, and “dot” (or “point”) writes a full stop. So “start
spelling, juliet dot sierra mike india tango hotel at sign echo x-ray
alpha mike papa lima echo dot charlie oscar mike, stop spelling” writes
j.smith@example.com. Say “all caps” and every letter after
it is a capital, until you say “no caps” or the phrase ends.
Spelling one word. Say “spell” and the letters, all in one phrase: “spell bravo alpha delta” writes bad. You do not need to start and stop spelling for that. A sentence that only happens to begin with the word “spell” (“spell it out for me”) stays words.
Spell that. If a name came out wrong, say “spell that”. The last phrase is selected, and the very next phrase you say is spelled and takes its place. After that one phrase you are back to ordinary dictation.
Capitals and spacing that stay on. These last until you turn them off, or until dictation stops, and the status bar shows you which are on:
- “caps on” and “caps off” (or “capitals on” and “capitals off”): every word starts with a capital, handy for titles and names.
- “all caps on” and “all caps off”: everything in capitals.
- “no space on” and “no space off”: the words are joined with no spaces and no automatic capitals, for web addresses and file names.
Marks for Markdown and code. These can go anywhere in a phrase:
| Say | Writes |
|---|---|
| “backtick” or “back quote” | a backtick, the mark under Escape on most keyboards. QUILL counts the ones on the line, so the next one opens or closes |
| “triple backtick” or “code fence” | three backticks on a line of their own |
| “tilde” | a tilde |
| “vertical bar” or “pipe symbol” | a vertical bar |
| “caret” | a caret |
| “greater than sign” | a greater-than sign |
| “less than sign” | a less-than sign |
Starting a line. These only work as the first words of a phrase. If the cursor is not at the start of a line, QUILL starts a new one first:
| Say | Writes |
|---|---|
| “bullet” or “list item” | a hyphen and a space, a bullet in Markdown |
| “numbered item” | 1, a full stop and a space |
| “block quote” | a greater-than sign and a space |
| “heading one” to “heading six” (or “heading 1” to “heading 6”) | one to six number signs and a space |
Because they only count at the start, “the heading two lines down” in the middle of a sentence is written as words, just as you meant it.
Voice commands
Commands, as a whole phrase after a pause:
- “scratch that” removes the last phrase
- “undo that”
- “select that”
- “capitalize that”, “all caps that”, “no caps that”
- “delete word”, “delete sentence”
- “read that”
- “go to beginning of line”, “go to end of line”, “go to top”, “go to end of document”
- “select sentence”, “select line”, “select paragraph”
- “go to start of paragraph”, “go to end of paragraph”
- “spell that”, “caps on”, “no space on” and the others in “Letters, numbers and symbols”
- “copy that”, “copy all”, “show clips”, “show snippets”
- “stop dictation”
Commands with words after them, said at the start of a phrase:
- “select” and some words, “go to”, “go before” or “go after” and some words, “correct” and some words (see “Moving and selecting by voice”)
- “paste clip three”, “insert snippet” and a name, “insert abbreviation” and a trigger (see “Snippets and clips by voice”)
- “switch to Spanish” (see “Switching between English and Spanish”)
- “dictation context” and a name (see “Dictation Context for This Document”)
If you have typed into the last phrase since you said it, the commands that change it leave it alone, and tell you so.
That is the everyday set. Every command and every mark, in English and Spanish, is on the Dictation commands page, and “what can I say” opens the same list while you dictate.
Moving and selecting by voice
You can move around and pick out words by saying them, without reaching for the keyboard. Say these at the start of a phrase:
- “select” and the words, for example “select the blue car”. QUILL looks back from the cursor for the nearest place those words appear, and if they are not behind you, it looks ahead. Whatever you say next replaces them.
- “select” one set of words “through” another, for example “select dear Sam through regards”. Everything from the first to the last is selected.
- “go to” or “go before” and the words puts the cursor just before them. “go after” puts it just after.
- “correct” and the words selects them and tells you “Correcting the blue car. Say the new words”. Say the right words and they take the place of the wrong ones.
- “select again” or “select next” moves on to the next place the same words appear, and “select previous” goes back to the one before.
And these as a whole phrase: “select sentence” (or “select this sentence”), “select line”, “select paragraph”, “go to start of paragraph” (or “go to beginning of paragraph”) and “go to end of paragraph”.
You do not have to be exact. Capitals, punctuation and accents do not matter, and numbers match either way, so “select two cats” finds “2 cats”. Your corrections from My Words and Phrases are applied first, so the words are found the way you taught QUILL to spell them.
You hear the outcome once: “Selected: the blue car”, “Before the blue car” or “After the blue car”. If the place is three or more lines away from where you were, the line number is added, like “Selected: the blue car, line 40”.
If the words are not in the document, nothing moves. Your phrase is written as ordinary text instead, and you hear “Not found, written as text.” Say “scratch that” to take it back out. This works with every speech engine, and the short exact commands, like “select that” and “go to top”, still do what they always did.
Snippets and clips by voice
The Copy Tray, your snippets and your abbreviations all answer to your voice too.
As a whole phrase, on its own:
- “copy all” (or “copy everything” or “copy document”) copies the whole document, just as Copy All does.
- “copy that” copies the phrase you just said.
- “show clips” (or “open copy tray” or “show copy tray”) opens the Copy Tray dialog.
- “show snippets” opens the list from Insert Snippet.
With words after them, at the start of a phrase:
- “paste clip three” (or “paste slot three”) writes what is in Copy Tray slot 3. Any slot from 1 to 12 works. If the slot is empty, you are told so and nothing is written.
- “insert snippet” and its name, for example “insert snippet sign off”. You do not need the exact name: QUILL ignores capitals, punctuation and spaces, tries the whole name first, then a name that starts with what you said, then one that contains your words. If several snippets match, you hear how many and the list opens so you can choose. If none do, you hear “No snippet called sign off” and nothing is written.
- “insert abbreviation” (or “expand abbreviation”) and its trigger writes what that abbreviation stands for.
A snippet with blanks to fill in is written with each blank as its
name in square brackets, like [name]. Say “select name” and
then the real name, and the blank is filled.
Whatever goes in, it goes in as one phrase: one Ctrl+Z
takes it out, and so does “scratch that”. The read-back keeps it short,
“Snippet sign off” or “Pasted slot 3”, rather than reading the whole
thing to you. These commands do not work while Just write what I
say is on, because commands are off then.
Correct that: choosing another guess
Sometimes the engine was not sure what you said, and had a second idea. Say “correct that” straight after the phrase, and you hear up to three other guesses, numbered, for example: “1: right to Ann. 2: write two Ann. Say choose and the number.” Then say “choose one”, “choose two” or “choose three”, and that guess takes the place of what was written. You hear “Changed to:” and the new words.
Only Windows speech recognition keeps other guesses. Moonshine, Whisper, the optional models and OpenAI give one answer each, so with them “correct that” tells you there is nothing to choose from. Say “scratch that” and say it again, or add a correction in My Words and Phrases so it comes out right next time.
With any engine you can also say “correct” and the words that came out wrong, then say the right ones (see “Moving and selecting by voice”), or “spell that” to spell the last phrase out (see “Letters, numbers and symbols”).
Speech engines for Live Dictation
Speech engines. You have four to choose from:
- Moonshine, the default. It is fast even on a modest computer.
- Whisper, a little slower. Try it if Moonshine often mishears you. Moonshine and Whisper are both built in, and both are English. This Whisper comes with QUILL; it is not the whisper.cpp engine that transcription uses, which downloads the first time you need it.
- Windows speech recognition works in any speech language installed in Windows, but adds no punctuation of its own.
- Windows voice typing hands over to
Windows+H, where none of the commands apply. - OpenAI, only with your own OpenAI key and only if you choose it. Your speech is sent to OpenAI; see “OpenAI dictation, with your own key” below.
Larger models you download for better accuracy join this list; see “Better accuracy: optional speech models” below.
The wake phrase
The wake phrase. Switch on Listen for the wake phrase while dictation is off in Dictation Settings, then say “Quill dictate” (or a phrase of your own, at least two words) to start without touching the keyboard. Anything you say after it in the same breath is written.
While the wake phrase is on, the microphone is open whenever QUILL is the window in front. Nothing it hears is written, kept or sent unless it begins with the wake phrase, and the microphone closes when another program comes to the front. It never listens in the background.
Your own words and phrases
Your own words and phrases. Edit My Words
and Phrases… in Dictation Settings opens your
dictation.md, the same file Locked Dictation reads.
Vocabulary entries correct near misses to your
spelling. Replacements (say => write,
with \n for a new line) are spoken phrases of your own.
Dictation Settings (Alt+Shift+F6)
Dictation Settings – Alt+Shift+F6 (press
Alt+Shift+F6) is where Live Dictation is set up. Each
choice is listed here with its setting name in brackets:
- The speech engine
(
windows_dictation_engine). - The dictation language
(
windows_dictation_speech_language): English, or Spanish. See “Dictating in Spanish” below. - The language for Windows speech recognition
(
windows_dictation_language). - The microphone
(
windows_dictation_microphone, saved by name). - What you hear after each phrase
(
windows_dictation_phrase_feedback): a sound, the words read back, both (the default), or neither. - What “dash” writes
(
windows_dictation_dash): em dash, spaced en dash, or two hyphens. - The start, stop and error tones
(
windows_dictation_cue_sounds). - Saying “Dictation on” and “Dictation off”
(
windows_dictation_announce). - The wake phrase
(
windows_dictation_wake_enabled,windows_dictation_wake_phrase). - The stop phrase
(
windows_dictation_stop_phrase). It is “stop dictation” until you choose your own words, said on their own after a pause. “stop dictation” always works too.
Five finer choices sit beside them:
- Automatic punctuation for Moonshine and Whisper
(
windows_dictation_auto_punctuation). Turn it off and you say every mark. - The pause before a phrase is written
(
windows_dictation_pause): Short (half a second), Normal (under a second), Long (about a second and a half), Longer (2 seconds) or Longest (3 seconds). The two longest are for when you like to take your time between words. The cost is that every phrase waits that long before it is written. - Remove filler words such as um and uh
(
windows_dictation_remove_fillers). - Stop dictation after silence
(
windows_dictation_silence_minutes): never, 1, 5 or 10 minutes. - Just write what I say
(
windows_dictation_continuous), for talking in one long run. A pause then puts in no full stop, plays nothing and reads nothing back, and voice commands are written as words. Only spoken marks and the stop phrase are still obeyed.
When you stop in the middle of a thought. Sometimes you pause to think halfway through a sentence, and the engine puts a full stop there. If the phrase ends on a word no sentence ends on, such as “a”, “the”, “of”, “to”, “and”, “but”, “my”, “very” or “really”, QUILL takes that full stop back out and joins the next phrase on. So “this is a very” [pause] “good test” comes out as one sentence: “This is a very good test.” A full stop you said yourself is never taken back.
Test Microphone records four seconds and tells you
how loud it was and what the engine heard. Better Accuracy:
Speech Models… (Alt+B) opens the optional models
described in “Better accuracy: optional speech models” below.
More Dictation Settings… (Alt+A) opens the
window described next.
More Dictation Settings, every option
Press More Dictation Settings… (Alt+A)
in Dictation Settings. What you change here is saved when you press OK
in Dictation Settings.
| Option | What it does | Starts as |
|---|---|---|
| Hold the dictation key to talk; a quick press still turns it on and off | Also lets you hold Ctrl+F11 while you talk and let go to stop | Off |
| While you speak, the words heard so far | Show them in the status bar and on braille, also say new words quietly, or do not show them | Show them |
| Send a dictated message to the AI | When I pause, or When I press Enter | When I pause |
| Pause before the message is written | Short, Normal or Long, when talking to the AI | Long |
| Remove filler words when talking to the AI | Leave um and uh out of what you say to the AI | On |
| Automatic punctuation when talking to the AI | Let the engine punctuate what you say to the AI | On |
| Let OpenAI dictation send my speech to OpenAI | Your agreement, which you can take back here | Off |
| OpenAI speech model | The model OpenAI dictation uses, from OpenAI’s own list | The newest |
| My Dictation Instructions (button) | Opens the file Tidy Dictated Text follows | (a button) |
Say punctuation marks in the read-back (Alt+S) |
Reads “comma”, “period” and the other marks by name after each phrase; see “What you hear” | On |
Time stamps in live transcripts (Alt+T) |
Starts each paragraph of a live transcript with the time, like [10:42]; see “Live transcripts” | Off |
Dictate in Other Programs… (button, Alt+O) |
Saves your settings, hands them to Quill Inkwell and starts it; see “Dictating into other programs” | (a button) |
In settings files these are
windows_dictation_hold_to_talk,
windows_dictation_preview,
windows_dictation_ai_send,
windows_dictation_ai_pause,
windows_dictation_ai_remove_fillers,
windows_dictation_ai_auto_punctuation,
windows_dictation_openai_consent,
windows_dictation_openai_model,
windows_dictation_readback_marks and
windows_dictation_transcript_timestamps.
A failure is always spoken, whatever these settings say. If the read-back plays through speakers, the microphone can hear it, so use headphones or choose a sound only.
Dictating in Spanish
You can dictate in Spanish. This is new, so treat it as something to try, and tell us how it goes.
To switch it on, open Dictation Settings
(Alt+Shift+F6), move to Dictation
language, choose Spanish, and press Enter.
That’s all. To go back, choose English the same way. There is a quicker
way too, with one key or by voice; see “Switching between English and
Spanish” below.
What works now:
- Your words come out in Spanish, accents and all. With Moonshine or Whisper, QUILL uses Whisper’s multilingual speech model, which comes with QUILL, so there is nothing to download. Moonshine only knows English, so in Spanish you get Whisper either way.
- With Windows speech recognition, Windows needs Spanish installed: add Spanish (Spain or Mexico) in Windows Settings, Time and language, Speech. If it isn’t there, dictation tells you so when you start.
- The wake and stop phrases become “Quill dicta” and “deja de dictar”. If you have typed your own, yours are kept.
Commands stay in English for now. “Scratch that”, “select that”, “new paragraph” and the rest work exactly as they do in English. Spanish commands are on the way, once a native speaker has checked them.
Punctuation. With automatic punctuation on (the usual setting), Whisper puts in the commas, full stops and question marks for you, so just speak. Spanish punctuation words only work when automatic punctuation is off, or with Windows speech recognition. That’s because “coma” and “punto” are everyday words too, and we don’t want “que coma” turned into a comma. When they are on, you can say:
- “coma” for a comma, “punto” (or “punto y seguido”) for a full stop, and “punto y aparte” for a full stop and a new paragraph
- “punto y coma”, “dos puntos” and “puntos suspensivos”
- “abrir interrogación” and “cerrar interrogación” for the question marks at each end, and “abrir exclamación” and “cerrar exclamación” the same way
- “abrir paréntesis”, “cerrar paréntesis”, “abrir comillas”, “cerrar comillas”
- “guion”, “guion largo” and “arroba”
- “nueva línea”, “nuevo párrafo” and “tabulador”
Say “literal” first to write the word itself: “literal coma” writes coma. Say “what can I say” while dictating to see the whole list.
This is new, and we’d love to hear from you. If a word keeps coming out wrong, or something doesn’t work the way you expect, use Help > Get Help from Support and tell us what you said and what was written.
Switching between English and Spanish
If you write in both languages, you do not need to open Dictation Settings each time. Any of these switches you over, even in the middle of dictating:
- Press Switch Dictation Language
(
Ctrl+Shift+F11). Press it again to go back. - In English, say “switch to Spanish” or “Spanish dictation”.
- In Spanish, say “cambiar a inglés” or “dictado en inglés”. The accent on “inglés” is optional, so it works however the engine writes it.
You hear “Español.” or “English.” so you know where you are. QUILL remembers the choice, so next time you start dictating it is in the language you last used.
The first time you switch to Spanish in a session it can take a few seconds, because the speech engine is getting ready for the new language (with Moonshine, which only knows English, that means loading Whisper). After that, switching back and forth is quick, because both stay ready until you close QUILL.
QUILL does not guess the language phrase by phrase. You choose it, and it stays that way until you switch again. That means a Spanish name in the middle of an English sentence will be heard as English; for those, add the name to My Words and Phrases, or say “spell that” and spell it.
Better accuracy: optional speech models
Dictation works the moment you install. If you want more accuracy, you can download a larger model.
These are the same local models VS Code offers for its own dictation, plus the rest of the Whisper family. They are free, they are optional, and they run on your computer’s processor; no graphics card needed. Your voice never leaves the computer: the only thing that comes over the internet is the model itself, once, when you ask for it. Nothing downloads on its own, and the built-in Moonshine stays your engine until you choose another.
To download one:
- Open Dictation Settings (Alt+Shift+F6) and press Better Accuracy: Speech Models… (Alt+B).
- Arrow through the list. Each row says what the model is good for, how big it is, and whether it is already here. Details (Alt+T) says more: what it is better at, its languages, its download and disk size, which computers suit it, whether this computer should keep up, its published accuracy, its licence, and the folder it will be saved in.
- Press Download… (Alt+D). A question tells you where the model comes from, how big it is, its licence and where it will be saved. Answer Yes to start. On a metered connection you are asked about that first.
- You hear “Downloading”, then every quarter of the way. Cancel Download (Alt+L) stops it. What has arrived is kept, so pressing Download again carries on from there, even after you close QUILL.
- When it says the model is downloaded, press Use for Dictation (Alt+U), then OK in Dictation Settings. Or choose the model in the Speech engine list yourself: downloaded models are listed there with “(downloaded)” after the name.
Every file is checked against a fingerprint (a checksum) we recorded when we added the model. If a file does not match, it is deleted and you are told, so a damaged or changed download can never be used.
Where the models go. One folder for QUILL and QUILL
Lite on the same computer, so a model downloaded in one is there for the
other: %LOCALAPPDATA%\QuillVille\Dictation\models. In a
portable copy, models are saved inside the portable folder, so
everything travels together (data\dictation\models in the
portable folder). Before a download starts, QUILL checks there is room
on that drive and tells you if there is not.
To remove one, choose it in Speech Models and press Remove (Alt+R). It frees the space for both programs. If dictation is using it, choose another engine first.
Will my computer keep up? When Speech Models opens, it spends about two seconds timing the built-in Moonshine on this computer, then works out how each model should do here. The details then say one of three things: it should keep up comfortably; it should keep up but uses more of the processor, so your screen reader may answer a little more slowly while you dictate; or it “may lag behind your speech on this computer”. You can still download any of them. Large models on a dual-core computer with 8 GB of memory are only for when you can wait.
If a downloaded model goes missing (you removed it, or the drive with a portable copy is not there), dictation does not stop and does not change engine silently. It says, in one sentence, that it is using the built-in engine instead, and carries on.
Nemotron shows your words as you speak. It recognises while you talk, so the words heard so far appear in the status bar and on a braille display, and each phrase goes into the document when you pause. See “Seeing the words while you speak”. The other models write each phrase when you pause.
The list, in our suggested order
The order is our suggestion, not a measurement: VS Code’s own models first, then the rest of Whisper, smallest first.
| Model | Good for | Download | Languages |
|---|---|---|---|
| NVIDIA Nemotron 3.5 ASR Streaming 0.6B | Suggested download. Excellent for live dictation; VS Code’s default | 682 MB | English, Spanish |
| NVIDIA Parakeet Unified 0.6B | May give slightly better final text in some conditions | 663 MB | English |
| NVIDIA Parakeet TDT 0.6B v3 | Excellent recognition of each finished phrase | 670 MB | English, Spanish |
| Whisper small | A VS Code alternative: good | 375 MB | English, Spanish |
| Whisper base | A VS Code alternative: moderate | 161 MB | English, Spanish |
| Whisper tiny | Built in already. Fastest and lightest, weakest accuracy | (built in) | English, Spanish |
| Whisper base.en | Light and quick, a little better in English than base | 161 MB | English |
| Whisper small.en | Good English accuracy for a capable computer | 376 MB | English |
| Distil-Whisper small.en | Small’s accuracy, made smaller and faster | 299 MB | English |
| Distil-Whisper medium.en | Close to medium’s accuracy at a fraction of the work | 573 MB | English |
| Whisper medium.en | Best for accuracy when you can wait | 946 MB | English |
| Distil-Whisper large-v3 | Near large-v3 accuracy in English, much faster | 984 MB | English |
| Whisper medium | Best for accuracy when you can wait | 946 MB | English, Spanish |
| Whisper large-v3-turbo | Large-v3 quality, much faster than large-v3 | 1.0 GB | English, Spanish |
| Whisper large-v3 | The most accurate Whisper; very slow on most computers | 1.8 GB | English, Spanish |
| Moonshine base | A light step up from the built-in Moonshine | 141 MB | English |
English only, or many languages? The Whisper models ending in “.en” (and Distil-Whisper) only know English, and are a little more accurate in English than the many-language model of the same size. The many-language ones also dictate Spanish. If you only dictate English, choose a “.en” one.
How accurate are they?
These are the figures each model’s makers publish. A word error rate is the share of words a model gets wrong on a recorded test set; lower is better. Test sets differ, so compare numbers only within one line.
- Nemotron 3.5 ASR Streaming: 7.91 percent on FLEURS English and 4.11 percent on FLEURS Spanish, at the chunk size this download uses (NVIDIA’s model card, huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b).
- Parakeet Unified: 1.63 percent on LibriSpeech test-clean and 3.11 percent on test-other (huggingface.co/nvidia/parakeet-unified-en-0.6b).
- Parakeet TDT v3: 4.85 percent on FLEURS English, 3.45 percent on FLEURS Spanish (huggingface.co/nvidia/parakeet-tdt-0.6b-v3).
- Whisper, on LibriSpeech test-clean (OpenAI’s Whisper paper, Appendix D, arxiv.org/abs/2212.04356): tiny 7.6, base 5.0, small 3.4, medium 2.9 percent; English-only tiny.en 5.6, base.en 4.2, small.en 3.1, medium.en 3.1. On Spanish (Common Voice 9): tiny 30.3, base 19.6, small 10.3, medium 6.9 percent. That Spanish column is the biggest reason to choose a larger Whisper if you dictate Spanish.
- Distil-Whisper and large-v3, average over short recordings the models were not trained on (the Distil-Whisper model card, huggingface.co/distil-whisper/distil-small.en): large-v3 8.4, distil-large-v3 9.7, distil-medium.en 11.1, distil-small.en 12.1 percent. OpenAI publishes no figure for large-v3-turbo; it describes it as much faster than large-v3 with a small drop in quality.
- Moonshine: base 10.07 percent against tiny’s 12.66, averaged over the Open ASR Leaderboard’s English test sets (Moonshine AI, github.com/moonshine-ai/moonshine).
What each is better at, in plain words: the bigger models cope better with accents, fast speech, a noisy room, names and long sentences; all of them put in punctuation and capitals for you. For Spanish, any of the many-language models beats the built-in tiny by a wide margin.
What we measured on our own test computer (5 October 2026), with QUILL’s benchmark: twelve sentences and two commands read by Windows’ own computer voice, one processor thread, a 12-core desktop with 8 GB of memory. A computer voice is easy to understand, so every model scored about the same (3 to 5 percent of words, mostly “7:30” written as “seven thirty”), and every model heard both commands. What the run does show is cost:
| Model | Word errors | Seconds of computing per second of speech | Text after you pause | Most memory | Load time |
|---|---|---|---|---|---|
| Moonshine tiny (built in) | 3.4% | 0.05 | 0.2 s | 210 MB | 2.2 s |
| Whisper tiny.en (built in) | 3.4% | 0.20 | 0.7 s | 303 MB | 1.3 s |
| Moonshine base | 3.4% | 0.08 | 0.3 s | 365 MB | 2.0 s |
| Whisper base | 5.1% | 0.37 | 1.4 s | 417 MB | 1.5 s |
| Parakeet Unified 0.6B | 3.4% | 0.33 | 1.2 s | 844 MB | 5.2 s |
| Parakeet TDT 0.6B v3 | 4.2% | 0.34 | 1.2 s | 805 MB | 5.1 s |
| Nemotron 3.5 ASR Streaming | 2.5% | 0.40 | 1.5 s | about 790 MB | 3.2 s |
| Whisper small | 5.1% | 1.29 | 4.7 s | 859 MB | 4.4 s |
| Whisper medium | 3.4% | 3.04 | 11.2 s | 2.1 GB | 9.6 s |
| Whisper large-v3-turbo | 3.4% | 4.20 | 15.4 s | 1.4 GB | 5.3 s |
Nemotron, fed at live pace, showed its first words about 1.7 seconds into each sentence. Its memory is for dictation alone; the benchmark, which also loads a second copy to time that, peaked at 1.5 GB.
Seconds of computing per second of speech is on one thread; dictation uses two, and 0.25 is the budget we hold the built-in engines to so your screen reader always has room. Memory is the most the program used while dictating.
When the built-in model is still the better choice: on an older or dual-core computer, on battery, with a clear voice and a good microphone, or when your screen reader must never slow down. Moonshine tiny uses about a twentieth of a second of computing per second of speech and about 200 MB of memory; the large downloads use six to eighty times that.
Nemotron or Parakeet: which should I try?
Both are NVIDIA models of about 0.6 billion parameters, both are free, and both run here on the processor alone, with your voice staying on your computer. The difference is when they listen.
- Nemotron 3.5 ASR Streaming is built for live dictation. It recognises while you speak, in short slices, and NVIDIA designed it for low delay. It writes punctuation and capitals itself, and knows English, Spanish and many other languages. Its words appear in the status bar and on braille while you talk, and each phrase is written when you pause. It decides whether a sentence was a question once it hears the next one, so a full stop it wrote can turn into a question mark a moment later. About 682 MB.
- Parakeet recognises each finished phrase after you
pause. Nothing appears until you stop, but having the whole phrase at
once can give slightly more accurate final text in some conditions. It
writes punctuation and capitals itself, including question marks.
- Parakeet TDT 0.6B v3 knows English, Spanish and 23 other European languages. About 670 MB.
- Parakeet Unified 0.6B is newer and English only. NVIDIA trained it to work both while you speak and on a finished phrase; QUILL uses it on the finished phrase. About 663 MB.
On our test computer, on one thread, Parakeet Unified needed 0.33 seconds of computing per second of speech, Parakeet TDT 0.34 and Nemotron 0.40; each used about 800 MB of memory. Nemotron, fed at live pace, had its first words about 1.7 seconds into each sentence.
Rule of thumb: for writing as you go, try Nemotron; for dictating a paragraph and then checking it, try Parakeet.
How to tell which is more accurate for you
The published figures come from other people’s voices. Yours is the one that matters.
- Download one model, choose it, and dictate the way you normally do for a day.
- Each time a phrase comes out wrong, note it. Recent Phrases (Shift+F11) shows what was written, so you can compare.
- Switch to another model in the Speech engine list and do the same.
- Keep the one that made fewer mistakes, and remove the other to free the space.
If you like a more exact answer, QUILL’s benchmark measures any model
on your own recordings. Record ten sentences as 16 kHz mono WAV files,
write what you said in a transcripts.txt beside them (one
line per file: the name, a tab, the words), and run
python scripts/dictbench.py <folder> --model nemotron
in a copy of QUILL’s source. It prints the share of words wrong, which
marks were written, the speed, the memory and how long the model took to
load.
OpenAI dictation, with your own key
If you have your own OpenAI key, you can have OpenAI recognise your speech instead of your computer. It is very accurate, punctuates well, gets names right that it has never met, and can show your words while you speak. It is off unless you choose it, and your computer’s own engines stay the default.
Before you choose it, please know this: what you say is sent to OpenAI. While dictation is on with this engine, each phrase you speak goes over an encrypted connection to OpenAI, with your own key, and the words come back. OpenAI bills your account for it. Nothing goes through QUILL’s servers, and QUILL keeps no copy of your voice. OpenAI’s own policies apply to what it receives; read them at openai.com/policies. Silence is never sent, only the speech dictation heard. The built-in engines never send anything anywhere.
What you need: your own OpenAI key, saved in Use My Own AI Key (see the AI chapter). QUILL’s free AI is never used for dictation. OpenAI dictation does not work in Safe Mode.
Adding your key from here. You don’t have to go looking for it: in Dictation Settings (Alt+Shift+F6), choose More Dictation Settings…, and under “OpenAI, with your own key” press Add or Change OpenAI Key… (Alt+K). Your settings are saved, Use My Own AI Key opens, and once you paste your key, OpenAI appears in the speech engine list. You can also open Use My Own AI Key any time with Alt+F2.
Setting it up, step by step:
- Open Dictation Settings (Alt+Shift+F6).
- In Speech engine, choose OpenAI (your own key; sends your speech to OpenAI). It is only in the list on a computer where an OpenAI key is saved.
- A question says exactly what is sent. Read it, then choose Yes to agree, or No to keep the engine you had. If you just press Enter, the answer is No, and nothing is sent.
- More Dictation Settings opens with the cursor on OpenAI speech model. QUILL asks OpenAI which speech models your key can use and lists them, newest first. The newest is already chosen.
- Press
Enterto close More Dictation Settings, andEnteragain to save Dictation Settings. - Press
Ctrl+F11and talk, just as before.
Which model? The list comes from OpenAI, so it is always current, and models OpenAI is retiring are left out. On the day this was written it held two:
- gpt-live-transcribe writes as you speak. The words heard so far appear in the status bar and on braille, and each phrase arrives very soon after you pause.
- gpt-transcribe sends each phrase when you pause, and the words arrive a moment later.
If your model goes away. If OpenAI stops offering the model you chose, More Dictation Settings tells you once, and leaves the choice empty so you can pick another. If you are dictating when it happens, dictation stops and tells you. It never moves to a different model on its own.
Your words help. The names and terms in My Words and Phrases are sent with your speech as words to expect, so they come out spelled your way.
To stop sending your speech, choose another engine in Dictation Settings, or turn off Let OpenAI dictation send my speech to OpenAI in More Dictation Settings.
What it costs. OpenAI charges your account by the minute of speech. QUILL keeps no count; your OpenAI account’s usage page has the real figures.
What you might hear:
- “OpenAI dictation needs your own OpenAI key. Save one in Use My Own AI Key, in the AI menu, first.”
- “OpenAI dictation is not switched on.” Choose OpenAI in Dictation Settings and agree to the question.
- “OpenAI could not be reached. Check the internet connection.” That phrase is lost, and dictation keeps listening.
- “OpenAI did not accept the saved key.” Check your key in Use My Own AI Key.
- “The OpenAI model … is no longer available to your key.” Choose another in More Dictation Settings.
Talking to the AI
You can have a spoken conversation with AI help. Open the AI Conversation window (see the AI chapter). The cursor is already in Your message.
- Press
Ctrl+F11and ask your question. - Pause. Your message is sent, and you hear “Working.”
- The reply is read aloud. While it is being read, the microphone does not listen, so the reply is never taken as your next message.
- When the reply has been read, just carry on talking. If you want to
speak before it has finished, press
Escape: you hear “Listening.” and you can talk straight away. - Press
Ctrl+F11again when you are done.
While you are in that box, dictation uses its Talking to AI settings, and it goes back to your usual ones by itself when you leave:
- A longer pause (about a second and a half), so a breath does not send half a question.
- Filler words removed, because the AI does not need them.
- Automatic punctuation on.
- “Just write what I say” does not apply here, because the pause is what sends your message.
All four are in More Dictation Settings, under Talking to the AI. If you would rather check each message before it goes, set Send a dictated message to the AI to When I press Enter. Then pause as often as you like, and press Enter when the message is right.
Each message costs the same as a typed one: one request on QUILL’s free AI, or nothing extra beyond your own key or plan.
Where the words go
Where the words go. Into the document you started
in, replacing any selection. Each phrase is one step for
Ctrl+Z.
Your words go where you were when you started speaking. If you move the cursor, or switch to another tab or window, while a phrase is still being recognised, it is still written where you were speaking. Your cursor is put back where you moved it, and you hear “Written where you started”, with the document’s name if you were somewhere else by then. If that spot has changed in the meantime, the words go at the cursor in that document instead, and you are told.
After that, if you speak while another tab, window, program or dialog is in front, nothing is written: dictation stops and tells you why. Closing the document stops it too. A live transcript is the one exception, and the next section explains it.
Live transcripts
A live transcript is for when you want everything written down and
you do not want to steer: a meeting, a lecture, a long think out loud.
Press Start or Stop Live Transcript
(Ctrl+Alt+Shift+PageDown). QUILL opens a new, untitled
document, never the one you were working in, and writes everything it
hears into it.
It behaves differently from ordinary dictation, on purpose:
- It just writes. Voice commands are written as words; only the stop phrase is obeyed. There is no tone and no read-back after each phrase, no wake phrase, and it never stops because the room went quiet.
- It tidies as it goes. Filler words like um and uh are left out, and automatic punctuation is on.
- A long pause starts a new paragraph. Four seconds or more of quiet, and the next words begin a fresh paragraph. If you turn on Time stamps in live transcripts in More Dictation Settings, each paragraph starts with the time in square brackets, like [10:42].
- The words always go at the end. You can switch to another document, or another program altogether, and the transcript carries on writing at its own end. If you go back into the transcript to read or fix something, your place is kept and new words still arrive at the bottom.
The status bar keeps a count, for example “Live transcript: 12
minutes, 1,840 words”, and Dictation Status (Alt+F9) tells
you the same.
To stop, press Ctrl+Alt+Shift+PageDown again, or
Ctrl+F11. You hear “Live transcript stopped, 1,840 words.”
The document stays open and is not saved yet, so save it when you are
ready. Until then QUILL’s recovery protects it, the same as any unsaved
document.
The very first time you start one, you hear: “Please record other people only when they have agreed.” It is said once, and that is the only reminder.
A live transcript listens to your microphone. It does not hear sound playing on the computer itself, so for an online meeting it picks up what reaches the microphone, not the other people’s voices through your headphones. When it is done, you can turn it into minutes or notes with a Transcript Action (see “Transcript Actions” later in this chapter).
Dictating into other programs
Dictation does not have to stay inside QUILL. Dictate
Anywhere lets you dictate into your email, a web form, a chat
window, almost anything with a place to type. It is run by Quill
Inkwell, QUILL’s free companion app for abbreviations, so Inkwell needs
to be on your computer (QUILL’s Open Quill Inkwell,
Ctrl+Alt+Shift+F11, offers to fetch it if it is not).
Setting it up the easy way:
- In QUILL, open Dictation Settings (
Alt+Shift+F6), then More Dictation Settings… (Alt+A). - Press Dictate in Other Programs…
(
Alt+O). Your dictation settings are saved and handed to Inkwell, and Inkwell starts. - If you have not chosen a key for it yet, Inkwell asks you for one now. Pick a key you do not use for anything else.
You can also choose the key yourself in Inkwell: File > Dictate Anywhere Key…. There is no key until you choose one.
Using it:
- Go to the other program and put the cursor where you want the words.
- Press your Dictate Anywhere key.
- Speak, then pause. Each phrase is typed in where the cursor is.
- Press the key again, or say “stop dictation”, when you are done.
The same engines, your own words, and most of the commands work just as they do in QUILL: punctuation, spelling, “spell that”, “caps on”, “no space on”, switching to Spanish, and “scratch that”. “Scratch that” works by pressing Backspace for you, so it only works while the same window still has the focus.
Anything that needs to read what is already in the other program cannot work there: “select”, “go to”, “correct”, clips and snippets. If you say one of those, you are told “That works in QUILL’s own documents” and nothing happens.
Out of respect for your privacy and your other programs, Dictate
Anywhere will not type into a password box, into a program running as
administrator (unless Inkwell is too), into Inkwell’s own window, or
into QUILL itself. In QUILL, just use Ctrl+F11. Each time,
you are told why in a sentence.
Inside other programs the read-back starts as a tone only, because
your screen reader already echoes what is typed. Inkwell keeps its own
copy of the dictation settings: in Inkwell, Dictation >
Dictation Settings… (Ctrl+Alt+D) opens the same
window you know from QUILL, and Dictation > Dictate
Anywhere (Ctrl+D) turns it on and off from the
menu. Inkwell uses the same My Words and Phrases file as QUILL, so the
names you taught QUILL come out right everywhere. Dictate Anywhere is
off in Safe Mode.
Dictation Context for This Document
You can tell QUILL, in a sentence, what the document in front of you is: “A formal letter to my landlord about the boiler”, or “Notes from the Tuesday book club”. Some engines use that to choose words and style better.
Press Dictation Context for This Document…
(Ctrl+Alt+Shift+PageUp). The window has:
- This document is: a box for your sentence.
- Start from a saved context: a list of contexts you saved before, then a few starters: Formal letter, Note to a friend, Technical writing, Meeting notes and Story. Choose one to fill the box, then change it as you like.
- Also save it as a context named: give it a name if you will want it again.
- Who uses it: a line you can read but not change, saying which of your settings will use the context.
QUILL remembers the context for that document, by where it is saved, so it is there next time you open it. For an untitled document it lasts until you close QUILL. You can also pick a saved one by voice: say “dictation context” and its name, for example “dictation context meeting notes”.
Who uses it. OpenAI dictation sends it along with
your speech, so names and words fit the subject. Tidy Dictated
Text (Ctrl+F3) uses it beside your My Dictation
Instructions. The engines on your own computer cannot use it, and the
window tells you so. Your context only goes where your speech or text is
already going; it is never sent anywhere new.
Dictation Status
Not sure whether dictation is listening, or in which language? Press
Dictation Status (Alt+F9). You hear what
dictation is doing right now, including the engine and the language, and
during a live transcript, how long it has run and how many words it has
written.
Alt+F9 is also Locked Dictation’s status key. When
Locked Dictation is recording or paused, it tells you about that; the
rest of the time it answers for Live Dictation.
On a modest computer
Dictation is built to be kind to an older computer, so your screen reader stays quick:
- Nothing runs while dictation is off. The speech model is loaded the first time you start dictation, kept ready while you use it, and put away a few minutes after you stop, which gives its memory back.
- If the computer cannot keep up. If an optional model you downloaded falls behind your voice, because the computer is busy or on battery saver, you hear “This computer is busy, so dictation switched to the faster built-in engine for now. Your choice in Dictation Settings is unchanged.” Dictation carries on with Moonshine. Next time you start, it tries your model again.
If dictation will not start, it tells you why: no microphone, microphone access turned off for desktop apps in Windows Settings, Privacy and security, Microphone, or (for Windows speech recognition) no speech language installed.
Live Dictation and Locked Dictation each keep their own microphone choice.
Dictating well
Dictation gets much better with a few habits, and none of them are hard. This is what is worth knowing before you sit down to dictate for the first time.
Your microphone
Any microphone works, but the closer it is to your mouth and the further from everything else, the better your words come out.
- A headset is best. A USB or Bluetooth headset with a boom microphone stays the same distance from your mouth however you move your head. That steadiness matters more than price.
- Place it just off to the side. About two fingers from the corner of your mouth, not straight in front, so your breath does not puff into it.
- A laptop’s own microphone will do in a quiet room, but it also hears the keyboard, the fan and your screen reader. If words keep coming out wrong, a headset is the first thing to try.
- Check it. Test Microphone in
Dictation Settings (
Alt+Shift+F6) records four seconds and tells you how loud you were and what the engine heard. If it says you are quiet, move the microphone closer before you turn anything up.
The room
A quiet room helps more than any setting. A television, a radio or a conversation across the room gets heard as words. Close a door if you can. Hard, bare rooms echo; a room with soft furnishings sounds better to a microphone than a kitchen does.
Speaking in phrases
Talk in phrases, the way you would read a sentence aloud to someone, and pause at the natural places. Each pause sends a phrase to be written, so a phrase is also the size of thing “scratch that” takes back.
- Speak at your normal pace. Slowing down to one word at a time actually makes it harder for the engine, because it uses the words around each word to work out what you meant.
- Finish the thought before you pause where you can. If you do stop halfway, on a word like “the” or “and”, QUILL joins the two halves for you (see “When you stop in the middle of a thought”).
- If you are a thoughtful speaker who often pauses between words, and dictation keeps writing your sentence in pieces, choose a longer Pause before a phrase is written in Dictation Settings. Longer waits two seconds and Longest three. Your words will appear a little later after each pause, but they will come out whole. If you talk quickly and want your words fast, Short is for you.
Punctuation: say it or let it be
With Moonshine, Whisper and the downloaded models, automatic punctuation is on, and for ordinary writing the easiest thing is to just talk and let the engine put in full stops, commas and question marks.
Say a mark when you want something particular: “new paragraph” to start one, “colon” before a list, “open quote” and “close quote” around a quotation, or a comma the engine would not have guessed. Your spoken mark always wins. If you would rather say every mark yourself, turn Automatic punctuation off, and the engine will write only what you say.
Two habits that help: say “new paragraph” as a phrase of its own, and say “period” at the end of a sentence you want to be sure is finished. The read-back says each mark by name, so you always hear whether it went in.
Fixing mistakes as you go
Every engine gets a word wrong now and then. Fixing it by voice soon becomes a quick loop:
- “scratch that” takes back the whole last phrase. Say it again, a little more clearly.
- “correct” and the wrong words (for example “correct red rocks”) selects them. Say the right words and they replace the wrong ones.
- “select” and some words does the same for anything further back.
- “spell that” is for a name or a word the engine has never heard. Spell it with the phonetic alphabet in your next phrase.
- Recent Phrases (
Shift+F11) shows what was written for your last twenty phrases, so you can see what went wrong. - When you are done, Tidy Dictated Text
(
Ctrl+F3) can fix sound-alike words, names and punctuation in a paragraph or a selection with AI, if you have a ChatGPT subscription or your own OpenAI key (see “Tidy Dictated Text” later in this chapter).
If the same word comes out wrong again and again, add it to
My Words and Phrases (Alt+Shift+F10). That
fixes it for good, in every engine.
Dictating with a screen reader running
QUILL was built for this. Two things make it smooth:
- Wear headphones. If the read-back and your screen reader come out of speakers, the microphone hears them, and they can end up in your document. With headphones, the microphone only hears you.
- Choose what you hear. After each phrase QUILL plays a soft tone and reads the phrase back, marks and all, so you can check it without moving the cursor. If that is more than you want, set What you hear after each phrase in Dictation Settings to a sound only, and read the line with your screen reader when you choose to. If you would like to hear the words but not the marks, turn off Say punctuation marks in the read-back in More Dictation Settings.
While dictation is listening, QUILL keeps the speech engine light enough that your screen reader stays quick. If you find it slowing down, see “On a modest computer” and the choices below.
Choosing a speech engine
- Moonshine (built in) is the place to start. It is quick on any computer and good with a clear voice and a decent microphone.
- Whisper (built in) is a little slower and sometimes better with accents or a busier room. It is also what QUILL uses for Spanish.
- A downloaded model, such as Nemotron or Parakeet, is more accurate, especially with names, accents and fast speech, and still runs entirely on your computer. It needs a reasonably capable computer; see “Better accuracy: optional speech models”.
- OpenAI, with your own key, is the most accurate of all and is very good with names, but your speech is sent to OpenAI and they charge you for it. See “OpenAI dictation, with your own key”.
Try one for a day before you judge it. Everyone’s voice suits a different engine.
Spanish
Everything here holds for Spanish too. Use Whisper or a many-language
downloaded model; the larger ones are much better in Spanish than the
built-in one. Let automatic punctuation do the marks, and switch
languages with Ctrl+Shift+F11 or by saying “switch to
Spanish” (see “Switching between English and Spanish”).
On an older or slower computer
Stay with the built-in Moonshine; it uses very little. Choose Normal or a longer pause rather than Short, close programs you are not using, and keep the laptop plugged in while you dictate, because battery saver slows everything down.
Practice: try these
Here are two short paragraphs to read aloud. Start Live Dictation
with Ctrl+F11 in a new document, read each line as one
phrase, and pause at the end of each. Then compare what you got with
what should come out.
Practice one: let the engine punctuate. Just read these naturally, with no marks:
Dear Sam [pause] thank you for the lovely flowers they arrived this morning [pause] I will see you on Saturday at the market [pause]
What should come out, more or less:
Dear Sam. Thank you for the lovely flowers, they arrived this morning. I will
see you on Saturday at the market.
If “Dear Sam” came out with a full stop you do not want, say “scratch that” and try “Dear Sam comma new paragraph” instead.
Practice two: say the marks. Read these exactly as written, marks and all:
heading two shopping list [pause] bullet milk comma eggs and bread [pause] bullet ask Sam about the party question mark [pause]
What should come out:
## Shopping list
- Milk, eggs and bread
- Ask Sam about the party?
Then try “correct eggs”, say “butter”, and listen to it change. If “Sam” came out as some other word, say “correct” and that word, then “Sam” again.
To practise with QUILL leading you step by step, see the dictation lessons in the Tutorials, described at the end of this chapter.
Locked Dictation (Ctrl+F9)
Locked Dictation is a keyboard-only way to dictate a longer passage without opening a dialog or leaving the editor. It uses the same on-device Whisper engine and microphone as Dictate (Offline), so nothing is uploaded.
- Put your cursor where the text should go.
- Press
Ctrl+F9. QUILL says “Locked dictation on.” - Speak as long as you like, across sentences and paragraphs.
- Press
Ctrl+F9again to finish. QUILL transcribes what you said and inserts it at the cursor as one undoable edit.
There used to be a press-and-hold F9 mode. It was
removed, because a held key repeats and announces itself endlessly under
a screen reader.
Stopping, pausing and checking
- Stopping safely. While recording,
Escapestops and keeps your speech for transcription.Shift+Escapecancels and throws it away. A session also stops by itself after five minutes, and it stops and keeps your audio if QUILL loses focus. - Pause and status.
Ctrl+Shift+F9pauses or resumes the session.Alt+F9speaks the current state without changing anything. When Locked Dictation is not recording, the same key answers for Live Dictation instead (see “Dictation Status”). - Distinct sound, one-time hint. Locked Dictation plays its own sounds, and the very first time you dictate, QUILL speaks a short hint about the keys.
- Remappable.
Ctrl+F9and the rest are only the defaults. Change them in the Keymap Editor (Tools > Customize and Support > Keymap Editor…).
To use Locked Dictation you need an offline speech model installed (Tools > Speech > Manage Speech Models) and the optional microphone-capture support. In Safe Mode, dictation is turned off.
Nothing is lost
Nothing is lost. Your audio is saved to a recovery folder before transcription starts, and a transcript that cannot be safely inserted is kept for you to review.
Dictation History & Review. Tools >
Speech > Locked Dictation > Dictation History &
Review… lists every recording whose transcript was never
inserted: ones left behind by a crash, and ones that could not be placed
safely. For each you can insert it at the cursor,
copy it, or discard it.
Enter inserts the selected row. If anything is waiting for
review when QUILL starts, QUILL tells you and points you here, so
dictated speech is never silently lost.
Locked Dictation settings
Dictation Settings. Tools > Speech > Locked Dictation > Dictation Settings… holds the choices the dictation engine reads:
- the session time limit
- stop and keep speech when QUILL loses focus
- intelligent insertion spacing
- a reset that brings back the one-time first-use hint
Parakeet 3 and silence
Parakeet 3: the most reliable dictation engine, and QUILL prefers it once you install it. Whisper has a well-known flaw for dictation. Give it silence (a pause while you think, a breath before you stop) and it sometimes invents text, most famously a phantom “thank you”. Parakeet 3 only writes words when it actually hears them, so silence produces nothing.
Parakeet 3 is an NVIDIA model. It knows 25 languages, detects the language by itself, runs on the CPU only, and is about a 650 MB download from Manage Speech Models. Once its model is installed, dictation switches to it automatically. If you have chosen an engine yourself, that choice is always respected, and removing the model simply returns you to Whisper. Nothing else changes: same keys, same review, same recovery.
Silence is trimmed before transcription. QUILL removes the quiet lead-in and tail from each dictation take before the engine hears it. A recording with no speech in it at all gets the “no speech” sound, so no engine gets the chance to make something up. This applies to every engine, Whisper included, and there is nothing to set.
Teach dictation your words
Teach dictation your words. A small file called
dictation.md in your QUILL data folder
holds your own vocabulary (so names and jargon come back spelled right),
spoken-to-written replacements (such as “new line” becoming a real line
break), and spoken command phrases of your own. It applies to Locked
Dictation and the Dictate (Offline) toggle.
Your vocabulary is used twice. Engines that accept a hint, such as Whisper, are steered toward your words before they transcribe. Then every engine, including Parakeet 3, which takes no hints, gets a fuzzy correction pass afterwards. It recognises near misses by spelling and by sound, so “charge b” comes back as “ChargeBee” exactly as you wrote it, capitals and all. Names split in two, words run together, and “R&D” heard as “r and d” are all repaired. Ordinary words are left alone.
The Voice Interaction guide (voice-interaction.md), in its section “Teaching dictation your words,” explains the file format and how to choose a speech engine (Whisper’s small models, Parakeet 3, or Nemotron).
Filler words
Filler words can be removed, but only if you ask.
This option is off by default. Turn it on with the
dictation_remove_fillers setting, and hesitations like “uh”
and “hmm” are taken out of your transcripts. It pays attention to
language: “um” is only removed when your dictation language says that is
safe, because in Portuguese “um” means “a” or “an”, and in German it
means “at” or “around”. When QUILL cannot tell the language, it only
removes sounds that are fillers in every language.
Dictate (Offline)
Dictate (Offline) on Tools > Speech is a simple toggle that speaks straight into your document.
- Choose it, or press the QUILL key (
Ctrl+Shift+Grave) thenShift+D. QUILL plays a start tone and the status bar shows “Dictation listening”. - Speak.
- Choose it again to stop. QUILL plays a stop tone, transcribes what you said in the background, and inserts the text at your cursor as one undoable edit. The status bar shows the word count.
Dictation Microphone… on the same menu chooses which microphone this dictation uses, or the system default.
Transcribing a recording
When you have a recording rather than a live voice, QUILL can turn it into text in three ways: with Live Dictation’s speech engines (Shift+F5), with the offline engine from Tools > Speech, or with a cloud service from the AI menu. Whichever you use, you get a draft to read and correct, because automatic transcription is never perfect.
Transcribing an audio file
Sometimes the words you want are already in a recording: a voice note from your phone, an interview, a lecture, a meeting somebody recorded for you. Transcribe a Recording listens to it and writes down what was said, using the same speech engines as Live Dictation: the two built in, any you downloaded, or OpenAI with your own key. It works in the background, so you can keep writing while it listens, and it tells you when it is done. It is the same command, with the same window and the same key, in QUILL Lite.
How it differs from the other two ways in this section: it needs nothing downloaded and no ffmpeg, because it uses the models dictation already has and reads recordings with parts of Windows; it can use any speech model you downloaded for dictation; and it writes paragraphs, with times if you want them, straight into a document. Transcribe Audio or Video (Offline) is the one for video files, captions and speaker labels, and AI > Transcribe Audio File is the one for Transcript Actions such as meeting minutes.
Your first transcription, step by step
- Press Shift+F5, or choose Tools > Speech > Live Dictation > Transcribe a Recording…. The Transcribe a Recording window opens with the cursor in Recording.
- Type the full path of the file, or press Browse… (Alt+B) and choose it. You can also drag a file from File Explorer and drop it on the window.
- Check Language spoken in the recording (Alt+L): English or Spanish.
- Check Speech model (Alt+M). The most accurate model on your computer is already chosen for you. Just below it, About this model and this recording says what the model is good for, how long the recording is, and about how long it should take on your computer, for example “The recording is 12 minutes long. With NVIDIA Parakeet TDT 0.6B v3, transcribing it should take about 6 minutes on this computer.”
- The transcript is not inserted into the document you are editing. When it is ready, its completion notice appears in Notifications; activate that notice when you are ready to open the privately saved transcript.
- Press Enter. You hear “Transcribing meeting.mp3 in the background.”
- Carry on with whatever you were doing. The status bar shows how far it has got, and every quarter of the way you hear it quietly: “meeting.mp3: 25 percent”. When it is done you hear one sentence, such as “Transcribed meeting.mp3: 12 minutes, 1,804 words, in 6 minutes.” The completion notice stays in Notifications so you can open the result later.
That is all there is to it. The rest of this section explains the choices.
What the text looks like
The text is written the way dictation writes it: full stops, commas, question marks and capital letters put in by the speech engine, with the spacing tidied between sentences. A few more things happen on the way:
Paragraphs. A new paragraph starts wherever the recording goes quiet for two seconds or more. If somebody talks for more than two minutes without a long pause, the next pause of any length starts a new paragraph, so you never get one enormous block.
Timestamps, if you want them. Timestamps are off unless you turn them on. Check Add timestamps (Alt+T) and every paragraph begins with the hours, minutes and seconds where it was said, like this:
[00:01:23] The budget for the spring term is nearly final.It makes it easy to find a passage again in the recording.
Your own words. The corrections in My Words and Phrases are used, so a name the engine always mishears comes out your way.
Filler words. If you have Remove filler words turned on in Dictation Settings, the ums and ahs are left out here too.
Spoken punctuation. In a recording, somebody who says “new paragraph” or “comma” usually means the words, so they are written as words. If you recorded yourself dictating on purpose, check Obey spoken punctuation and commands (Alt+O): then “comma”, “period”, “new line”, “new paragraph” and “scratch that” work just as they do when you dictate. Commands that move the cursor are ignored, because there is no cursor in a recording.
Which model for which recording
The Speech model list shows every model on your computer, most accurate first: the two that come with QUILL, and any you downloaded in Dictation Settings, Speech Models (see “Better accuracy: optional speech models” earlier in this chapter). Here is how to choose:
- Voice notes and dictated letters. One clear voice, close to the microphone. Moonshine tiny is built in, is the fastest by far, and does this well. Whisper tiny is the one to try if Moonshine mishears an accent.
- Interviews and meetings. Several voices, people interrupting, someone further from the microphone. A downloaded model is worth it here. Parakeet TDT 0.6B v3 is our first choice: it is the most accurate model we offer and among the quickest of the big ones. Whisper small, medium or large-v3-turbo are good too, just slower.
- Lectures and talks. One voice, a long time, and plenty of special words. Parakeet again, or a Whisper model. Before you start, add the speaker’s names and terms to My Words and Phrases, and you will spend less time correcting.
- Noisy rooms. A café, a car, a hall with an echo. The bigger the model, the better it copes: Parakeet, Whisper medium or Whisper large-v3-turbo. The two tiny models struggle with noise. OpenAI is very good with noise too, if you use your own key (see below).
- Spanish. Choose Spanish as the language first. The built-in Whisper tiny knows Spanish, and so do Parakeet TDT 0.6B v3, Nemotron and the multilingual Whisper models. The list shows only the models that know the language you chose.
A model that is too slow for live dictation is fine for a recording: nobody is waiting at the end of each sentence. The estimate tells you the wait before you start.
How long it takes
How long depends on the model and on your computer. These are our estimates for a one-hour recording, worked out from the speeds we measured for each model, on a modest computer (two processor cores, 4 GB of memory) and on a more capable one (four or more cores, 8 GB or more):
| Model | Modest computer | Capable computer |
|---|---|---|
| Moonshine tiny (built in) | 6 minutes | 3 minutes |
| Whisper tiny (built in) | 19 minutes | 9 minutes |
| Parakeet TDT 0.6B v3 | 30 minutes | 13 minutes |
| Nemotron | 37 minutes | 16 minutes |
| Whisper small | 1 hour 49 minutes | 46 minutes |
| Whisper large-v3-turbo | about 6 hours | about 2 and a half hours |
For a real example: a three-minute recording took 10 seconds with Moonshine tiny, 20 seconds with Whisper tiny and 25 seconds with Parakeet on the computer QUILL is developed on, plus a few seconds the first time while the model loads.
Transcribing uses two of your processor’s cores, the same as dictation, so your screen reader stays quick. The model is put away a few minutes after the last transcription finishes, which gives its memory back.
Where the text goes
- The document in front stays untouched. There is no destination picker, and the transcript is not inserted into the text you were editing.
- Open it when you are ready. QUILL saves the transcript privately and adds a completion notice to Notifications. Activate that notice to open the transcript in the editor. Save the document with Ctrl+S if you want a separate file in a location you choose.
Several recordings, checking on it, and stopping
- Several at once. In Browse, hold Ctrl and choose more than one file. They are transcribed one after another with the same choices, and each completed recording gets its own notice in Notifications. Activate a notice to open that transcript. If one is already running when you start another, you hear “Added to the queue”.
- How far has it got? Press Shift+F5 again. At the top of the window, Transcribing now says which recording it is on, how far it has got, and how many are waiting. Press Escape to close the window and let it carry on.
- Stopping. In that same window, press Stop Transcribing (Alt+S). The recording being transcribed stops, any waiting ones are forgotten, and nothing is written into a document.
- If you missed what it said. Open Notifications to find and reopen a completed transcript. Shift+F9 opens Activity, which keeps every transcription this session, finished or failed, with the reason when something went wrong.
Which files it can read
MP3, M4A, AAC, WAV, Ogg, Opus, FLAC and WMA, and also the sound in an MP4 file and AIFF. QUILL reads all of them itself, using parts of Windows that are already on your computer, so there is nothing extra to download and no other program to install. Files with copy protection, such as some bought audiobooks, cannot be read.
Privacy, and OpenAI with your own key
With the models on your computer, nothing leaves your computer. The recording is read, not copied, and nothing is kept afterwards except the text.
If you have your own OpenAI key saved in Use My Own AI Key, OpenAI’s speech models appear at the bottom of the list a moment after the window opens. OpenAI is very accurate, especially with several voices, accents and noise, but it sends your recording to OpenAI, so it is never chosen for you, and it is never offered in Safe Mode. When you choose it and press Enter, a question says exactly what will be sent. The answer is No unless you choose Yes, every time. If you agree:
- the speech in the recording is sent over an encrypted connection to OpenAI, about a minute at a time, with your own key, and the words come back;
- OpenAI bills your account by the minute of audio;
- the names in My Words and Phrases are sent as words to expect;
- nothing goes through QUILL’s servers, and QUILL keeps no copy;
- OpenAI’s own policies apply to what it receives; you can read them at openai.com/policies.
Please only send recordings you have the right to share, and that the people speaking in them have agreed to. The live model, gpt-live-transcribe, is not in this list: it is made for a microphone, not a file.
Messages you might hear
- “meeting.mp3 was not found.” The file was moved or renamed. Choose it again with Browse.
- “meeting.mp3 could not be read as a recording.” It is not one of the formats above, or it is damaged or protected.
- “meeting.mp3 was read to the end, but no speech was found in it.” The recording is silent, or very quiet. Nothing is written.
- “… could not be loaded, so this used the built-in engine.” A downloaded model would not load, so Moonshine did the work instead. Removing and downloading the model again in Speech Models may help.
- “Stopped transcribing meeting.mp3.” You pressed Stop Transcribing.
- “Could not transcribe meeting.mp3”, followed by the reason, for anything else. You hear the error tone, and the reason stays in Activity.
Transcribe on your computer
QUILL can transcribe entirely on your computer, with no cloud account and without uploading your audio. No AI account or key is required, and you do not need to turn on Artificial Intelligence to use it.
- Choose Tools > Speech > Transcribe Audio or Video (Offline)….
- Pick an audio or video file.
- Choose a transcript format: plain text, Markdown, or HTML.
- Keep working while it runs in the background. QUILL tells you when it is done and how many words it produced, and opens the result as a draft document you can edit.
The first time you transcribe or dictate offline, QUILL may need to fetch its speech engine and a model. It offers to do that for you. The Speech section later in this chapter explains models and engines.
Supported formats and FFmpeg
Supported formats. You can pick MP3, M4A, AAC, FLAC, OGG, Opus, WMA, WAV, MP4, M4V, MOV, MKV, WebM, or AVI.
If ffmpeg is installed, QUILL converts the file for you before transcribing, so you never have to make a WAV yourself. QUILL does not ship ffmpeg, but it can fetch it:
- Tools > Speech > Download FFmpeg… downloads the official build (about 110 MB, with a progress bar you can cancel) and sets it up.
- Or install it yourself once (for example,
winget install Gyan.FFmpeg) and QUILL finds it on your PATH.
ffmpeg is open source (GPL/LGPL) and comes straight from the official builder. QUILL never bundles or redistributes it. Without ffmpeg, the whisper.cpp engine needs a 16 kHz mono WAV, while the Faster Whisper engine can handle the other formats by itself.
Captions and speaker labels
- Generate Captions (Offline)… on Tools > Speech transcribes a file with timestamps and saves the result as SRT or VTT caption files.
- Speaker attribution. If you download the “Small English with speaker detection” model (in Manage Speech Models), QUILL marks who is speaking when. Each turn is labelled “Speaker 1”, “Speaker 2”, and so on in the transcript, in bold in Markdown and HTML. It tells the turns apart; it does not name the people.
Transcribe Audio File
If you have AI set up, AI > Transcribe Audio File… sends a recording to OpenAI Whisper in the cloud.
- Choose AI > Transcribe Audio File…. A file picker opens.
- Pick the audio file. Supported formats: MP3, MP4, M4A, WAV, WEBM, OGG, FLAC (maximum 25 MB).
- Choose your options:
- Language: detect it automatically, or pick a language for better accuracy.
- Speaker diarization (uses Deepgram): works out who is speaking when. Each turn is labelled Speaker 1, Speaker 2, and so on, with timestamps. This needs a Deepgram API key set up in AI Hub.
- Translate to English: transcribes audio in any language and gives you an English translation in one step (Whisper translation mode).
When the transcript is ready, QUILL asks “What would you like me to make of this?” and offers a short list of Transcript Actions, chosen to suit the recording. Pick one and QUILL turns the transcript into a finished document, such as meeting minutes, action items, study notes or a clean draft, and opens it for you to review and edit. Or choose “Just keep the transcript” to go to the viewer, where you can copy it, insert it at the cursor, or open it as a new document. If AI is turned off, you go straight to the viewer.
AI > Translate Audio File to English… goes straight to the Whisper translation, skipping the language step.
Transcript Actions
A transcript is rarely what you actually need. You want the minutes, the action items, or a clean draft. Transcript Actions make that last step one choice away. You can reach them in two places:
- Right after transcription, in the “What would you like me to make of this?” chooser described above.
- Any time, on text you already have, with AI > Transcribe Audio > Transcript Actions…. Paste in a transcript or notes (or select part of your document) and pick an action.
The built-in actions are:
- Meeting Minutes: attendees, decisions, action items with owners, follow-ups.
- Action Items: every task and commitment as a numbered list you can act on.
- Executive Summary: a short briefing for leadership.
- Interview Notes: questions, answers, strengths, concerns and an assessment.
- Study Notes: a lecture or talk turned into organized notes.
- Q&A Extraction: every question and its answer in clean Q&A format.
- Clean Up & Draft: spoken rambling turned into a clean, readable draft.
- Follow-Up Email: a warm, ready-to-send recap with next steps.
- Key Quotes: the most notable quotes, word for word, with who said them.
- Decisions Log: just the decisions made, each with its reason and owner.
QUILL puts the most likely ones first for the recording in front of you. A meeting with several speakers starts with Minutes and Action Items; a single voice starts with Clean Up & Draft. Every action is always there, though. The finished document opens in a new window, so your original transcript is never overwritten. Transcript Actions use whichever AI provider you have set up in the AI Hub.
Automate transcription with watch folders
A watch folder lets you set a rule once: drop a file in this folder, and QUILL deals with it. You will find the commands on Tools > Watch Folder.
The Watch Folder menu
- Watch Folder Monitoring (in Settings)… turns on or off the automatic opening of supported files dropped into a folder you have chosen.
- Watch Folder Profiles… sets the folder path, whether subfolders count, what happens at startup, and how often the folder is checked.
- Watch Folder Queue… shows what is happening right now and the settings in use.
Watch folders are good for “drop and open” work: copy supported files into one folder and let QUILL open them in the background. They respect Do Not Disturb and run quietly.
Transcribing arriving audio
Each watch profile runs one action on every file it picks up. As well as opening, moving, copying, converting, running a macro or a sandboxed transform, and OCR, a profile can transcribe arriving audio. Any audio or video file dropped into the folder is transcribed on your machine with the offline speech engine, and a transcript is written next to it. Nothing is uploaded.
Choose the Transcript format in the profile:
- plain Text (
.txt) - SubRip captions (
.srt) - WebVTT captions (
.vtt) - Markdown (
.md)
The caption formats carry timestamps. If the engine returns no timed parts, they fall back to plain text, so you never get an empty caption file. This needs no consent. If no speech model is installed yet, the profile tells you to download one from Tools > Speech > Manage Speech Models.
There is also a separate Transcribe audio (OpenAI Whisper) action for cloud transcription, once you have turned on AI and set up a key.
Making minutes automatically
A transcribe profile can also chain an AI Action onto each recording:
- In Tools > Watch Folder > Watch Folder Profiles…, point a profile at a folder (for example, Meetings).
- Choose a transcribe action (offline or OpenAI Whisper).
- Under Then make, pick a Transcript Action, such as Meeting Minutes.
From then on, every recording that lands in that folder is
transcribed, and the minutes document is written next to it, with a name
like standup-meeting-minutes.md. If AI is off or no
provider is set up, you still get the transcript. The action step is
skipped with a note, never an error.
The Watch Folders page in Settings
- Enable folder watching by default starts watching your enabled profiles each time QUILL starts. It is off to begin with. Watch Folder Monitoring (in Settings)… brings you to Settings so you can turn it on.
- Default watch folder: if you just want one folder where anything you drop gets opened, you don’t need a profile. Put the folder here, and QUILL opens each new supported file that lands in it. Blank to begin with.
- Start watching automatically is the switch that watches your default folder, from the moment QUILL opens and for as long as it runs. It works on its own, so you can watch the default folder without turning on Enable folder watching by default, which starts your profiles. Safe Mode turns both off. Off to begin with.
- Include subfolders: turn this on and files in folders inside your default folder count too. Off to begin with.
- Process existing files on start: normally QUILL only opens files that arrive after it starts watching. Turn this on to have it open what’s already waiting in the default folder as well. Off to begin with.
Your profiles each have their own folder and their own Include subfolders, existing files and startup choices; these four only decide for the default folder.
- Poll interval (seconds) is how often a watched folder is checked, from 2 to 300 seconds. The default is 5.
- Watch folder: play a sound on each check plays a short tick every time the folder is checked, so silence means the watcher has stopped rather than found nothing. Off to begin with.
- Watch folder: let results interrupt speech announces a newly opened file straight away, cutting across whatever is being said. Off means the notice waits its turn.
Speech
Tools > Speech is where QUILL keeps its on-device speech tools: the transcription and dictation commands you have already met, and the speech models and engines that make them work. You do not have to understand any of this to dictate. Come here when you want a more accurate model, a lighter one for an older computer, or a different engine.
Manage Speech Models
Manage Speech Models… lists local speech models with their download size, accuracy and speed, and helps you pick one that will run well on your computer.
- The dialog opens with a one-line summary of your machine: its RAM, and whether a GPU was found.
- Each model shows roughly how much memory it needs. A model too big for your RAM is flagged.
- The best fit for your computer is marked “Recommended for your computer.”
- A larger model warns you when there is no GPU, because it will be slow on the CPU.
Choosing what to do. Pick a model, then choose an action: Download this model if it is not installed, or Remove this model from my computer if it is. Before a download starts, QUILL warns you if there is not enough free disk space.
Downloads run in the background and show progress. You can keep working. A progress window shows a percentage and has a Cancel button you can press at any time, and QUILL announces progress as it goes. Cancelling cleans up the partial file. Models come over a secure connection from the Hugging Face Hub and are stored on your computer. Downloading is turned off in Safe Mode.
Manage Speech Models is the Dictation (Offline) tab of the Speech Settings dialog. When more than one local engine is available, it asks which Speech Engine to use. A Set as Default button (or a right-click option) chooses which downloaded model QUILL uses without switching engines. QUILL remembers your choice and uses it for transcription, captions and dictation.
Choosing a speech engine
Choosing a speech engine. QUILL uses the whisper.cpp engine by default. You can add two more optional engines, each by installing what it depends on:
- Faster Whisper (
fasterwhisperdependency): a faster engine for many languages. It runs inside QUILL and uses your GPU automatically when you have one. - Vosk (
voskdependency): a very low-resource, CPU-only English engine that runs on a ~40 MB model with no GPU. It is ideal for older or smaller machines where the other engines are impractical. Its models download from alphacephei.com (verified HTTPS, integrity-checked) through Manage Speech Models.
Each engine has its own models, so download a model after switching. All of them run entirely on your computer. Faster Whisper does not label speakers; for speaker attribution, use the whisper.cpp speaker-detection model.
Getting the offline engine
Download Offline Speech Engine… The private, on-device speech engine (whisper.cpp) is not bundled in the installer. The first time you use offline dictation or transcription, QUILL offers to download it for you: about 8 MB, checksum-verified, with a progress bar you can cancel. It is turned off in Safe Mode. You can also fetch it any time from Tools > Speech > Download Offline Speech Engine…, or from the all-in-one Help > Download Optional Components list described below. If you are upgrading from a version that bundled the engine, your existing copy is kept and keeps working, with nothing to download.
The installer does not include it and has no option to add it. In a
portable copy you can also place the executable under
tools\speech\whispercpp yourself. You do not need to
install anything else or change your PATH. Then download a model from
Manage Speech Models.
Offline dictation also needs microphone-capture
support (the optional sounddevice package). If it is
missing, QUILL tells you, and you can still use Windows dictation.
Download Vosk… Vosk is a tiny, very light offline dictation and transcription engine for older or low-memory computers with no graphics card. It is not bundled. Tools > Speech > Download Vosk (or the Optional Components list) installs it when you ask, checksum-verified and turned off in Safe Mode, from QUILL’s own verified download, falling back to the public package index. whisper.cpp stays the default engine; Vosk is the lightweight fallback when you need it.
Hugging Face Token
Hugging Face Token… on Tools > Speech is optional. QUILL’s speech models are open source (MIT) and need no Hugging Face account to download. If you fetch a lot of models and run into Hugging Face’s rate limits, a free access token raises them.
The first time you open it, QUILL explains the steps: sign in or sign up at huggingface.co, open Settings > Access Tokens, and create a token with the Read role. It offers to open the token page in your browser, and then you paste the token in. The box hides what you type, and the token is stored in Windows Credential Manager, never in a settings file. Leave the box blank to remove a saved token.
Cloud transcription providers
The offline engines keep everything on your machine. If you also want a cloud provider, for example OpenAI Whisper for its accuracy, install the OpenAI Whisper Transcription Quillin (a bundled extension) and set up an OpenAI API key in AI Hub. It then shows up as a provider on the Dictation (Online) tab of Speech Settings. That tab is kept apart from the offline engines, so local engines (install once) and cloud ones (API key, paid per use) are never mixed in one list. If no cloud provider is installed, the tab tells you how to add one.
Cloud providers are opt-in and never silent:
- Audio is uploaded only when you choose to transcribe a file with that provider. Never offline, and never in Safe Mode.
- The watch folder’s offline transcription always uses the on-device engines, so a cloud provider can never upload your audio automatically.
- An extension that adds a provider contains no code and asks for no network permission. QUILL does the upload itself, through its own checked network path, so the extension never sees your audio or your key.
Developers can read more in the Quillin guide, “Transcription providers”.
The Transcription page in Settings
- Transcription provider preference is Local first (the default) or Cloud first, for when you have both kinds of provider.
- Show cloud transcription providers lists cloud providers beside the ones on your computer. On to begin with.
- Auto-open Status Page on model download opens the Status Page whenever a speech model starts downloading. Off to begin with.
- Status page refresh announcements is how often the Status Page speaks its updates: Quiet (the default) says nothing on its own, Normal speaks about every thirty seconds, and Verbose about every ten.
- QUILL Whisperer safe mode lock stops speech-model downloads and retries while leaving the status pages working.
- Voice commands (push-to-talk) and Voice conversation mode turn on the voice commands described in Chapter 8.
- Voice recognition engine chooses what listens for voice commands: Follow main engine, whisper.cpp (accurate) or Vosk (fast, light), which suits always-listening best.
- Four settings pace conversation mode, all in milliseconds, and 0 switches each part off: Conversation: pause before a command ends (ms) (2000 to begin with; 0 uses the engine’s own pause), Conversation: cancel window before acting (ms) (900), Conversation: keep listening after a command (ms) (3000) and Conversation: ‘still working’ tick interval (ms) (2000).
- Conversation: your name (optional) lets QUILL use your name in its prompts, as in “Listening, Sam.” Leave it blank for plain prompts.
- Conversation: speak prompts aloud speaks the welcome and follow-up prompts with your Read Aloud voice. It is off to begin with, so QUILL does not talk over your screen reader; the sounds and the status bar still tell you what is happening.
Download Optional Components (Help menu)
To keep the installer small, QUILL fetches several large or optional pieces only when you want them. Help > Download Optional Components… is the one place to see, get, test and remove them all.
Everything here is optional. The base app, and the SAPI 5 voices built into Windows, work without any of it, so download only what you need. In portable mode, components install into your portable data folder, so your whole setup travels with you on the drive.
What is in the list
The list puts the most important first:
- Pandoc: document conversion for Word, ODT, EPUB and RTF.
- PDF and Office text extraction (MarkItDown, pdfplumber and pypdf): lets Import read the text out of Word, PowerPoint, Excel and PDF documents without Pandoc or LibreOffice. Scanned or image-only PDFs still need File > Import > OCR either way.
- The braille translation pack: liblouis tables and BRF profiles for the Translation submenu and for BRF and embossing export.
- Dictation (offline speech): a guided setup covering Whisper.cpp, Faster Whisper and Vosk, described below.
- Kokoro and Piper neural voices, and eSpeak NG and DECtalk voices.
- Audio: export, playback & chapters: FFmpeg for exporting compressed audio, the mpv playback engine, and MP3 audiobook chapter markers, all in one place. Each piece is fetched only when its feature is first used.
- The MathCAT math-speech engine.
- Git and the GitHub CLI: portable fallback copies for Tools > Git and GitHub > Local Git and the Codespaces and Copilot commands on Tools > GitHub. The section “Downloading git and the GitHub CLI”, where this guide covers Git and GitHub, has more.
- The Node.js runtime, for Node Quillins and the Developer Console’s TypeScript interface. It comes last, as the extra people use least.
- Any non-English spell-check dictionaries.
Each row shows whether it is Installed or Available to download, and its size. Selecting a row shows a plain description of what it gives you and what it costs.
Download, Test, Remove and Set as Default
- Download fetches a component you do not have yet, checksum-verified, with its own progress.
- Test proves an installed component works, so you can trust it before you rely on it. A voice speaks a short sample so you actually hear it. The offline speech engine transcribes a spoken phrase and tells you what it heard. Tools report their version. If a component just needs one more piece, Test takes you straight to it: the guided engine-and-model picker for offline speech, or Manage Voices for a voice engine with no voice yet. An unfinished setup is not treated as an error, and QUILL only offers to send a bug report when a test really fails.
- Remove deletes QUILL’s downloaded copy of a component and turns its features back off. Removing a voice engine you were using, for example, switches Read Aloud back to the system voice. It only ever removes copies QUILL downloaded, never a system tool or a shared install.
- Set as Default: for a voice engine (Kokoro, Piper and the other Read Aloud engines), the Set as Default button here makes that engine, and a voice you pick from it, your Read Aloud default without opening another speech dialog. The button is only available for a component that can be a Read Aloud default, and only once it is installed. The same Set as Default is also in Manage Speech Models and Manage Voices (with a right-click option on the list), for the offline dictation model and for voices. Downloading a model or voice engine makes it the default automatically; use these when you want to switch back to one you already have. Voice previews stop cleanly when you move to another before the first one finishes.
Setting up offline dictation
The Dictation (offline speech) row opens a guided setup instead of a plain download. It takes you one step at a time, and a banner at the top always says which step you are on and the one thing to do next:
- Pick and install an engine: Whisper.cpp (light and fast), Faster Whisper (most accurate), Parakeet 3 (the most reliable for dictation, described earlier in this chapter), or Vosk (tiny, best for old or low-memory machines).
- Download a model. The best fit for your computer is already selected.
- Choose Test dictation to make sure it works, then set it as your default.
QUILL remembers the engine you chose, so the setup reopens where you left off instead of going back to the built-in engine.
Pandoc on demand
Pandoc downloads itself when you need it. You do not have to visit this dialog first. The moment you Import or Export a Word, ODT, EPUB or RTF document (or run Convert File) without Pandoc, QUILL offers to download the official, pinned build right there: about 45 MB, verified, with a progress bar. The conversion is ready as soon as it finishes. Plain text and Markdown never need Pandoc, which is why it is not bundled.
On a Mac
On macOS, several of these come from Homebrew rather than a QUILL download.
- The braille translation pack download contains a Windows
lou_translateprogram, so on macOS QUILL points you tobrew install liblouisinstead. QUILL finds a Homebrew liblouis by itself, so no download is needed. - Pandoc and Tesseract work the same way. Install them with Homebrew
(
brew install pandoc,brew install tesseract) and QUILL finds them. - LibreOffice, used to import older Office formats and Apple Pages, is
found automatically at its standard
/Applications/LibreOffice.applocation on macOS (it is never on PATH there). Install it from libreoffice.org or withbrew install --cask libreofficeif you need those imports.
Performance and Memory
QUILL is built to run all of its AI and speech features on a modest computer with no graphics card and not much memory. It does that by being careful with memory, never by switching features off. Two settings under Settings > Performance and Memory control it:
- Unload idle models after (minutes) frees the memory used by an AI, read-aloud or dictation model you have stopped using. The next time you need it, QUILL loads it again by itself. Set it to 0 to keep models loaded until you close QUILL.
- Low-resource mode (one model at a time) keeps only one model loaded at a time and prefers the smallest model that fits. It never turns off AI or speech. It loads them one at a time, so you wait a moment for a reload in exchange for using much less memory. On a machine with very little memory it turns on automatically and tells you once, out loud, so it never takes you by surprise.
You do not have to touch either of these. QUILL picks sensible defaults for your machine, but they are there if you want to tune how much memory it uses.
What you learned, and where to go next
You can now dictate with Live Dictation (Ctrl+F11),
pressing it to start and again to stop, or holding it while you talk
once you turn that on, with Locked Dictation (Ctrl+F9) or
with Dictate (Offline), and teach QUILL your own words in
dictation.md. You know that your words go where you started
speaking, how to see them while you talk with Nemotron or OpenAI, how to
say “correct that”, how to talk to the AI out loud, and what OpenAI
dictation sends and how to turn it on or off. You can spell, select,
correct and move by voice, put in snippets and Copy Tray slots, switch
between English and Spanish with Ctrl+Shift+F11, keep a
live transcript with Ctrl+Alt+Shift+PageDown, and dictate
into other programs through Quill Inkwell. You can transcribe a
recording on your own computer or with AI > Transcribe Audio
File…, turn it into minutes or notes with Transcript Actions,
and set a watch folder to do all of that for you. You also know where
speech models, optional components and the memory settings live.
To practise with QUILL beside you, open Help >
Tutorials… (Ctrl+Alt+F1) and try “Write by
talking”. The same track, “How much QUILL says”, also has five short
dictation lessons: “Punctuation and symbols by voice”, “Fix a word by
voice”, “Snippets and clips by voice”, “Switch to Spanish and back” and
“Make a live transcript”. Each takes a few minutes, with QUILL telling
you what to say. The Dictation
commands page and the Voice Interaction guide are the best
companions to this chapter.
Next, Chapter 10, AI, when you want it, shows what the assistant can do with your writing, including the AI behind Transcript Actions.
Chapter 10: AI, when you want it
This chapter is about the AI help built into QUILL, and the first thing to know is that you never have to use it. QUILL is a complete editor without it, and nothing you write is sent anywhere until you ask. If you would like a paragraph summarised, tidied or explained, QUILL’s own free AI is ready with no account and no key. If you already pay for ChatGPT, or have your own key, you can use those instead, and further on you will find the library where you can save your own prompts, skills and agents.
QUILL’s own free AI
You do not need an account, a key, or a decision about which company
sees your writing. QUILL runs its own AI service, it is free, and it is
the first thing in the AI menu (the
&AI menu, so Alt then A opens
it).
What the AI menu offers
| Key | Command | What it does |
|---|---|---|
Ctrl+Alt+G |
Free AI Assistant… | Summarise, rewrite, proofread, shorten or explain the passage you are in |
Ctrl+Alt+Z |
Ask About This Document… | Ask a question about what you are writing |
Ctrl+Alt+Shift+F2 |
Free AI Usage… | What you have used and what is left |
Ctrl+Alt+Shift+F4 |
Connect or Sign Out… | Connect this computer, or disconnect it |
Ctrl+Alt+Shift+K |
Privacy Agreement… | Read what is sent, and accept or withdraw |
Alt+F2 |
Use My Own AI Key… | Every limit lifted, billed to your OpenAI or Google Gemini account |
Alt+F5 |
Use My ChatGPT Subscription… | Every AI command on the ChatGPT plan you already pay for |
Ctrl+F5 |
Ask About an Image… | A picture described, on your ChatGPT subscription |
Ctrl+F3 |
Tidy Dictated Text… | Dictation’s misheard words and punctuation corrected, nothing else changed |
Ctrl+F10 |
Dictionary > Word Explorer… | Everything about the word you are on, as used in this sentence |
Ctrl+Alt+Shift+' |
Dictionary > Define in Context | What the word means here, and what you might be confusing it with |
Ctrl+Shift+; |
Dictionary > Synonyms That Fit | Replacements that keep the sentence’s meaning, already in the right form |
Ctrl+Alt+Shift+] |
Dictionary > Find the Word For… | The reverse dictionary: describe the meaning, get the word |
The first five are the same five commands QUILL Lite has, so anything
you learn in one editor you have learned in both. Three of the five keys
are the same as well. Usage and Connect differ: in QUILL,
Ctrl+Alt+Shift+F7 to F12 open the other
QuillVille apps, so QUILL uses F2 and F4 for
those two, while QUILL Lite, which has no apps to open, uses
Ctrl+Alt+Shift+F9 and F10.
What it works on
The free AI works on the selection. With nothing selected it takes the paragraph you are in, or else the section. It never sends the whole file.
Nothing is applied without a keystroke from you. Every answer arrives in a window with Replace and Insert buttons, and both go through the ordinary undo list. If you typed over the text while the answer was on its way, Replace is not offered, and QUILL tells you so instead of writing the answer somewhere it does not belong.
You never wait for it, either. Requests run in the background, so you can keep typing, save, switch documents or close the window while an answer is coming.
QUILLBee’s tip: Changed your mind about an AI edit? Press
Ctrl+Z. It comes back out exactly like anything else you typed.
The Free AI Assistant pad (Ctrl+Alt+G)
The pad has a list called What do you want done? with seventeen choices. Press a letter in the list to jump.
- The four basics: Summarize, Rewrite, Proofread and Explain.
- Ten writing tools: Shorten, Simplify, Make more formal, Make friendlier, Turn into a list, Find action items, Suggest headings, Continue writing, Write an email reply and Translate. When you choose Translate, a Translate into list appears with twenty languages.
- Three that need you to type: Ask a question about the document, Ask a general question, and Have a conversation.
Every one of them is a single request of the same size, so the writing tools cost no more of your allowance than Summarize.
Having a conversation
Choose Have a conversation in the pad, or press Follow Up in any answer window, and the AI Conversation window opens. Here you can talk back and forth, and each reply remembers what was said before.
- Focus is in Your message. Type, then press
Enter. - Each reply is read aloud as it arrives and added to the
Conversation above. Press
Shift+Tabto reach it. - Beside Send are Copy Last Reply, Insert Last Reply Below and New Conversation.
If you started with a question about the document, each follow-up keeps sending the same passages, so you can keep asking about them.
On the free AI each message counts as one request, and conversations have a monthly share of 40 of your 100 requests. The conversation so far goes with each message only as far as the ordinary size limit allows, so no message costs more than any other, and a long conversation slowly forgets its beginning. The window tells you the first time that happens. With your own OpenAI or Gemini key there is no such limit: the whole conversation goes, billed to your account.
There is a monthly, a daily and an hourly allowance, and a smaller one for a computer’s first 48 hours. Free AI limits, later in this chapter, has every number and every rule.
Nothing is sent until you ask
The free AI makes no request when QUILL starts, while you type, when you save, when you are idle or when focus moves. If you leave it switched on and never use it, QUILL makes no network call for it at all.
The first time you reach for it, QUILL shows you exactly what is sent
and what is kept, and nothing leaves your computer until you accept. You
can come to that same agreement three ways: AI > Privacy
Agreement… (Ctrl+Alt+Shift+K), Preferences, and
Customize Features. All three show the same answer, so they never
disagree.
If you withdraw, QUILL signs this computer out of the free AI as
well, so no sign-in is left behind for a service you have said no to.
QUILL remembers which version of the agreement you accepted (the setting
ai_privacy_accepted_version), so if what is sent ever
changes in an important way, you are asked again.
Basic and Advanced menus
The AI menu starts out Basic. It shows the five free AI commands above, the Use Artificial Intelligence switch, and Show advanced AI features. Basic is for everybody who just wants a paragraph tidied up.
The full menu has much more: provider setup, Ask Quill, the agents, Proofread, Transform, Translate, Read Aloud, Transcribe, More, the AI Library and the AI Hub. It is worth having once you have chosen which company should see your writing and have a key to paste in.
Nothing is taken away in Basic. Every advanced command keeps its keyboard shortcut and stays in the Command Palette; Basic only changes what the menu offers. Check Show advanced AI features near the bottom of the AI menu and everything comes back at once. QUILL remembers your choice.
If you already had AI set up when you updated (you had run the wizard, or saved a provider key), QUILL leaves you in Advanced, so no menu you were using disappears.
Setting up AI with the wizard
The first item in the AI menu is Set Up AI…, labelled “start here” until you have used it. It is a short wizard that gets you to working AI in a minute, in plain words.
- Welcome. A short note on what QUILL’s AI does, and that it is optional, shown to you before anything changes, and private by default.
- How would you like AI to run? Pick one:
- On your device with Ollama. Private and free. It runs on your computer with no account or key, and QUILL connects to Ollama installed there.
- Use an AI account. The most capable models. Connect Claude, OpenAI, Gemini, OpenRouter or Ollama Cloud with a key you paste once, which QUILL stores safely on this computer.
- Not right now. AI stays off, and you can set it up any time later.
- Connect. For an account, pick a provider, paste your key, and press Test connection before you go on. For on-device AI, QUILL points itself at Ollama.
- You’re all set. A short summary of what you can now do, and a Keep it simple checkbox that turns on Basic mode.
QUILL also offers the wizard when you reach for AI before it is set up, for example when you ask for minutes from a transcript, so you never hit a dead end. Run Set Up AI again whenever you want to change provider or mode.
Basic mode is the default on a new install, and it hides the whole advanced menu, not just the agents. The wizard’s Keep it simple checkbox turns it on, and Show advanced AI features turns it off.
Using AI for free
You never have to pay to use AI in QUILL. Besides QUILL’s own free AI, the Connect step of the wizard recommends two free paths and picks good settings for you.
- Most private, free. Pick Ollama (on your device). A model runs on your own computer: no account, no key, it works offline, and nothing you write leaves your machine. The quality is more modest than the big cloud models. If Ollama is not installed yet, do not install it by hand. AI > Set Up Local AI (Ollama)… does the whole job: it reports your computer’s memory, graphics card and free disk space, downloads and starts the official installer, downloads a model that suits your computer, and connects QUILL to it. Each step tells you what to do next, and it never moves on without you.
- Best quality, free. Pick OpenRouter. Choose Get API key to open OpenRouter’s key page in your browser, create a free key and paste it back. QUILL picks a strong free writing model for you (at the moment a free Llama 3.3 70B model). The model’s description says Free, so you always know a choice costs nothing.
Every provider that needs a key has a Get API key button beside the key box that opens the right sign-up page.
A few honest notes:
- Free cloud models can be slower and are rate-limited. Because the key is your own, that limit is yours alone; nobody else shares it, and it costs nobody anything.
- Free hosted models may keep or train on what you send, under their own terms. If your writing is confidential, use the private on-device option.
- What works on free models: everyday help works well, such as Rewrite, Summarize, Expand, Continue, Fix Grammar, Table of Contents, translating and proofreading. Ask Quill works too; on a small model it keeps its steps simple so it answers instead of stalling. The longest multi-step agent tasks are where a stronger paid model still does better. QUILL tells you when a task would benefit from one, but never stops you trying on a free model.
- QUILL tidies on-device answers for you. Small on-device models have a few habits. When you use Rewrite, Summarize, Expand, Continue or Shorten on the on-device model, QUILL gives the model worked examples first, then checks the answer for hedging (“it seems”, “arguably”), editorialising (“clearly”, “obviously”) and filler openings (“In today’s world”, “It is important to note”), and tries once more to remove them. Fix Grammar and Improve Reading Order are left alone, so your own wording is never changed. This happens only on the on-device model; cloud answers are left as they come.
You can change your provider or model any time from Set Up AI or the AI Hub.
AI Assistant
Beyond the free AI, QUILL has a full AI assistant. You can run it on your own computer (llama.cpp with a local GGUF model) or connect a provider: Ollama (local), Ollama Cloud, OpenAI, Claude, OpenRouter, Google Gemini, or a custom OpenAI-compatible endpoint. Every provider is optional, and you choose it yourself. Keys are kept in the Windows Credential Manager, with a DPAPI-encrypted file as a fallback, and are never written to disk as plain text. Where your keys are kept, later in this chapter, has the details.
Setting up an AI provider
Open AI > AI Hub… to set up your providers. The AI Hub is the one place for every provider’s key, model, Test Chat and key removal. If you are looking for the old AI Model and Connection or Forget API Key menu items, they are part of the AI Hub now.
- OpenRouter. Paste your key into the OpenRouter API Key field. One OpenRouter key reaches many models, including Claude, GPT-4o and Gemini.
- OpenAI. Paste your OpenAI API key.
- Ollama. No key needed. Install Ollama on your
computer (
ollama serve) and QUILL finds it by itself athttp://localhost:11434. If you run Ollama on a different port or computer, change the Ollama Base URL setting.
You can also set a Default model for prompt runs
(ai_prompt_default_model). Leave it blank and Ask AI and
the Prompt Library use the same model, or name a more capable model here
for prompt library work.
Ask Quill (Alt+Q) and Ask AI
AI > Ask Quill… (Alt+Q) opens the
assistant as a conversation. You can ask questions, draft text, suggest
edits, and run QUILL commands, and nothing changes until you approve it.
The window shows the provider and model in use, and you can switch
either one there.
When you only want a quick answer, with nothing to insert and no follow-up, use AI > Ask AI… from the Command Palette. It is a simple question and answer window.
- Provider and Model already hold the last ones you used. If they are set up, focus goes straight to the Prompt field so you can start typing. If not, focus starts on Provider so you can set it up.
- Type your question and press
Ctrl+Enter, or the Send button. QUILL says “Sending…” and the button is unavailable until the answer arrives. - The answer opens in a read-only window. Read it with the arrow keys, and use Copy to Clipboard to copy all of it. Closing the answer brings you back to Ask AI, ready for a follow-up.
Clear empties the prompt field and puts you back in it.
Check Grammar with AI
Edit > Grammar > Check Grammar with AI sends the selected text, or the whole document if nothing is selected, to your AI model and asks it to review the grammar. The answer lists each correction as the original phrase, the corrected phrase and the reason. Nothing is changed for you; you make the corrections yourself.
Out of the box, the model is told to list only the corrections needed and not to rewrite the passage. To give it different instructions, open the Prompt Library, find the built-in “Check Grammar” prompt and edit its text. The command uses your version from then on.
Free AI limits, and when they start again
QUILL’s free AI is free because everybody shares it, so it has
limits. Here is every one of them in one place. Free AI
Usage (Ctrl+Alt+Shift+F2) shows where you
stand.
Your allowance at a glance
These are the service’s current settings. QUILL reads them from the service each time, so they can change without an update, and Usage always shows the numbers that apply to you right now.
| Limit | How many | Starts again |
|---|---|---|
| Requests a month | 100 | The 1st of the month |
| Requests a day | 20 | Every night |
| Requests an hour | 8 | At the top of each hour |
| Any one kind of request a month | 60 | The 1st of the month |
| A new connection’s first 48 hours | 15 | Rises to 100 on its own |
“Any one kind” means Summarize, Rewrite, Proofread, Explain and Ask About This Document each have a monthly share of 60, so no single one can use up the whole month. The daily and hourly limits are there to stop something running away with a month’s worth in an afternoon. Ordinary work rarely comes near them.
When the counts start again
The service keeps time in UTC, not your own time zone.
- The hour starts again on the hour.
- The day starts again at midnight UTC. That is 8 PM Eastern or 5 PM Pacific in summer, an hour earlier in winter, so in North America the new day’s requests arrive in the evening.
- The month starts again at midnight UTC on the 1st. Usage shows the exact date.
What counts as a request
One request is one press of Send that comes back with an answer. Try Again is another request. A request that brings no answer is not counted: if it was too long, if there was no connection, if the service had a problem, or if you had already reached a limit, nothing is used. Opening Usage or About never uses anything.
When you reach a limit
The AI window tells you which limit you reached and
when it starts again, and focus moves to that message
so you can read it again with the arrow keys. It ends with an error
code, QUILL-AI-GATEWAY-QUOTA for a limit, which is worth
including if you write to support. Nothing is used, nothing in your
document changes, and the rest of QUILL carries on as normal. Wait until
the time it gives you, or ask for more (see Asking for more, below).
If the message says QUILL’s free AI is paused, it is not about you. The service has one spending ceiling for everybody together, and when that is reached the free AI pauses for everyone until the 1st. This is rare, and QUILL tells you when it happens.
A new connection starts smaller
For its first 48 hours, a computer that has just connected gets 15 requests, and then the full allowance starts on its own. You do not need to do anything. It stops somebody connecting over and over for a fresh allowance each time, and someone trying the free AI out rarely uses 15 on the first day. While it applies, Usage and About say so and tell you exactly when it ends. Signing out and connecting again starts a new connection, so it never gets you more.
Computers that share an internet connection
A household, a classroom or a library usually reaches the internet through one address, and a few limits apply to that address as a whole: how many computers can be connected from it at once, how many new connections it can make in an hour, and a monthly total shared by every computer on it. They are generous for a home. The exact numbers are not published, so that nobody can use them to make connections by the hundred. Signing a computer out gives its place back.
If a class or a lab runs into these limits, write to support. Helping with exactly this is part of their job.
Asking for more
Choose Get Help from Support in the Help menu, and say what you need and why: a course, a deadline, a book. When this computer is connected, its support ID goes into the message by itself, and that is all support needs to find you; there is no account name or password to give. Support can raise your monthly allowance, and can end the new-connection allowance early. The change applies from your next request. You do not need to sign out, reconnect or update, and Usage shows the new number the next time you open it.
Your support ID is also in Help > About and in Usage, with a Copy Support ID button, if you would rather write from somewhere else.
Using your own OpenAI or Google Gemini key
If you have an OpenAI account or a Google Gemini key, you can use your own key instead of QUILL’s free service, and every limit goes away: no monthly, daily or hourly allowance, no 2,250-word ceiling, and no smaller first 48 hours.
Setting up your key (Alt+F2)
AI > Use My Own AI Key… (Alt+F2)
opens one window. Its parts, in Tab order:
- Provider. OpenAI or Google
Gemini. Everything else in the window follows this choice:
where your text goes, which key, which models and whose prices. AI help
uses the key saved for the provider you choose here, never the other
one. The choice is saved with your settings
(
ai_own_key_provider), and QUILL never guesses it from a key or a model name. - About this. A read-only box that says exactly where your text goes. Arrow through it once.
- API key. Paste the key for the provider you chose.
An OpenAI key comes from platform.openai.com, under API keys, and starts
with
sk-. A Gemini key comes from Google AI Studio at aistudio.google.com/apikey. - Model. Every model your key can use for text,
filled in from your account once the key is checked. For OpenAI,
Luna 6 first, then the other GPT-6 models; for Gemini,
2.5 Flash first, then 2.5 Pro; then the rest by name.
Each row says roughly what it costs, for example “gpt-6-luna, about
$0.57 per 100 requests (estimate)”, so arrowing down the list is enough
to compare them. Your choice is saved as
ai_own_key_model. Models that cannot answer in text (speech, transcription, images, embeddings) are left out. - Cost estimate. The chosen model’s estimated cost per request and per 100 requests, at that provider’s prices. These are estimates to help you compare, not the provider’s prices. A typical request is about a page in and a paragraph back. The real prices are at openai.com/api/pricing and ai.google.dev/pricing.
- Status. Whether a key is saved for the chosen provider, what the last test said, and whether a key for the other provider is saved too.
- Test the Key. Checks the key with your provider, fills the model list, then sends one tiny request to the chosen model and tells you whether it answered. That request costs a fraction of a cent.
- Remove the Saved Key. Forgets the chosen provider’s key at once and puts AI help straight back on QUILL’s free service.
Press OK and the key is saved. QUILL says “AI help uses your own OpenAI key, with no limits”, or names your own Google Gemini key.
To change the model later, press Alt+F2. With a key
saved, the list of models is there straight away. Pick another and press
OK.
There is no separate switch to find. While a key is saved for the chosen provider, AI help uses it. Remove the key and AI help goes back to the free service, with its free allowance, at that moment.
You can save both keys. The Provider list decides which one is used. With OpenAI chosen, a saved Gemini key just waits; the Status line tells you it is there, and choosing Google Gemini puts it to work. QUILL never decides from which key exists or from a model’s name, so a request never goes to a company you did not choose.
With a Gemini key, Ask About an Image works too.
Gemini’s models can read pictures, which the free service and an OpenAI
key here cannot, so Ctrl+F5 answers on a Gemini key just as
it does on a ChatGPT subscription.
What changes with your own key
- Your text goes straight from this computer to the provider you chose, OpenAI or Google, on your account. Nothing passes through QUILL’s servers, so QUILL records nothing at all, not even the count it keeps for the free service.
- OpenAI or Google bills you for each request, under that company’s own terms and privacy policy.
- While an answer is on its way, Send becomes
Stop (
Alt+S). Stopping closes a Gemini stream immediately; for another route it discards that request’s eventual answer. It never stops a request from another AI window. - Usage (
Ctrl+Alt+Shift+F2) opens a different window. It tells you which model is answering and that no allowance applies, and its Open My Usage button takes you to the usage page of your OpenAI or Google AI Studio account, where your requests and charges are. There is no Sign Out and no support ID in it, because neither applies. Help > About also shows the model and that page’s address instead of the free allowance. - You do not need to connect this computer, and you are not asked to accept the free service’s agreement, which covers QUILL’s servers. Your own key never touches them.
- The pad, what it can do, and what comes back are the same, down to the instructions sent with your text.
- There are no limits. Nothing is refused for being too long, the answer is not cut short, and Ask a question about the document sends the whole document instead of the three passages that match best, so nothing is missed.
- You get warnings instead of limits. The About to send line tells you how many words are going and roughly what they cost with the model you chose (an estimate, not your provider’s bill), and that the answer costs extra. It also tells you when the text is more than the free service would accept, and, for something very large, that it may be more than the model can read at once. In that case the provider refuses it and charges nothing.
Where your own key is kept
In Windows’ own credential store, not a settings file. Once saved it is never shown again: the box stays empty and says a key is saved. A portable copy of QUILL keeps it in an encrypted file instead. QUILL and QUILL Lite share the key, so a key saved in either works in both, and removing it in either removes it from both.
If a request fails
You hear why, followed by the error code
QUILL-AI-OWN-KEY-FAILED, and the message names the
provider. The usual causes are a mistyped key, a model your account
cannot use, an account with no credit, or the wrong provider chosen for
the key you saved. Test the Key tells you which.
Using your ChatGPT subscription
If you already pay for ChatGPT, AI > Use My ChatGPT
Subscription… (Alt+F5) runs every free AI command
on that plan instead. There is no key to paste and no bill per
request.
- Press
Alt+F5, then press Continue with ChatGPT. - Your browser opens on OpenAI’s own sign-in page. Allow “QUILL” to use your plan.
- Come back to QUILL. You are signed in.
From then on the pad, its seventeen choices, Ask About This Document and conversations go straight from this computer to OpenAI on your plan, with no monthly allowance, no size limit, no charge per request, and nothing through QUILL’s servers.
Once you are signed in, the window offers:
- Model. Your plan’s own models, read from your account. The first is chosen for you, and whichever you arrow to is saved.
- Allow web search. Off until you check it. When it is on, the model may search the web through OpenAI to answer a question.
- Open ChatGPT Usage. Your plan’s own page, which shows its limits and what is left.
- Sign Out. Two presses. It asks OpenAI to cancel QUILL’s sign-in and forgets it here.
- Forget on This Computer. Forgets the sign-in here only.
Sign Out and Forget on This Computer are only there while you are signed in.
How the sign-in works
Each QuillVille app signs in on its own. QUILL’s sign-in is not QUILL Lite’s, QUILL Cast’s or Quill Radio’s; each appears under its own name in Apps in ChatGPT’s settings, and signing out of one leaves the others signed in. When another app is already signed in on this computer, the Status line says so, because your browser is then signed in already and Continue with ChatGPT is a single Allow instead of a password.
A ChatGPT sign-in is used ahead of a saved OpenAI key, since the plan is already paid for and a key is billed per request. It needs neither the free service’s connection nor its agreement, which covers QUILL’s servers. QUILL keeps only a refresh token, in Windows’ credential store, under QUILL’s own name. Usage opens this window when you are on a plan, and About names the account and the model.
When something goes wrong, the message carries a code and tells you
what to do next: QUILL-AI-CHATGPT-SIGNED-OUT (sign in
again), -LIMIT (you have used the plan’s allowance for
now), -UNAVAILABLE, -SIGNIN or
-FAILED.
Ask About an Image (Ctrl+F5)
This is the one AI command that works on a file. Choose a JPEG, PNG,
WebP or GIF picture, ask a question about it or none, and hear what the
model sees: a description written for a blind reader, with any text in
the picture copied out exactly. The answer opens in an Image Description
window with Insert Below and Copy, and Ctrl+Z takes an
insert back. It needs your ChatGPT subscription (or, as above, your own
Gemini key); without one it says so and opens the account window.
Tidy Dictated Text (Ctrl+F3)
This is the AI for dictation. The selection, or else the paragraph at
the cursor, goes to the model with an instruction to correct what speech
recognition got wrong (sound-alike words, names, words run together,
punctuation, capitals, fillers and false starts) and to change nothing
else. The Tidied Dictation window offers Replace My Selection, and
Ctrl+Z takes it back in one step. It runs on a ChatGPT
subscription or your own OpenAI key, and never on the free allowance.
With neither, it says so and opens the account window.
My Dictation Instructions
You can tell Tidy Dictated Text how you like your writing. Open
Dictation Settings (Alt+Shift+F6),
press More Dictation Settings… (Alt+A),
then My Dictation Instructions… (Alt+I). A
short file opens in QUILL. Write one instruction per line, in plain
words, and save it:
- Write numbers as digits.
- Use British spelling.
- QUILL is always written in capitals.
- Never change legal terms.
From then on, Tidy Dictated Text follows them. They go with the passage you tidy, and only then: never with every phrase as you talk. The AI is told that your dictated text is something to correct, never a request to answer, so “ask Sam to send the report” comes back tidied, not answered.
The Dictionary submenu
The Dictionary submenu of the AI menu is a dictionary that reads the sentence. It asks thirteen questions about the word you are on. Each sends the word and the sentence it sits in, never the rest of the document, and the answer is written to be listened to. Where it helps, you also get a list of choices, each saying why.
- Define in Context
(
Ctrl+Alt+Shift+') - Synonyms That Fit (
Ctrl+Shift+;) - Simpler Word (
Ctrl+Shift+-) - More Formal Word (
Ctrl+Shift+=) - More Vivid Word (
Ctrl+Shift+') - Opposites (
Alt+Shift+-) - Is This the Right Word?
(
Ctrl+Alt+Shift+/) - Use It in a Sentence
(
Alt+Shift+=) - Where It Comes From (
Alt+Shift+,) - How to Say It (
Alt+Shift+') - Rhymes (
Ctrl+Alt+Shift+;) - Word Explorer (
Ctrl+F10), which answers all of them at once - Find the Word For… (
Ctrl+Alt+Shift+]), the reverse dictionary
The same items are in the Dictionary for “word” submenu when
you press the Applications key on a word. The answer window opens on the
answer. Press Tab to reach the Choices,
then Enter or Use This Word replaces the
word as one undo step (Find the Word For inserts at the cursor instead).
It only does so while the word is still where it was.
Like Tidy Dictated Text, the dictionary runs only on a ChatGPT subscription or your own OpenAI key. A dictionary gets asked a hundred times a day, and that would spend a free allowance on synonyms. With neither, it says so and opens the account window. QUILL Lite has the same thirteen items on the same keys.
Where your keys are kept
Portable mode and key storage
Normally QUILL keeps AI provider keys in the Windows Credential Manager, which ties them to your Windows user account. If you run QUILL from a self-contained folder, for example on a network share or a USB drive, portable mode keeps all your keys in that folder with the rest of your QUILL data.
Turning on portable mode
The portable bundle comes with an empty data\ folder
next to quill.exe, and that folder is what tells QUILL to
run portable. There is nothing to set: just run quill.exe
from the bundle’s main folder. The Setup Wizard’s Data
location page notices the portable install and offers the
portable choice for you. To turn an installed copy into a portable one,
copy the install folder to a USB drive and make an empty
data\ folder at its top level; QUILL switches to portable
mode the next time it starts from there.
If you used to set QUILL_PORTABLE=1, you no longer need
to; QUILL ignores it now, and the data\ folder is what
counts.
Nothing is written to the computer you plug into. Extract the zip,
run quill.exe, and your settings, keymap and everything
else go straight into the data\ folder beside it. No folder
appears in %APPDATA% on that computer.
If you ran a portable QUILL before version 1.0 and your settings look
as if they have reset, they have not. Older portable copies kept them in
%APPDATA%\Quill on that computer. Copy that folder’s
contents into the bundle’s data\ folder to bring them
across.
You can still choose otherwise. Picking Windows profile in Preferences or the Setup Wizard is remembered and wins over the bundle, because a choice you make yourself always beats a default. The same goes for every QuillVille app with a portable build: Quill Radio, QUILL Cast, Quill Weather, Audio Studio, Converter, Inkwell, Beacon, Media Player and QUILL Lite.
Keys in portable mode
In portable mode, keys are kept in a file called
keys.enc in the QUILL data folder. It is encrypted with
Windows DPAPI, so it is protected by your Windows user account.
The encrypted file only opens for the Windows account that made it. Copy it to another computer or another Windows account and it cannot be read, so you will need to type your keys in again there. Portable mode gives you a self-contained folder on one computer; it does not carry your keys from one computer to another.
How QUILL protects your keys and sign-ins
Everything secret QUILL holds for you (AI provider keys, remote site
passwords, and the sign-in tokens for any online service you connect)
goes into one protected store. On Windows that is the Windows Credential
Manager, or the DPAPI-encrypted keys.enc file in portable
mode; on macOS it is the login Keychain. QUILL never writes a secret as
plain text, and never puts one in a settings file, a log, a diagnostic
bundle or its own program files.
When you sign out of a service, QUILL clears every secret that service stored, in one step, so nothing is left behind. No secret is ever part of QUILL itself, so there is nothing to dig out of the program: your keys and tokens live only in your operating system’s protected store, tied to your account. If QUILL ever adds a sign-in for another service, such as an online library, its tokens will be kept there too.
Keys from environment variables
For developers and test machines, keys can also come from environment variables, whichever storage mode is on. These always win and are never saved to disk.
| Provider | Environment variable |
|---|---|
| OpenRouter | QUILL_OPENROUTER_KEY |
| OpenAI | QUILL_OPENAI_KEY |
| Ollama Cloud | QUILL_OLLAMA_KEY |
| AI Assistant | QUILL_ASSISTANT_KEY |
The AI Library
AI > AI Library… is the one home for everything QUILL can do with AI on your writing. It has three tabs, all with the same buttons (Run, Edit, Enable/Disable, Import, Export):
- Prompts. Single instructions you run on the selection or document, such as “Rewrite warmly” or “Summarize”. New, Edit, Delete, and Promote a prompt into a Skill.
- Skills. Workflows of several steps, saved as
.sqppacks you can share. Run, Import, Export and Remove them, and Promote a Skill into an Agent. - Agents. The catalogue of agents that can use tools (Writing Companion, Reviewer, Code Doctor and more), plus any you have saved yourself. Run them through the reviewed gateway, or Validate one against the agent standard.
The three grow into one another. Promote turns a Prompt into a Skill and a Skill into an Agent, so you can start simple and add power when you need it. Anything you build is yours to Export and share, and a friend or colleague can Import it.
Build an AI Action
On the Skills tab, Build Action… opens a simple form. It is the easiest way to teach QUILL something new, and there is no syntax to learn.
- Name your action, for example “My Monday standup notes”.
- Start from a built-in example (Meeting Minutes, Action Items and the rest) or a blank page. An example fills in the instructions for you to adjust.
- Describe what you want in plain language. That is all the “programming” there is: no Markdown, no metadata, no syntax.
- Attach a reference if you like: an agenda, your house style, or an earlier example you were happy with. QUILL matches its format and wording, as in “Make minutes that look like last month’s.”
- Save. Your action becomes a real Skill in the Library, ready to Run on any document, change later, Promote to an Agent, or share.
Prompt Library
AI > Prompt Library… opens the full prompt manager.
On the left is a list of every prompt; type in the search field to filter it by name or category. On the right is the selected prompt’s instructions, and an optional input field where you can type or paste text to use instead of the selection.
To run a prompt:
- Select a prompt in the list, or type in the search field to find it.
- If you like, paste text into the input field. Left blank, QUILL uses the selection in the editor, or the whole document.
- Press Run with AI. The result opens in the AI Response window.
Built-in prompts
QUILL comes with eighteen prompts you can use straight away or as starting points:
- Editing and tone: Check Grammar, Fix Grammar, Improve Clarity, Make Concise, Active Voice, Formal Tone, Conversational Tone, Paraphrase.
- Structure: Summarize, Convert to Bullet Points, Generate FAQs, Step-by-Step Instructions.
- Writing: Continue from Here, Draft a Speech, Summary Email, Social Media Post (280 characters or fewer).
- Research: Define This Term, Find Counterarguments.
The ones in bold are the newer one-shot tools.
Built-in prompts are always there. You can change their wording or disable them, but you cannot delete them.
Managing prompts
- New Prompt. A small window: type a name, choose a
category, and write the instructions. Put
{selection}where you want QUILL to insert the text. - Edit. Change the name, category or instructions of a prompt you made. For a built-in prompt you can change its text; your version is saved and the original is kept.
- Disable/Enable. Hides or shows a prompt in the list without deleting it. Handy for built-ins you never use.
- Delete. Removes a prompt you made. Built-in prompts cannot be deleted.
Prompts from Quillins
Quillins can add prompts to the library with a
prompts.json file. The bundled
ai-writing-prompts Quillin adds 7 more: Expand This, Vary
Sentence Rhythm, Make More Vivid, Write a Title, Generate Outline,
Suggest Supporting Evidence and Plain Language. They appear in the list
and run like any other prompt, but they are not saved into your own
library file.
Sharing prompt packs
QUILL shares prompt collections as .pqp (Prompt Quill
Pack) files.
- Import .pqp. Choose a file, and every prompt in it is added. Prompts whose names are already in your library are skipped.
- Export .pqp. Saves all the prompts you have made to
a
.pqpfile you can share or keep as a backup.
A .pqp file is plain JSON that is easy to read:
{
"schema": "quill.prompt-pack/1",
"name": "My Writing Prompts",
"prompts": [
{
"name": "Make Punchy",
"text": "Rewrite this as a punchy one-liner: {selection}",
"category": "Editing"
}
]
}Skill Library
A prompt is one instruction. A skill is a series of steps, and each step can use what the step before it produced.
AI > Skill Library… opens the Skill Library.
A skill has a name, a description and a list of steps. If the skill asks for choices, such as tone, reading level or kind of output, QUILL asks you for them before it runs. Each step then sends its prompt to the AI in turn and hands the answer on to the next step.
Bundled skills
Four skills come with QUILL, in the ai-writing-skills
Quillin:
- Accessible Rewrite. Looks for plain-language problems in your text (long sentences, passive voice, jargon), then rewrites it for the reading level you choose: Grade 6, 8 or 10. The rewrite replaces the selection when you Accept.
- Research and Draft. Finds the main topic of your selection, gathers five supporting facts, then drafts a paragraph in the tone and length you choose.
- Meeting Notes to Action Items. Reads meeting notes, pulls out every action item with its owner and deadline, checks for any it missed, and writes a clean follow-up summary. The result goes to the clipboard.
- Argument Strengthener. Works out how your argument fits together, finds its weak points and the counterarguments, then writes a stronger version for the audience you choose.
Running a skill
- Open AI > Skill Library….
- Select a skill in the list.
- Press Run. If the skill needs choices, a small window appears; fill them in and press OK.
- QUILL says “Running step 1 of N…” as each step starts.
- When it finishes, the result window appears. Read it, then press Accept to put it in your document (for skills that do that), or Copy to copy it to the clipboard.
Each step waits for the whole answer before the next one starts, instead of showing it word by word. That keeps every step’s result complete and easy to read.
Writing and sharing skills
A skill is a .sqp (Skill Quill Pack) file: a plain
Markdown document with YAML front matter at the top. Open any
.sqp file in QUILL to read and edit it, and share a skill
by sharing the file. The appendix on writing skills, at the end of this
guide, walks you through it, and the full reference is section 20 of
docs/quillins.md.
To check a skill file for mistakes before you share it, run:
python -m quill.tools.sqp_validator yourskill.sqp
The rest of the AI menu
Once Show advanced AI features is checked, the AI menu holds everything QUILL’s assistant can do. Here are the parts this chapter has not covered yet.
Quick writing actions
AI > Transform Selection has the small writing chores, so they never pull you out of the editor: Rewrite Selection, Summarize Selection, Expand Selection, Continue Writing, Fix Grammar and Generate Table of Contents.
Rewrite Selection, Summarize Selection, Continue Writing and Fix Grammar work with or without a selection:
- Rewrite Selection and Fix Grammar act on your selection if you have one. Otherwise they use the paragraph at the cursor.
- Summarize Selection acts on your selection if you have one. Otherwise it summarizes the whole document.
- Continue Writing uses your selection as the lead-in if you have one. Otherwise it continues from the full document.
QUILL tells you the scope it chose before anything happens, for example “Rewrite paragraph (42 words)”, so you always know what the action will change. If there is nothing to act on, QUILL says so (“Nothing to rewrite”) and sends nothing. If AI is turned off, these actions say “AI is turned off. Enable ‘Use Artificial Intelligence’ in the AI menu.” and do nothing else.
On the on-device model, Summarize works in two passes. The first pulls the plain observations out of your text. The second writes a short summary from those observations, to a word budget, with the original out of view. This keeps a small local model much closer to what your text actually says, so it does not invent its own interpretation. Cloud providers do it in a single pass, because they do not need the help.
Rewrite & Improve Selection
AI > Rewrite & Improve Selection changes with
the kind of document you are in, so it only offers what makes sense
there. In ordinary writing it has Rewrite clearly,
Shorten, Make warmer,
Review and Check accessibility. In a
code file it offers jobs for code instead. Select the text first and
choose one. The rewritten text takes the place of your selection, and
Ctrl+Z puts the original back if you prefer it.
Run Agent
An agent is a helper with one job and the skills for it. AI > Run Agent lists every agent QUILL has: Accessibility Editor, Citation & Link Fixer, Code Doctor, Data Cleaner, GitHub Maintainer, Markdown Publisher, Math Tutor, Meeting Notes to Action Items, Plain-Language Rewriter, PRD Architect, QUILL Concierge, Release Notes Builder, Researcher, Reviewer, Summarizer and Writing Companion. Choose one and it works on your selection or your document, whichever it was made for. One that changes your selection does it in place. One that changes the whole document shows you a preview first, and nothing changes until you accept it. One that only reports opens what it found in a new document.
Agents can only use a short, safe list of editing tools, and they still need AI turned on. In Safe Mode, or with AI off, the items stay on the menu but tell you why they cannot run. The AI Library, below, is where you look at an agent more closely, or make your own.
Your writing instructions
AI > More > Writing Instructions… opens a short document of rules the assistant always follows when it writes for you: who you are writing for, the tone you like, words you never want to see. The first time, QUILL starts it for you with those three headings to fill in. It is an ordinary document, so edit it however you like and save it. The assistant reads it again every time it writes, so a change counts straight away.
Writing Assistant, Prompt Studio and Agent Center
These three older windows are no longer on the menu, because the AI
Library now does their jobs in one place. You can still reach them by
name from the Command Palette (Ctrl+Shift+P):
- Writing Assistant finds the QUILL commands that match what you type, and offers ready-made prompts for rewriting, summarizing, continuing and fixing grammar. It is also where Ask Quill Chat lives, described in the next topic.
- Prompt Studio lets you build your own reusable prompts with template variables.
- Agent Center writes a guided plan for a task. You review the plan before sending it to the Writing Assistant.
Run Python
Run Python…, a button in the Writing Assistant, runs a small piece of restricted Python against the current document text and selection, so you can transform text in ways no menu command offers. The restriction is a list of allowed imports and some limits on time and memory. It is not a security boundary. Only run Python code you trust or wrote yourself.
Connecting to an AI provider
The quickest way in is the AI Hub (AI > AI Hub…), one place that links provider checks, model lists, Prompt Studio, Agent Center and the Writing Assistant. The AI Hub topic below walks through it in full. In short:
- Open AI Hub and choose a provider:
Ollama (local),Ollama Cloud,OpenAI,Claude,OpenRouter,Google Gemini, orCustom OpenAI-compatible. - Confirm the host URL and model.
- Enter a key only if your endpoint needs one.
- Use Verify Connection to test the endpoint and your key.
- Use List Models to fetch the endpoint’s models, then type in the search box to narrow the list.
- Use Recommend Model to pick a model that suits your computer and the kind of work you do.
- Save. QUILL checks the connection on its own and updates the AI status line in the AI menu.
Most cloud providers come with their host URL already filled in, so
setup is mostly about the key. For an unusual OpenAI-compatible
endpoint, choose Custom and set the host and model yourself. With Google
Gemini, a model you pick from the list QUILL fetches works as it is.
Gemini names its models models/gemini-..., and QUILL drops
that prefix for you.
QUILL keeps any key you enter in Windows Credential Manager, with a DPAPI-encrypted file as a fallback, and speaks the result of every check in plain words.
Connection status messages
Each message tells you what to do next:
- “Authentication failed. Check your API key.” The key was rejected (HTTP 401). Enter it again.
- “Access denied. Your API key is valid but lacks permission for this model or region.” The key works but is not allowed for that model, region or billing tier (HTTP 403). Check the provider’s model access, billing or quota.
- “The AI provider is warming up. Try again in a moment.” The model is still loading. QUILL retries briefly on its own before telling you this.
- “The local AI server is not running. Start Ollama and try again.” QUILL could not reach your local endpoint.
- “Rate limited by the AI provider. Wait a moment and try again.” You sent requests too quickly.
- “Your saved API key could not be unlocked on this device. Open AI Connection and enter the key again.” This shows in the AI status line when a saved key cannot be decrypted. It can happen after you move a portable copy of QUILL to a different Windows account or computer. Open AI Connection and enter the key again.
Trust and privacy baseline
- The first time you run QUILL, it shows a trust and privacy consent acknowledgement.
- QUILL does not keep AI chat transcripts by default.
- Nothing goes to a cloud service until you choose an AI action yourself.
- API keys are stored in Windows Credential Manager when it is available, with DPAPI-encrypted storage as a fallback.
For the full policy, see the repository’s
docs/legal/PRIVACY.md and
docs/legal/RESPONSIBLE_AI_USE.md. The AI Privacy Reference
at the end of this chapter lists exactly what each AI action sends, and
where.
Ask Quill Chat setup (on-device AI)
Ask Quill Chat (AI > Ask Quill…,
Alt+Q) is a message-style assistant. You type, it answers.
It can also draft text, suggest edits and run QUILL commands for you,
but nothing changes until you approve it.
It can run entirely on your own computer:
- Windows and Linux:
llama.cpp(llama-cpp-python, with a GGUF model). - macOS on Apple Silicon, macOS 26 or later: Apple Foundation Models.
To set up the on-device model:
- Install the dependencies:
pip install -r requirements.txt - Put a
.ggufmodel in%APPDATA%\\Quill\\models\\(Windows), or set theQUILL_LLAMA_MODELenvironment variable to the model’s full path. - Open AI > Writing Assistant… and send a prompt.
You can connect another provider instead of the on-device model: Ollama on your own computer or in the cloud, or a custom endpoint.
Getting around the chat
The whole conversation is an accessible web page. Each turn is a
heading named for the speaker, so you can jump between turns with your
screen reader’s heading keys. New replies are announced as they arrive,
and the message box sits inside the page. Press Escape to
close the chat. It has been checked with NVDA, JAWS and VoiceOver.
A bar at the top always shows the active provider and model, so you know what is answering. Select Change provider or model to open the picker right there. Choose a provider and model, enter a key if one is needed, and select Save. That choice also becomes the default for your next chat.
Asking out loud and hearing the answer
Press Ctrl+F9 in Ask Quill to ask a question by voice.
Press it once to start recording and again to stop. QUILL turns your
speech into text on your own machine and sends the
text. Nothing you record leaves the computer.
AI > Voice Reply Settings… chooses how answers come back. The setting covers every reply, however you asked:
- Announce a short summary: the default. Brief, spoken by your screen reader, offline and free.
- Show as text only: nothing is spoken. Read the reply in the transcript.
- Read aloud with QUILL’s own voice: the full reply, in whichever offline voice you use for Read Aloud (Kokoro, Piper, eSpeak, DECtalk, SAPI). Offline and free.
- Read aloud with the AI voice: the full reply, in a voice from OpenAI or Google Gemini.
A few things to know about these choices:
- When a reply is spoken, you hear all of it. The length limit is only for announcements, so a spoken reply is never cut off mid-sentence. Set the limit to 0 to have the whole reply announced too.
- The length you set covers everything Ask Quill announces: answers, error messages, and the summary of an edit it suggests. Errors and edit suggestions are always announcements, whichever reply mode you pick, and follow the length you chose.
- Choosing AI voice shows the provider, model and voice. The voice list always matches the provider you picked, so you cannot pair an OpenAI provider with a Gemini voice by mistake. Preview this voice reads a sample line so you can hear it first.
- The AI voices cost money and are less private than the others. The reply text goes to OpenAI or Google to be spoken, and you are billed per character. The dialog tells you this and estimates the cost of a typical reply. QUILL never picks an AI voice for you.
- If an AI voice cannot be used, for instance because there is no API key for that provider, QUILL reads the reply in an offline voice instead and tells you why. You never lose an answer because a voice was unavailable.
QUILLBee’s tip: Every turn in Ask Quill is a heading, so your screen reader’s heading key hops from answer to answer. When you are done,
Escapecloses the chat.
Putting chat content into your document
- The Insert into document controls at the bottom put chat content straight into the editor. Choose the scope, Last response or Entire transcript, and the format, Plain text, Markdown or HTML, then select Insert. The whole transcript includes the speaker labels. The last response goes in as just its content.
- Copy Last Response copies the most recent reply to the clipboard.
What the assistant will and will not do
- It answers in the chat by default. Greetings and questions never turn into document edits.
- Anything that would change your document (insert, replace, run a
command) waits for you to choose
ApproveorDiscard. - If the model or runtime is unavailable, QUILL tells you plainly and changes nothing.
- Train Writing Style (AI > Train Writing Style…) teaches the assistant your own style, from samples or from the current document.
The AI Hub
The AI Hub (AI > AI Hub…) is the one place to set up and manage AI: providers, models, keys and testing. If you remember the old AI Model and Connection and Forget API Key menu items, they now live here.
Setting up a provider
Each provider keeps its own key and default model, so switching providers never loses another one’s settings.
- Choose a provider:
Ollama (local),Ollama Cloud,OpenAI,Claude,OpenRouter,Google Gemini, or aCustom OpenAI-compatibleendpoint. - The host, default model and that provider’s saved key fill in by themselves. Cloud hosts are already filled in, so setup is usually just a key and a model. The Model field is a dropdown you can also type in: pick a recommended model (for OpenRouter the free one comes first) or type any model id. Changing the provider refreshes the suggestions.
- Enter the API key. Only cloud providers need one. It is stored securely on this computer, separately for each provider.
- Verify Connection checks the endpoint and your key.
- List Models loads every model the account or computer offers, with a search filter. Recommend Model suggests one that suits your hardware or task.
- Test Chat sends a tiny prompt and confirms the provider and model really answer, so you know they work before you rely on them.
- Forget this provider’s key clears that one provider’s key and nothing else.
- On-device model… opens the settings for the local GGUF model used by llama.cpp.
- Select OK to save. The provider and model become active straight away, and QUILL tells you in plain words how the check went: ready, sign-in failed, timed out, or endpoint unreachable.
Ollama Cloud’s free personal-use tier, with lower limits, is available here too. Use Prompt Studio to save reusable templates and Agent Center to build guided task prompts.
Word and CSV files open in the normal plain-text editor, and AI connection and chat work with them as usual.
The tabs
The AI Hub has eight tabs:
- Provider: choose your AI provider (Ollama, OpenAI, Claude, Gemini, OpenRouter or custom), enter your API key, set the model and host URL, and test the connection. For per-provider key management, model lists and checks, use the Full Connection Settings button on this tab.
- On-Device: set up Ollama for fully local AI, with recommended models and the Ollama base URL.
- Audio Services: enter your Deepgram API key for speaker diarization, and set the default maximum number of speakers.
- Services: document conversion and OCR, including which services send anything off your computer.
- Instructions: read, change and share the built-in instructions for every AI task. See Custom Instructions below.
- Sessions: your saved AI sessions.
- Advanced: a privacy consent summary listing every action that sends data, an explanation of Safe Mode, and a Reset AI Settings button.
The Engines tab, second in the row, is covered in the AI engines topic below.
Custom Instructions
Every AI task in QUILL comes with built-in instructions that tell the AI how to behave. For example, the spell check instructions tell it to leave technical terms alone and not to flag British spellings. Each set is plain text, sent ahead of every AI request for that task. The Instructions tab in the AI Hub lets you read them, add to them, replace them, or turn them off.
To change a task’s instructions:
- Open AI > AI Hub… and go to the Instructions tab.
- Select a task from the list on the left, for example “AI Spell Check”.
- The built-in default appears in the lower panel for reference.
- Type your own instructions in the editor above it. Leave the editor
empty to use the built-in default. Tasks you have changed show a
*in the list. - Use Copy Default to Editor to start from the built-in text and change it, instead of writing from scratch.
- Use Reset to Default to throw away your changes and go back to the built-in text.
- Clear Enable custom instructions for this task to send no instructions at all for that task. The AI then gets only the base prompt.
- Select OK to save. Changes take effect at once.
What each task gets by default
| Task | Default instruction focus |
|---|---|
| Ask Quill / Chat | Calm, direct expert partner; insert-only text returns without preamble |
| AI Spell Check | Copy editor: genuine errors only, preserve technical terms and consistent spellings |
| Grammar and Style | Professional editor: actionable issues, preserve author voice |
| Rewrite | Improve clarity without erasing author voice; no added content |
| Summarize | One-fifth length, same register, core argument only |
| Expand | Develop into richer prose, match tone exactly |
| Table of Contents | Explicit headings only, Markdown hierarchy, no invented structure |
| Translate | Natural expression over literal fidelity, preserve formatting |
| AI Thesaurus | Contextual synonyms ranked by interchangeability, register noted |
| Document Q&A | Grounded answers only; “not in document” stated explicitly |
| Research Agent | Key points, assumptions, gaps, and suggested next actions |
| Accessibility Tune-Up | Plain language, short sentences, descriptive text suggestions |
The Summarize default is what cloud providers get: one pass, aiming at about one-fifth of the original length. On the on-device model, Summarize runs its two passes instead, and the second writes to a fixed word budget of about 150 words, not a fraction of the original, which stops a small local model padding or inventing. Your own instructions still shape how that final summary reads.
Sharing instructions
Your custom instructions are saved in
<AppData>/Quill/ai_custom_instructions.json. You can
copy that file to another computer, or share single task prompts with
other QUILL users.
How custom instructions reduce cost
QUILL sends your instructions as a separate system message, apart from the document text. That lets your AI provider cache the unchanging part of the request, so you are not billed in full for sending the same instructions every time:
- Anthropic Claude: QUILL marks the system message
with
cache_control: ephemeraland sends the required beta header. Claude keeps it cached for five minutes, and each cache hit costs about 10% of the normal input price. If you run several AI tasks in one sitting, the instructions usually come from the cache on every call after the first. - OpenAI (GPT-4o and later): caching is automatic. OpenAI caches prompt beginnings longer than 1024 tokens and reuses them within a session at about 50% of the normal input price. Because the system message is always the same, it qualifies whenever it reaches that size.
- Ollama and other local models: the model server handles caching itself. There is nothing to set up, and the system message is sent once per connection.
- Gemini: instructions go in Gemini’s own
systemInstructionfield. Whether they are cached depends on Google’s current context-caching policy.
You do not have to set anything. As long as at least one custom instruction is on, or the built-in defaults are in use, QUILL uses caching with every provider that supports it.
AI engines
QUILL’s agent is the step-by-step help behind Ask Quill and the AI Library agents, where you review every change. It can run on more than one engine. The built-in Native engine always works, with whichever provider you connected above. Two other kinds are for people who already pay for something:
- GitHub Copilot: if you already pay for GitHub Copilot, you can use that subscription directly. A short spoken device code signs you in, no API key needed, and it runs on your plan’s models.
- Claude Agent and OpenAI Agents: these connect with the Anthropic or OpenAI API key you already have. They do not use a ChatGPT or Claude chat subscription, because those plans do not include API access.
To choose an engine, open AI Hub > Engines, the Engines tab of the AI Hub:
- Pick GitHub Copilot, OpenAI Agents or Claude Agent, or leave it on Native.
- Select Set Up / Install…. The first time, QUILL installs the small connector it needs. For Copilot it then signs you in to GitHub, with a short spoken device code in your browser when it can, or through the Copilot/GitHub CLI sign-in otherwise. OpenAI Agents and Claude Agent use your own API key instead of a sign-in, so once the connector is installed, Set Up opens a small dialog where you paste, save or remove that key. It also tells you whether a key is already saved. The change applies at once, with no restart.
- Select Set as Active Engine. From then on, Ask Quill and the agents run on that engine, and a status line names it.
The AI Setup Wizard offers this too. Choose “Use an AI agent you already pay for” and it takes you straight to the Engines tab when it finishes.
To change engines without opening the hub, run Switch AI
Engine from the Command Palette (Ctrl+Shift+P).
Each time you run it, QUILL moves on to the next engine and tells you
which one is now active. It has no key to begin with; give it one in the
Keyboard Manager if you switch often.
Whichever engine you pick, your document is just as safe. QUILL makes every edit itself: the engine only suggests, and each change arrives as an accessible accept or reject preview that undoes in one step. The vendor agents run in a text-only mode with their own file-editing and shell tools switched off, so only QUILL can touch your document, and only with your approval. All of this is optional, off until you turn it on, and disabled in Safe Mode.
A note for administrators who package QUILL: the in-app spoken device
code for Copilot needs the build to provide a GitHub OAuth App client id
through QUILL_GITHUB_CLIENT_ID. Without it, Copilot still
works through the Copilot/GitHub CLI sign-in.
The AI and Assistant page in Settings
Providers, models and keys live in the AI Hub. This page holds the switches and the everyday choices:
- Use Artificial Intelligence is the same master switch as the one on the AI menu.
- Open AI Hub… takes you to the AI Hub, where you set up providers, models and keys.
- Allow external engines is off to begin with. It lets QUILL run a helper program you trust, on your own computer, for a feature that needs one. You only need it when a Quillin’s instructions ask for it. External engine name and External engine command say which program it is and how to start it, and Enable this external engine turns that one on. QUILL only accepts Node, Python or its own engine program here, and nothing starts until both switches are on.
- Voice question reply decides what happens when you ask Ask Quill a question by voice: a short spoken summary (the default), text only, QUILL’s own voice, or the AI voice, which is billed by your provider. Announcement length limit says how many characters that summary may run to; 0 speaks the whole reply.
- Enable writing assistant and Assistant prompt style turn on the writing assistant and choose its tone: balanced, concise, gentle or technical.
- Ask AI default provider and Ask AI default model are what Ask AI starts on. AI prompt default model is the model for prompts from the prompt library. Leave a model blank to take the first one offered.
- Ollama base URL is where your Ollama server is, if it is not on this computer.
- Default image description style and Show style picker before image description decide how Describe Image words its answer. The styles you add or hide yourself are kept under More Preferences > AI Connection, on the Image Prompt Styles… button.
Every setting on the page answers F1, and Find a setting at the top of Settings finds any of them, on any page, even one you have not opened yet.
AI Language Tools
These commands in the AI menu do language work on your document: put scrambled text back in order, check spelling and grammar, translate, and find the right word.
Improve Reading Order (AI)
Some documents arrive with their text in the wrong order: a two-column PDF that comes out as one jumbled stream, a page with sidebars or text boxes, or lines out of sequence. AI > More > Improve Reading Order… (also in the command palette) sends the current document’s text to your AI provider and asks it to put the text back in natural reading order. It merges columns into one flow, joins lines broken mid-sentence, and works out headings, lists and tables. It keeps your exact wording, and never summarizes, adds or removes anything.
- It always asks first. Before anything is sent, QUILL names the provider, its host, and the document’s approximate size in pages. Choose No and nothing is sent.
- Your document is never changed. The improved
version opens as a new, unsaved document. Pressing
Ctrl+Sthere offers Save As, so you decide whether and where to keep it. Your original stays exactly as it was. - Limits. It will not take a document longer than the
page limit (Settings >
reading_order_max_pages, default 40), so a huge, slow or costly request cannot happen by accident. It is unavailable in Safe Mode. - It uses your own AI provider. It is not tied to any one service. It uses whichever AI you set up in AI > Set Up AI: OpenAI, Claude, Google Gemini, OpenRouter, Ollama (local), Ollama Cloud, or any custom OpenAI-compatible endpoint. You bring the account and key. QUILL bundles none and adds nothing to your bill.
- It can stay on your computer. If you have not set up a cloud provider, QUILL uses its bundled, on-device model: Apple’s on-device model on a supported Mac, otherwise a local model that runs on your processor. Then the whole repair happens on your computer with nothing uploaded. The confirmation always names the exact provider and host before anything is sent, and if AI is not set up at all, QUILL offers the setup wizard instead of failing quietly.
For a scanned PDF, which is only pictures of pages with no text, use File > Import > Import / Convert Document (OCR) instead. That reads the page images and can structure the result. Improve Reading Order is for a document that already has text, just in the wrong order.
AI Spell Check
QUILL can send your document to your AI provider for a spelling check. An AI connection must be set up and turned on, and no text is sent until you choose the command.
- AI Spell Check (AI > AI Spell Check…) sends your document and returns a list of corrections. A review dialog lets you accept, skip or override each one before anything changes.
- AI Spell Check Interactive (AI > AI Spell Check Interactive…) works paragraph by paragraph. While you review one paragraph, QUILL fetches the next one’s corrections in the background, so the dialog stays quick on long documents.
AI Grammar and Style Check
AI > AI Grammar and Style Check… checks the document for grammar, punctuation, clarity, style and word choice. It has no key by default; you can give it one in the Keymap Editor. Issues appear in a list grouped by category, and you can:
- Show just one category (Grammar, Punctuation, Clarity, Style, Word Choice).
- Accept or skip single issues.
- Accept or skip a whole category at once.
- Accept all the issues that are left.
- Press Apply and Close to apply the fixes you accepted as one undo step.
Translate Selection and Translate Document
AI > Translate Selection… and AI > Translate Document… translate your text into a language you choose in the dialog. Translate Selection has no key by default; you can give it one in the Keymap Editor.
You can choose between two providers:
AI Assistant (the default) uses your cloud or local AI. It works with any provider that can follow instructions: OpenAI, Claude, Gemini, Ollama and compatible endpoints.
LibreTranslate is a free, open-source translation engine that can run entirely on your own computer, with no internet connection once it is installed. This is the most private choice: your text never leaves your machine. To install it:
pip install libretranslate libretranslateThen enter
http://localhost:5000as the URL in the translation dialog.
When the translation is ready, you choose what to do with it:
- Copy to Clipboard copies it without changing your document.
- Replace Original puts it in place of the selection or the document.
- Open as New Document opens it in a new, unsaved document tab.
AI Thesaurus
AI > AI Thesaurus… finds synonyms for a word using your AI provider. A printed thesaurus lists every sense of a word; this one reads the sentence the word is in and gives you synonyms that fit what you meant. It has no key by default; you can give it one in the Keymap Editor.
- Put the cursor on a word, or select it.
- Choose AI > AI Thesaurus….
- The dialog opens with the word filled in and synonyms loading.
- Arrow through the list. Each item gives the synonym and a short note on how it is used.
- Press
Enteror select Replace Word to put it in your document. - To look up another word without closing, type it in the search box.
Only the word (up to 80 characters) and the sentence around it (up to 400 characters) are sent. The full document is never sent for a thesaurus lookup.
Read Aloud with AI Voice
AI > Read Selection Aloud (AI Voice) and AI > Read Document Aloud (AI Voice) use a cloud speech service to read your text in a natural, expressive voice. They sit alongside the on-device Read Aloud, which uses local voices such as SAPI 5, Piper, Kokoro, eSpeak and DECtalk.
Choose the provider, model and voice under Settings > Read Aloud:
- OpenAI: 11 voices (Alloy, Ash, Ballad, Coral, Echo,
Fable, Nova, Onyx, Sage, Shimmer, Verse), with
tts-1(fast) ortts-1-hd(higher quality). - Google Gemini: 30 voices (Kore, Puck, Aoede, Fenrir, Zephyr and more), with Gemini 2.5 Flash (fast) or Pro (higher quality).
- ElevenLabs (export only): premium, audiobook-grade
narration, with Multilingual v2 (high quality) or Turbo v2.5 (fast).
ElevenLabs is for audio export, not live reading. It
needs the optional
elevenlabspackage (pip install quill[elevenlabs]) and an ElevenLabs API key credential, the same key the ElevenLabs transcription provider uses.
Add the API key for your chosen provider in the AI Hub. ElevenLabs uses your stored “ElevenLabs API key” credential.
- AI > Stop AI Reading stops the current reading.
- AI > Export Document as Audio… saves the whole document as an audio file you choose: MP3 for OpenAI and ElevenLabs, WAV for Gemini. The status bar shows an estimated cost before the export starts. If you pick ElevenLabs for live reading, QUILL reminds you it is for export only for now.
Long documents are split only between sentences, never in the middle of a word, so the audio never stops at an awkward spot. Gemini exports add a short pause at the end so the last sentence is not clipped.
Your text goes to the provider you chose (api.openai.com
or generativelanguage.googleapis.com) in chunks split at
sentences. QUILL stores no audio. The AI Privacy Reference below lists
the ways to opt out.
Document Q&A
AI > Document Q&A… opens a window where you ask questions about your current document, or about a PDF or text file you choose. It stays open while you work, so you can switch back to your document or any other window and return.
- Ask follow-up questions. The window keeps a history of your questions and the answers.
- The AI answers only from the document’s text.
- Each answer includes an excerpt showing where in the document it came from.
- Copy or Insert puts the answer text at the cursor.
- For a document longer than 80 000 characters, only the first 80 000 are used, and the window tells you exactly how much (“the answer used the first 80,000 of its 120,000 characters”), out loud as well as on screen. Status changes and errors in this window are spoken too.
To ask about a PDF, select Browse File and choose the file. QUILL pulls the text out on your computer; no internet connection is needed for that.
Reviewing what the AI suggests
Reviewing AI changes word by word
Whenever an AI feature wants to change your document, QUILL opens the Review AI Changes dialog and edits nothing directly. It is a checklist of changes you accept or reject one at a time, and whatever you accept is applied as a single undo step. Nothing touches the document until you say so.
Each change tells you exactly what it is, with the sentence around it, so you do not have to hear a whole line twice and listen for the difference. For example: “Changed ‘quick’ to ‘rapid’ at line 3.” The details pane adds Sentence before and Sentence after, so you can judge a one-word edit in context, and the full old and new lines are still there below for a complete review.
When a change really is a rewrite, with many scattered edits or whole passages replaced, QUILL shows it as old and new lines instead, because forty word pairs in a row are harder to follow than two whole lines. Changes to spacing alone are also shown as lines, never spoken as word edits.
Suggest Document Metadata
Suggest Document Metadata… (in the command palette, and you can give it a key in the Keymap Editor) asks your AI to suggest front matter for the current document: a title, a one- or two-sentence summary, a few topic tags and a category. The suggestions open in a review dialog, one field at a time. You hear the field name, what it holds now, and the suggested value, then choose Accept, Accept and Next, Skip or Copy Value.
Two safeguards protect what you already have. If a field already holds something, QUILL asks before replacing it, and the default answer is No. And nothing touches your document while you review: only Apply Accepted writes the fields you approved into the document’s front matter, as one undo step. Close without applying and the document is exactly as it was.
Agentic Document Tasks
The AI menu has quick tasks that do one job on your document or selection and show you the result:
| Command | What it does |
|---|---|
| AI > Transform Selection > Rewrite Selection | Rewrites the selected text for clarity. |
| AI > Transform Selection > Summarize Selection | Produces a concise summary. |
| AI > Transform Selection > Expand Selection | Develops a brief outline or passage into fuller prose. |
| AI > Transform Selection > Generate Table of Contents | Reads the document and returns a table of contents as a Markdown list, with levels. |
All four open an Agent Result dialog, where you can:
- Read the result, with a step log if a second, refining pass was run.
- Insert at Cursor: put the result in without replacing anything.
- Replace Selection: put the result in place of the current selection.
- Copy: copy the result to the clipboard.
- Re-Run: run the same task again, if the first result was not right.
AI Privacy Reference
Every AI action in QUILL happens only when you ask for it. Nothing runs in the background. This table shows what each action sends, and where:
| Action | Data sent | Service | Opt-out |
|---|---|---|---|
| AI Spell Check | Document text (chunked at about 60 000 chars) | Your configured AI provider | Do not invoke the action |
| AI Grammar Check | Document text (chunked at about 40 000 chars) | Your configured AI provider | Do not invoke the action |
| Translate (AI provider) | Selected text or full document | Your configured AI provider | Use LibreTranslate instead |
| Translate (LibreTranslate) | Selected text or full document | Your LibreTranslate server (default: localhost) | Not needed |
| AI Thesaurus | Word being looked up + one sentence of context (no full document) | Your configured AI provider | Do not invoke the action |
| Rewrite / Summarize / Expand / TOC | Selected text or full document | Your configured AI provider | Do not invoke the action |
| Document Q&A | Document text (up to 80 000 chars) + question | Your configured AI provider | Do not invoke the action |
| Read Aloud (AI Voice) | Selected text or document (split on sentence boundaries) | OpenAI (api.openai.com), Google Gemini
(generativelanguage.googleapis.com), or ElevenLabs
(api.elevenlabs.io, audio export only), per your Settings
> Read Aloud choice |
Use a local voice (SAPI 5, Piper, Kokoro, eSpeak, DECtalk) |
| Transcribe Audio | Audio file bytes (up to 25 MB) | OpenAI Whisper (api.openai.com) |
Transcribe locally with a Quillin extension |
| Speaker Diarization | Audio file bytes (up to 2 GB) | Deepgram (api.deepgram.com) |
Disable diarization in the transcription dialog |
What QUILL never does
- QUILL never sends data in the background. Every AI call comes from something you chose to do.
- QUILL does not log your document content, API keys or AI responses to any Anthropic or QUILL telemetry endpoint. QUILL has no telemetry.
- API keys stay on your computer (Windows Credential Manager, with DPAPI as a fallback). They are never sent to a QUILL server.
- The crash reporter (Help > Save Diagnostics) removes API keys, file paths and anything that looks like a secret before it writes the diagnostic bundle.
Keeping everything on your computer
If you would rather your text never left your machine:
- Use Ollama (local) as your AI provider. Spell check, grammar and translation requests then go only to Ollama on your own computer.
- Use LibreTranslate, installed locally, for translation.
- Use Piper or Kokoro for Read Aloud. These are local voices.
- Avoid the Transcribe and Diarize actions, which need cloud services.
What you learned, and where to go next
You learned that AI in QUILL is optional and only acts when you ask. You can use the free AI or your own key, sign in with a ChatGPT subscription, and set it all up with the wizard and the AI Hub. You met Ask AI, the prompt and skill libraries, the quick writing actions, Ask Quill Chat, and the AI engines. You saw the language tools (reading order, spelling, grammar, translation and the AI thesaurus), AI voices, Document Q&A, and how every change waits for your review. And you know exactly what each action sends.
To practise, open Help > Tutorials…
(Ctrl+Alt+F1) and try the track “The assistant, if you want
one”: “Set up the assistant, or do not”, “Ask, and run a prompt” and
“The assistant on one piece of text”.
Next, Chapter 11, Accessibility, speech and braille, shows how to tune what you hear and feel while you work.
Chapter 11: Accessibility, speech and braille
This chapter is about how QUILL talks to you, how it looks, and how it works with your braille display. You will learn how to ask QUILL what it knows, how to make it chattier or quieter, how to make the text the size you need, and what its sounds mean. Braille readers and transcribers will find braille files covered page by page, and anyone preparing documents for other people will find GLOW, the accessibility checker built into QUILL.
Asking QUILL what it knows
Your screen reader tells you what is under the cursor. What it cannot tell you is what QUILL just did on its own, or what kind of document you have landed in. Only QUILL knows those things, so QUILL has commands that say them. You will find these in the View menu.
What Is This Document? (Alt+Shift+F1)
Press Alt+Shift+F1 to hear the shape of the document,
not its file name (the title bar already has that). QUILL tells you how
long it is, how many headings and list items it has, and whether it is
read-only. Think of it as a quick glance at the page before you start
reading.
An empty document says it is empty. That matters, because an empty document and one that failed to load sound exactly the same, and you need to know whether to start typing.
What Changed? (Alt+Shift+F2)
Press Alt+Shift+F2 to hear what the last command did to
the text. Sort Lines, Remove Duplicate Lines, Change Case and thirty
other commands rewrite the document while your screen reader says
nothing. This tells you what happened without reading the whole thing
again.
Undo and Say What Changed (Alt+Shift+F3)
Press Alt+Shift+F3 to undo and then hear what was taken
back, or hear that there was nothing left to undo. An ordinary
Ctrl+Z is silent in both cases, so you cannot tell them
apart by listening.
Repeat Last Announcement
Speech is gone the moment it finishes. Repeat Last
Announcement says the last thing again. It has no key out of
the box; run it from the Command Palette (Ctrl+Shift+P) or
give it a key of your own.
Speak Status Bar
Speak Status Bar reads out the latest message on the status bar, which is handy when QUILL wrote something there without saying it. Like Repeat Last Announcement, it is in the Command Palette and has no key until you give it one.
QUILLBee’s tip: Missed more than one line? Press
Alt+Shift+Eto open the Spoken Echo and read the last twenty announcements at your own pace.
Verbosity and Announcements
You decide how much QUILL says, and when. It can be as quiet or as
talkative as you like. Open Verbosity Preferences from
the Command Palette: press Ctrl+Shift+P and type
“verbosity”. You can also give it a key of your own in the Keyboard
Manager.
QUILL speaks alongside your screen reader. It does not replace it, so it never repeats your typing echo or punctuation, which your screen reader already looks after.
Profiles
A profile sets how talkative QUILL is overall. Pick one of four:
- Beginner gives full context for every action.
- Normal is informative, and it is the default.
- Expert leaves out routine confirmations. Errors are always spoken.
- Quiet turns off speech and earcons, leaving braille and the on-screen status bar.
QUILL tells you when you switch profiles.
Channels
Choose which channels carry announcements: Speech, Braille and Sound. Visual (the status bar) is always on and cannot be turned off, so the on-screen status of an action is never lost.
Quiet Mode and Meeting Mode
Quiet Mode silences speech and earcons, which is
handy in a meeting or a shared room. Meeting Mode
quiets sound further. A [Q] or [M] indicator
shows when one is on, and the status bar keeps updating either way.
Undo Verbosity Change steps back your last verbosity
change.
Each has a key that starts with the QUILL key:
Ctrl+Shift+Grave then Shift+Q for Quiet Mode,
Ctrl+Shift+Grave then Shift+M for Meeting
Mode, and Ctrl+Shift+Grave then Shift+Z for
Undo Verbosity Change. You can also run them from the Command Palette,
or set your own keys in the Keymap Editor.
Fewer repeats, no floods
Two settings under Settings > Accessibility and Announcements keep speech from piling up.
- Collapse repeated announcements (on by default) stops QUILL saying the exact same thing again when it repeats within a moment, for example when you hold a key at the top or bottom of a list.
- Announcement budget (per 5 seconds) caps how many announcements are spoken in a burst. 0 means no cap.
Both affect only what is spoken. The status bar still shows every update, so nothing is hidden.
Trimming specific cues
Two more toggles under Settings > Accessibility and Announcements shape what QUILL says.
- Announce entering and leaving dialogs (off by default) speaks “Entered” and “Exited name dialog” as dialog boxes open and close. It is off because your screen reader already announces dialogs and reads their titles. Turn it on if you like the extra cue.
- Announce indentation depth on Tab (on by default) makes Tab and Shift+Tab speak the new depth, such as “4 spaces” or “1 tab”, instead of “Indented lines”.
Both affect only speech. The status bar still updates.
The Spoken Echo (Alt+Shift+E)
Speech flies past. An indent depth, a formatting description, a save result or a “no matches” is gone the instant it is spoken. The Spoken Echo remembers the last twenty things QUILL said and shows them, newest first, in a read-only window. You can arrow through it line by line, review it by character, select text and copy it.
Open it any time with Alt+Shift+E, or from Help
> Show Spoken Echo. It works after any announcement, even
one from an ordinary editing key such as Tab. So you can hear “8
spaces”, then open the Echo to read and copy it. The Echo only records
what QUILL speaks, never your typing. If you would rather QUILL kept no
record at all, turn off Settings > Accessibility and
Announcements > Keep an announcement history: the list is
cleared, nothing new is added, and the Echo tells you the history is
off.
If you are used to pressing a screen reader’s reporting command
twice, you can do the same here. Double-press an informational command
(Describe Formatting, Document Summary, Context Help or Announce
Contrast) and the Echo opens, instead of the same line being spoken
again. Alt+Shift+E always works. The double-press can be
turned off under Settings > Accessibility and Announcements
> Double-press to show the Spoken Echo (on by default).
Per-action templates
If you want to go further, you can edit exactly what each action
says. Use tokens like {line} and filters like
${ordinal:line}, with live checking and a preview as you
type. Save your templates to a library, share them as
.quill-verbosity-profile.json files, or install a QUILL
Verbosity Pack (.qvp.json). These are all data files, never
code.
Preview Lab and History
The Preview Lab lets you hear how a profile sounds against sample situations before you commit to it. History lets you review, replay and copy recent announcements, and ask “why did QUILL say that?” about any of them.
Safe Mode
If a custom setup ever misbehaves, Safe Mode brings back the built-in announcements without deleting your customizations.
QUILL’s own voice
When you run a screen reader, QUILL speaks through it. QUILL also has its own built-in voice (Windows SAPI 5), used only for people who do not run a screen reader. If that voice ever fails to start while your screen reader is doing the talking, QUILL does not interrupt you about it; it just makes a quiet note. If you do want QUILL’s own voice and it did not start, choose Tools > Retry TTS Engine.
What QUILL says when it starts
At startup QUILL speaks only one line, QUILL Ready.
Other startup messages, such as the Document Guardian activation cue and
the screen reader it detected, go to the status bar, so you can still
see them, while your screen reader stays quiet. Two settings under
Settings > Accessibility and Announcements control
startup speech:
- Speech channel (verbosity) is the master switch.
When it is off, every spoken announcement from built-in startup events
and Quillin extensions is silenced, and the status bar keeps the same
text. It is on by default so a new user hears
QUILL Ready. Turn it off for a completely quiet start. - Speak screen-reader detection result at startup
speaks the line
Detected screen reader: <name>. Adaptive hints enabled.once the check finishes, but only when the speech channel is also on. The status bar always shows the result.
Document Guardian has its own switch for its start and stop cue. Open
More Preferences > Document Guardian > Lifecycle
Announcements and turn on Speak activation and
deactivation cues to hear
Document Guardian is now active. when it starts and
is now inactive. when it stops. It is off by default, and
the status bar still records every time it is turned on or off.
More on the Accessibility and Announcements page
The rest of the Accessibility and Announcements page in Settings:
- Announcement verbosity is how chatty spoken status messages are overall: Minimal, Normal (the default) or Verbose.
- Announce search and navigation wrap says so when a search or a move goes past the end and starts again at the other end.
- Announce word and character counts speaks a count when you ask for one. Turned off, the count still goes to the status bar.
- Announce mode entry and expiry says when a mode such as Quick Nav or the QUILL key starts or runs out.
- Announce spelling results speaks spelling feedback such as how many misspellings were found.
- Spoken punctuation level is how much punctuation those announcements include: None, Some (the default), Most or All.
- Announcement throttle (milliseconds) is the shortest gap between two spoken announcements, up to two seconds. The default, 0, means no gap.
- Record announcement trace keeps a log of QUILL’s announcements for support. It never records your document. Off to begin with.
- Speak startup readiness and theme contrast announcements speaks the “Ready” tip after QUILL starts and the contrast ratio after you change theme. Off to begin with; both still appear on the status bar.
- Say what list the cursor is in is the list announcement described in Chapter 6. On to begin with.
- Enable sound notifications plays the short sounds for editing events such as an abbreviation expanding, a save or a search. On to begin with.
- Sound pack path picks a sound pack with Choose Sound Pack…. Leave it blank for the Ink pack that comes with QUILL.
- Sound notification volume runs from 0, silent, to 100. The default is 80.
- Silenced sound events is the list of sounds you have turned off. The Sound Scheme window, in Chapter 7, is the easy way to change it.
- When a command does something, give me is how a copy, a paste, an undo or a started selection reports back: Play a sound (the default), Speak the action, Both a sound and speech or Neither. Speaking the action is a good choice while you are still learning the sounds.
- When a search finds nothing, give me offers the
same four answers, just for a search that finds nothing. It is separate
because
F3is pressed again and again, and hearing “Not found” every time wears thin. The status bar says it whichever you pick. - Announce “Generating preview, please wait” for slow voice previews is the heads-up described under Choosing a voice, in Chapter 8. On to begin with.
- GitHub check: how often (minutes), GitHub check: play a sound on each check and GitHub check: let results interrupt speech decide how often QUILL looks for GitHub notifications (every 15 minutes to begin with), and whether you hear each check and its results straight away. Weather check and Podcast check settings on the same page work the same way for weather alerts and podcast feeds, and Check podcast feeds in the background turns podcast checking on. It is off to begin with.
Appearance
QUILL is built so that people with low vision can see it as well as hear it. You can make the text larger, choose the typeface, check contrast and switch themes.
Contrast and theme
You can check contrast, switch to dark mode, or follow the colours Windows uses. If you need a low-vision setup you can rely on, choose the one that works for your eyes and QUILL will keep to it. The Validate Contrast… command on the Tools > Accessibility submenu (see Accessibility) checks the current colours for you.
For a quick answer, press the QUILL key and then Shift+C
(Announce Contrast Ratio). QUILL works out the contrast
between the editor’s text and its background and gives it a grade, for
example “Contrast ratio: 15.3:1, WCAG grade: AAA (excellent)”. QUILL
always says it out loud, because you asked, and puts it on the status
bar too. (Speak startup readiness and theme contrast
announcements only covers what QUILL says on its own after it
starts or after a theme change.)
The size and face of the text
Three keys change the size of the text, and they are the ones you already know from Notepad, your web browser and QUILL Lite.
| Key | What it does |
|---|---|
Ctrl+= |
Increase Text Size, one point |
Ctrl+- |
Decrease Text Size, one point |
Ctrl+0 |
Reset Text Size to the default (12 point) |
Each time you press one, QUILL says the new size, such as “14 point”, so you always know where you landed. The size runs from 6 to 72 points and is saved, so tomorrow the editor opens the way you left it today.
To choose the typeface and size together, use Format >
Font… (Ctrl+Alt+F). It opens the standard Windows
font window, which every Windows screen reader already reads well.
Your choice of typeface is about how you read, not about the file. Choosing Consolas at 18 point changes what is on your screen and nothing in the document. The typeface is never saved into the file, just as dark mode is not. A colleague who opens the same file sees their own font, and you see yours.
The size applies to every open tab, not only the one in front of you. It also stays put when you change theme.
Rich text documents work a little differently
In a Word or RTF document, the point sizes are part of the heading
structure. A Heading 1 is large because it is a Heading 1. If
Ctrl+= made every bit of text bigger, your headings and
body text would end up the same size, and heading navigation and the
headings list, which rely on those sizes, would stop working well.
So in a rich text document the same three keys zoom the view instead.
The text on screen grows or shrinks by the same amount, the document
itself is not touched, and the headings keep their sizes.
Ctrl+0 takes you back to 100 percent. You do not need to
know which kind of document you are in: the keys are the same, and you
get what you asked for.
To change the face and size of text you have selected in a rich text
document, use Format > Font for Selection…
(Ctrl+Shift+F). That one is a real edit to the file. In a
plain or Markdown document it declines and tells you where to go
instead. Ctrl+Shift+F is Word’s key for Font. If you used
it for Search in Files in the past, Search in Files is now on
Ctrl+Alt+Shift+F.
The text settings, if you would rather type them
Both are on the Editing page of Settings, as Editor font and Editor text size (points); or type “font” in Find a setting.
- Editor font (
font_name) is the typeface. Leave it empty to use whatever Windows picks, which is right if you have never chosen one. - Editor text size (points) (
font_size) runs from 6 to 72, default 12. If a value in your settings file is outside that range, QUILL uses the nearest size it allows instead of refusing it, so the editor still opens in a readable size.
QUILL Lite uses the same two setting names, so a settings file carried between the two means the same thing in both.
Accessibility
These tools help you check QUILL itself and the document you are working on, and keep useful information within reach of the keyboard.
Moving between regions (F6)
Press F6 to move from the editor to the next major
region of the window, and Shift+F6 to move back. QUILL
announces each move in the same way every time.
The Accessibility submenu
Tools > Accessibility holds the commands for checking QUILL and your document:
- Accessibility Audit… checks the interface for accessibility problems.
- Keyboard Trap & Tab-Order Snapshot… records where Tab goes and shows any place focus could get stuck.
- Validate Contrast… checks colours for low-vision problems.
- Link Inventory & Alt-Text Catalog… lists the links and image descriptions in the current document.
- Speak Cursor Address, Speak Document Status and Speak Selection Length tell your screen reader where the caret is, the state of the document and how much is selected.
The audit and the keyboard trap snapshot are useful to you, and also to testers helping to improve QUILL.
The status bar
QUILL’s status bar is something you can move into and use, not just look at. It keeps useful information close and reachable from the keyboard.
The page indicator
The status bar has a Page cell for every document, on by default, next to your line and column.
For PDFs this is an exact count. QUILL knows the real page boundaries from the file, so it reads, for example, “3 of 12.”
Plain text, Markdown and most Word documents have no real pages until you print or export them, because page breaks depend on the font, margins and paper size. For these, the Page cell shows an estimate based on the word count, such as “~3 of ~12 (estimated).” The tilde and the word “estimated” always come together. A page number without them is a real count; with them, it is QUILL’s best guess.
If your pages usually hold more or fewer words, change Settings > Navigation and QUILL Key > Estimated words per page (default 300, range 150-600).
To jump to a page, press Go To
(Ctrl+G), or press Enter on the Page cell. Choose
Page at the top of the window, then pick from the list
or type the number. For PDFs the rows are exact page numbers. For
everything else each row reads ~4 (estimated), so you know
which kind of jump you are making.
Braille (BRF) documents have their own, more detailed page system (see Braille mode) and do not show this Page cell.
Sound notifications and earcons
QUILL can play short sounds, called earcons, at moments that matter while you edit. Your screen reader stays free for the text, and the sound tells you “something happened”. Sound is optional and off by default for most events, and it never replaces speech.
Sound packs and events
- Sound packs (QSP). A sound pack is a folder (or a
.qspzip) of WAV files with amanifest.jsonthat says which sound goes with which event. QUILL comes with the Ink pack and uses it whenever you turn sound on. On the first-run Keyboard and Sound page, the Sound pack control is a dropdown of the packs that come with QUILL. It starts on QUILL’s own pack, so turning sound on always gives you working earcons. - Per-event control. Open Tools > Reading and Dictation > Sound Scheme… to turn single events on or off. Events are grouped into Earcons, Compare and (when an indent-tone pack is loaded) Indentation tones, so you can keep, say, the save and search cues and silence the rest.
- Toggle everything. Toggle Sound Notifications (in Reading & Dictation) turns all earcons on or off at once, and plays a short “on” or “off” cue so you know which way it went.
- Indentation tones. In code and other indented text, QUILL can play a tone as the caret crosses indent levels. The tone rises as you go deeper and falls as you come back out. Pick a scale (pentatonic, whole-tone, diatonic or chromatic) in the Indentation tones setting, or leave it Off. Blank lines stay silent and keep the previous level.
- Compare cues. With a sound pack on, comparing documents plays its own cues for opening and closing a comparison, moving to the next or previous difference, and reaching the first or last difference. Comparing documents is covered in Chapter 8, Reading, reviewing and listening.
- Numbered slots have their own notes. The twelve Copy Tray slots and the ten quick-bookmark slots each play their own pitch when you copy, paste, set or jump. Copy Tray slots are soft marimba taps and bookmarks are brighter chirps, so you know which family it is straight away. After a while, “slot seven” is a note you recognise rather than something you wait to hear.
- Progress you can hear. Long downloads and installs play a short blip every 5 percent, rising in pitch as they get close to done. The 25, 50 and 75 percent marks have a touch of harmony, and 100 percent ends with a small two-note finish. A sound never talks over your screen reader the way a spoken percentage does. QUILL still speaks the quarter marks.
- Selection and boundary cues. Starting a selection
with
F8plays a rising two-note sound, and finishing it plays the same in reverse. The very top of the document gives a high tick, and the very end a low thud. - The other apps have their own sounds. Quill Radio and Quill Weather mark their own moments (connecting, a stall, a new weather alert) through the same Sound Events system, and you can turn each one off in the same place. Each app’s own user guide lists its sounds.
- Keep the sound device awake. Some USB and Bluetooth audio devices go to sleep after a few silent seconds and clip the start of the next sound. If the start of your earcons or speech gets cut off, turn on Keep the sound device awake (in Settings, search “keepalive”). QUILL then plays a silent clip every 20 seconds so the device stays awake. Off by default.
Choosing between a tone and words
Some moments can be marked with a sound or with a sentence. Which you
want depends on how long you have used QUILL. A new tone means nothing
until you learn it, but once you have, hearing “Copied” on every
Ctrl+C gets old fast. So you choose.
- Action feedback (
action_feedback) covers the moments where a key did something and your screen reader says nothing: cut, copy, paste, delete, undo, redo, and starting a selection withF8. Choose Play a sound (the default), Speak the action, Both a sound and speech, or Neither. When a moment has a number worth hearing, such as “Pasted 1,234 characters as plain text” or “Selected 412 characters, 68 words”, the number is always spoken, because a tone cannot carry a count. Neither stays silent but still writes to the status bar, so you can read what happened. - Find: nothing found
(
find_not_found_feedback) offers the same four choices for when a search finds nothing. It is a separate setting because you pressF3again and again, and “Not found” spoken every time soon gets wearing. It also starts on the tone alone.
If you choose a sound for a moment your sound pack has no sound for, QUILL speaks instead, so you always get one or the other. Turning off a single event under Sound Events… is different: that is you asking for quiet, and it stays quiet.
Wrapping at the ends of a search
Wrap around when searching (wrap_find)
decides what happens when Find Next reaches the end of the document, or
Find Previous reaches the start. When it is on (the default), the search
carries on from the other end, and a wrap sound tells you it did. When
it is off, the search stops and tells you where: “No more matches.
Reached the end of the document, and wrapping is off.”
The two messages need different fixes. “Not found” means change what you are searching for. Reaching the end means go to the other end and search again. The setting works in both directions, in QUILL and QUILL Lite alike.
When a word cannot be added to a dictionary
Add to This Document Only and Add to This Project save a small dictionary file beside your document. A document you have not saved yet has nowhere to put one, so QUILL tells you and says what to do: “Cannot add “Bhattacharya” to this document only until the document is saved. Save it, or add the word to your personal dictionary instead.” Your personal dictionary always works, saved document or not, because it lives with your settings, not with the file.
Background checks
QUILL quietly keeps an eye on a few things for you: a watched folder, the weather, and your GitHub account if you use it. Each of these has the same three controls, so once you have set one up you know them all. Find them in Settings by typing the monitor’s name in Find a setting, or “tick”, “interrupt” or “check”.
- How often it checks. Watched folders count in seconds, so a file you just dropped in is noticed while you are still there. Feed and account checks count in minutes, since asking a server every few seconds does no good. A value of 0 or less is raised to that monitor’s minimum.
- Whether each check makes a sound. Turn on Play a sound on each check to hear a short tick every time that monitor looks. This is not news that something happened; it shows the watcher is still running, so silence means it has stopped. It is off by default for every monitor. Turn it on for the one or two you really want to hear working.
- Whether a result interrupts speech. Turn on Let results interrupt speech and that monitor’s announcements cut in over whatever is being spoken. Leave it off (the default) and they wait their turn, so a new result never cuts a sentence in half while you are reading. Some people want the weather to interrupt and the watched folder to wait, and some want the opposite. Real errors always interrupt, whatever the setting.
QUILL sums up your choices in one sentence, for example: “Checks every 15 minutes, ticks audibly, does not interrupt speech.”
Every sound in the Ink pack
The Ink pack has sounds for these events:
quill_key_pressed (the QUILL key is waiting for its next
key), abbreviation_expanded,
abbreviation_deleted, snippet_inserted,
autocomplete_accepted, document_saved,
document_created, search_found,
search_not_found, search_wrapped,
heading_jumped, table_entered,
browse_mode_on, browse_mode_off,
ai_thinking_started, ai_response_received,
ai_error, transcription_started,
transcription_stopped, ssh_connected,
ssh_disconnected, error, warning,
sound_on, sound_off, and the five compare
events. Every sound in the pack is different, so two events never sound
the same.
If you make sound packs, you can map any event to any WAV file. The
full QSP format and list of events are in the product requirements
document, under “Sound notifications and QSP sound packs.” If you run
QUILL from a source checkout, the audition_ink_sounds
script in its scripts folder plays the pack family by family, and adding
--all plays every sound in it.
Braille mode
QUILL opens and edits formatted braille files (.brf,
.brl, .pef and .ueb) as plain
NABCC, also called braille ASCII. If you proofread transcriptions, you
can move through a file the way it is really laid out, in braille pages
and cells, and QUILL tells you exactly where you are.
Your braille display
QUILL shows text on your display starting in cell 1, and shows a selection with dots 7 and 8. Two checkboxes on Settings > Braille Mode make this work, and both are on out of the box:
- Fix braille cell alignment and selection dots (recommended)
- Hide editor border (required for braille cell alignment). The visible border pushes braille output out of cell 1, so it has to go.
Leave both on unless your display has trouble. If you uncheck the border setting, QUILL warns you first that cell alignment will break. Restart QUILL after changing either one so every document uses the new setting. If you remember the old Editor control type and Experimental surface settings, these two replaced them.
Opening and saving braille files
Open a .brf, .brl, .pef or
.ueb file the same way you open anything else. QUILL reads
it as braille text. A UTF-8 byte-order mark is removed if there is one,
and QUILL checks for any character that is not braille ASCII. Nothing
else changes on the way in: what you see is what is in the file.
Saving keeps the file byte for byte. QUILL does not trim trailing spaces or change line endings, and form feeds (the hard page breaks) are kept. If the text has characters outside braille ASCII, QUILL still saves them as they are and gives you one spoken warning that does not stop you, so nothing changes without your knowing. Open a file and save it, and you get back an identical file.
Picking up where you left off
When you open a braille file again, QUILL puts your cursor back where you were and tells you, for example: “BRF file opened. 87 braille pages detected. Last position: braille page 12, line 14, cell 31.”
Your place, your proofing progress and your notes are kept in a small companion file next to the braille file. The braille file itself is never changed. QUILL does not restore your place in Safe Mode or when companion files are turned off. If the file was shortened somewhere else, your cursor is placed safely inside it.
The braille status cell
While a braille file is open, the status bar has a braille cell that
updates as you move. It reads like
BRF Pg 12/87 | Ln 14/25 | Cell 31/40 | Print 7: the braille
page, the line on that page, the cell on that line, and the print page.
QUILL looks for print page numbers every time you open the file and
every time the page map is rebuilt, so the print page is filled in
whenever the file marks it. When the file has no print page markers, it
reads Print ?.
The Braille menu
Braille commands are under Tools > Braille. None of them has a key out of the box, so nothing clashes with your screen reader or the editor’s own keys. Give them keys in the keyboard customizer, or run them from the Command Palette.
Every status, navigation and layout command is safe to run on a document that is not braille: it just says “This is not a braille document”. (Remove Trailing Spaces and Go to Longest Line work on any document’s text.)
Status
- Read Status (follows your status verbosity)
- Read Detailed Status (adds the print page, continuation letter, running head, proofing state and how sure QUILL is of the layout)
- Read Current Line and Cell
- Read Current Braille Page
- Read Current Print Page
- Read Progress Summary (how far through the document you are)
- Announce Running Head, Include Running Head in Status and Omit Running Head from Status
Navigation
- Go to Braille Page… (type a page number), Next Braille Page and Previous Braille Page
- Go to Print Page… (type a print page number that QUILL found)
- Next Print Page Change and Previous Print Page Change jump to where the print page changes. Going past the first or last one tells you there are no more.
Page Tools
- Insert Braille Page Break (a form feed) and Remove Braille Page Break at the cursor
- Recalculate Page Map rebuilds the page map after you edit
- Normalize Line Endings (a placeholder, not working yet)
Proofing
Keep track of your proofreading without ever changing the braille file.
- Mark Current Page Proofed or Mark Current Page Needs Review, or take the mark off again with Clear Proofing Mark.
- Add Proofing Note… adds a note to the current page.
- Read Progress Summary speaks the pages proofed, the pages needing review, the last page you proofed, and an estimate of when you will finish.
- List Proofed Pages… and List Pages Needing Review…. Choose a page to jump to it.
- Export Proofing Report… saves a plain-text report of it all.
Your progress is kept in the small companion file next to the braille file, so it travels with the document and never changes it. If the file has not been saved yet, these commands ask you to save it first.
Validation
Validate BRF Layout checks the layout of a braille file for ten kinds of problem: lines or pages that are too long, pages that look stuck (too short), missing page breaks, mixed line endings, characters that are not braille ASCII, page numbers that are malformed or missing, gaps or repeats in page numbering, running heads that do not match, and files in Unicode braille instead of NABCC. It opens a Warnings List; choose a warning to go to it.
Next Warning and Previous Warning move through what it found and say “Warning N of M” with the message. Warnings Summary speaks the total and the most common kinds. Validation only reads the file and never changes it.
Repair
These fix the two problems that most often stop a braille file embossing cleanly.
- Read Layout Metrics speaks the numbers in one go: the cell you are on and the length of this line; the longest line in the file against your cells-per-line limit, with “page width exceeded” when it is over; the current and total braille pages; and the longest page against your lines-per-page limit, with “page depth exceeded” when it is over.
- Go to Longest Line and Go to Longest Page take you straight to the worst one so you can fix it. A page that is too long usually needs a page break where one is missing (Insert Braille Page Break).
- Remove Trailing Spaces on This Line and Remove Trailing Spaces in Whole File clear the trailing spaces behind most page-width problems, and keep every line ending and form feed.
The limits come from your Cells per line and Lines per page settings under Settings > Braille Mode, so the numbers match the page size you are transcribing for.
Translating with the QUILL Braille Pack
Translating between print and braille, in either direction, needs the optional QUILL Braille Pack (also called the Universal BRF Pack). It contains the full catalogue of liblouis braille tables, a set of profiles that give those tables friendly names, and the translation engine itself.
The pack is not included by default. Without it, the Translation submenu is hidden, so you never meet commands that do nothing. In its place, Tools > Braille has Download Braille Translation Pack…, which opens Download Optional Components with the braille pack already chosen. Press Download, and the Translation submenu is there from then on. With it installed, the Translation submenu starts with the two commands most people want, then the detailed sections:
- Back-Translate to Text (Auto-Detect Code) is the easy way. You do not need to know whether your braille is UEB Grade 2, UEB Grade 1, legacy American (EBAE) Grade 1 or 2, or computer braille. QUILL tries a sample of the document (or your selection) in every likely code, sees which reads most like real English, and uses that one. It tells you what it found, for example “Detected UEB Grade 2 (contracted)”. If a file is uncontracted, QUILL says Grade 1, even though the Grade 2 table would also have worked.
- Convert BRF File to Document… takes a braille file
on disk straight to a readable document. Pick any
.brfor.brlfile, and QUILL detects its code, back-translates the whole file and opens the result as a draft, without your opening the braille file first. The draft is an ordinary document, so Save As can turn it into Markdown, HTML, Word (.docx) or plain text. - UEB (Unified English Braille): Contracted (Grade 2), Uncontracted (Grade 1), Translate Selection to UEB, and Back-Translate UEB (which skips detection).
- Standard American English (Legacy): Contracted (Grade 2) and Uncontracted (Grade 1), using the traditional North American English tables.
- More Languages is filled in from the profiles in the pack you have installed. A language with more than one profile, such as contracted and uncontracted, gets its own submenu. German, French, Spanish, Russian, Korean and dozens more are there.
Translating to braille opens the result in a new document and tells you how many braille pages it made. Translating back from braille always opens its result as a clearly labelled draft, because no automatic back-translation can be trusted completely. If you have text selected, only the selection is back-translated, which is handy for recovering one passage; otherwise the whole document is. QUILL tells you which, for example: “Back-translation draft from selection. N words. Review against the BRF.”
Translation runs separately from QUILL, so a translation failure can never take QUILL down. If it fails, QUILL tells you why and does not open an empty document. The Translation submenu is also hidden in Safe Mode.
Translation works the same whether you use the installed version, the
portable version or a source checkout. The pack carries its own
translation tool (lou_translate, next to the tables), so
you do not need to install liblouis for Python separately. If you do
have it, QUILL uses it, because it is a little faster.
The Braille Mode page in Settings
Most of the Braille Mode page is covered above. The rest:
- Use form feeds for page breaks treats the page-break characters in a braille file as real page breaks. Leave it on unless the file never used them. Turn it off and QUILL counts pages by your page size instead.
- Calculate pages from geometry: when a braille file has no page breaks, QUILL works out the pages from your page size. Turn this off and a file like that is read as one long page. On to begin with.
- Announce page changes automatically: turn this on and QUILL says “Braille page 5” as your cursor moves onto a new page. If you got there with Next Braille Page or Go to Braille Page, you only hear it once. Off to begin with.
- Announce print page changes: turn this on to hear “Print page 7” when you move onto a new print page. Files without print page numbers stay quiet. Off to begin with.
- Announce line overflow: turn this on and QUILL tells you when a line is longer than your Cells per line, for example “Line too long: 45 cells, limit 40”. You hear it once when you reach the line, or when your typing pushes it past the limit. Off to begin with.
- Include proofing status in status string: Read Detailed Status tells you the last page you proofed and how many pages still need review, from the companion file. On to begin with; turn it off for a shorter status.
- Include continuation in status string: Read Detailed Status names the continuation letter (7a, 7b) when a print page runs on. On to begin with.
- Write sidecar on save saves a small companion file next to a braille file when you save it, recording the page size and line endings, so other tools can pick up where you left off. On to begin with.
- Include running head in status string adds the page’s running head to the detailed braille status, when there is one. Off to begin with.
Braille files in Convert File
The everyday converter, File > Convert File,
accepts .brf and .brl files too; they appear
in its file picker with everything else. Pick a braille file and any
output format (Markdown, Word, HTML, EPUB, plain text and the rest).
QUILL detects the braille code, back-translates and writes the result,
and tells you which code it found. There is no separate braille
converter to look for.
GLOW Workflows Inside QUILL
GLOW (Guided Layout and Output Workflow) is QUILL’s built-in accessibility checker. It reviews your document for accessibility problems and offers safe, predictable fixes, and it shows you what it found in plain words, not a compliance dashboard. Everything is under Tools > GLOW.
Turning GLOW on
GLOW is an experimental feature and is off by default while it matures. To turn it on:
- Open Settings > Experimental.
- Check Enable experimental features, the main switch for the whole tab.
- Check GLOW accessibility review and repair (experimental).
- Apply your settings.
The Tools > GLOW menu appears straight away, with no restart. While GLOW is off, its commands still show up in the Command Palette, and running one tells you how to turn GLOW on. Experimental means still being finished, not unsafe: GLOW always shows you before it changes anything, and it never touches your original file.
Auditing a document
- GLOW Audit Current Document checks the whole file in front of you.
- GLOW Audit Selection / Paragraph checks just the block at the caret.
- GLOW Audit File… picks a document on disk (DOCX, PPTX, XLSX, PDF, EPUB or Markdown) and checks it in the background. You get a score, a grade, and every finding with a suggestion.
The results open as ordinary QUILL tabs you can read, search, compare, or keep open beside the document. Each finding names the rule, how serious it is, where it is when that is known, and a suggestion in plain language.
Fixing a document
- GLOW Fix Selection / Paragraph tidies up where you are, in place.
- GLOW Fix Current Document makes a fixed version and opens it straight away beside the original, so you can compare them. Accept or reject the changes knowing exactly what they are.
- GLOW Fix File… saves a repaired copy of a document
next to the original, for example
report-accessible.docx. The original is never changed. QUILL checks the new file name with you first, and then opens an audit of the repaired copy so you can see the result.
What GLOW checks
In the editor, GLOW checks plain text, Markdown and HTML for:
- a missing space after a Markdown heading marker
- headings that skip a level
- vague link text, such as “click here”
- a missing language setting in HTML
- images with no alt text
- tables with no header cells
- indenting with tabs that can cause problems
- dense paragraphs and hard-to-read wording
The optional GLOW engine adds Word, PowerPoint, Excel, PDF and EPUB files (DOCX, PPTX, XLSX, PDF, EPUB), with a scored and graded report.
The GLOW engine and updates
The in-editor checks are always there. Checking and fixing those
other file types needs the optional GLOW engine (installed with QUILL’s
glow extra). When it is missing, QUILL tells you so
plainly.
Help > Check for GLOW Updates… looks for a newer engine when you ask it to; it never checks on its own. Downloading needs a separate yes from you, every download is checked for its signature and checksum, and if an install fails QUILL goes back to the engine it came with.
GLOW settings
More Preferences > GLOW Accessibility has the engine switch and the optional features that use the internet: AI alt text, PII redaction, and WCAG language processing. All of these are off by default, and each one asks your permission every time it is used. Out of the box, GLOW runs entirely on your own computer.
Inserting images with alt text
GLOW’s audit finds missing alt text after the fact. Insert > Image… stops it going missing in the first place. Before you can insert an image, you either write alt text that describes it, or check “This image is decorative”. Decorative is right for an image that carries no information, such as a divider line or a background flourish. It is not a way to skip describing an image that does carry information.
Let AI draft the alt text. If you have an AI model that can see images connected (Preferences > AI) and you are not in Safe Mode, the window has a Suggest alt text with AI button. Choose your image file and press it. QUILL describes the picture and puts the description in the alt text field for you to read, correct and approve before inserting. AI is fully turned off in Safe Mode, so the button does not appear there.
Images that fit a web page. When you insert into an HTML document, the window adds a Size and layout section:
- Width and Height (optional) let a browser save the space, so the page does not jump about while the image loads.
- Responsive, on by default, lets the image shrink to fit narrow columns instead of spilling over.
- Caption (optional) is inserted as a proper
<figure>/<figcaption>, so screen readers know the caption belongs to the image.
These options are hidden in Markdown documents, which cannot hold
them. There you get the familiar .
For any image already in your document, whether typed by hand, pasted or brought in from another format, Tools > Describe Image at Cursor tells you what a screen reader will hear there: “Image: sunset.png, alt text: a sunset over the lake,” or “Image: sunset.png, alt text MISSING” if it has none.
What you learned, and where to go next
You can now ask QUILL what a document is and what just changed, set how much it says and through which channels, and read back anything you missed in the Spoken Echo. You know how to make the text the size you need, what QUILL’s sounds mean, how to work page by page in braille files, and how to check and fix a document with GLOW.
To practise, open Help > Tutorials…
(Ctrl+Alt+F1) and try “Decide how much QUILL says”, “Make
QUILL the size you need” and “Braille files, page by page”. On the
website, Make
a document accessible with GLOW walks through GLOW from start to
finish.
Next, Chapter 12, Making QUILL yours, shows you how to set up keys, profiles and preferences the way you like them.
Chapter 12: Making QUILL yours
QUILL comes ready to use, but no two people work the same way. This chapter is about shaping it to fit you: how much of QUILL you see, which keys do what, what the status bar tells you, and what happens when you start it in the morning. Start with profiles and keys, because they make the biggest difference for the least effort. After that come everyday preferences, the power tools, Quillins (extensions that add new commands), QUILL on a Mac, and how to use QUILL in another language or help translate it.
Profiles, Keyboard Packs, and Customization
You can change a great deal in QUILL, and it tries to keep those changes tidy. A profile decides which parts of QUILL you see, a keyboard pack decides which keys you already know, and the Keymap Editor lets you change any single key. All three live under Tools > Customize and Support.
Feature profiles
A feature profile decides which groups of features are on, quiet or off. It lets QUILL stay calm when you are new to it, without taking anything away from you once you want more.
Choosing a profile
A profile is a starting point, not a cage. You can switch any time from Profiles and Features…, and you can fine-tune single features afterwards without losing the rest of the profile’s choices.
The first-run Personalise QUILL wizard offers seven profiles as starting points, each with a plain-English preview of what you get. The full set of ten lives in Profiles and Features…, along with the QUILL Lite profile. That includes profiles the wizard does not show, such as Reader and Student, Office and Admin, and Low Vision.
- Essential. The calmest editor QUILL can be. Just text, files and the basics, with everything else a quiet opt-in away.
- Casual Writer. Everyday writing, formatting and cleanup, with the more powerful features close by when you reach for them. For papers, citations and a table of contents, see Author or Student below.
- Author or Student. Long-form writing with a table of contents, footnotes, and MLA, Chicago or APA citations, for papers, theses and class assignments. Choose footnote-style or full academic citations with Format > Markdown > Select Citation Style….
- Reader and Student. Reading, highlights, references and light writing, for working through someone else’s material more than producing your own.
- Office and Admin. Reliable file work, sessions, cleanup and printing for everyday office documents.
- Developer and Power Text. Regular expressions, cleanup, inspection and document-analysis tools, right up front.
- Low Vision. Higher contrast, larger reading aids and friendly inspection tools.
- Braille and Screen Reader Power User. Navigation that suits a screen reader, with the advanced text tools within easy reach instead of buried.
- Accessibility Professional. Reading, inspection, trust and accessibility diagnostics, for checking other people’s documents.
- Full Quill. Everything visible, including advanced and experimental paths, for people who would rather see it all than wonder why something is missing.
- QUILL Lite. QUILL with QUILL Lite’s nine menus and nothing else: a plain-text editor with rich text, spelling, the line tools and the clipboard, without the writing environment around them. Choose it if you are coming from the small editor and want QUILL to be the shape you already know.
QUILLBee’s shortcut: You can switch profiles from anywhere. Press
Alt+Shift+P, pick one, and you are done.
The QUILL Lite profile
The QUILL Lite profile does two things the others do not.
- It switches features off rather than hiding them. Everything it takes away is still in Customize Features and the command palette, so getting one thing back is a single checkbox, not a reinstall.
- It sets
Ctrl+Nto make a plain text document, because that is what QUILL Lite makes.
Bring my QUILL Lite settings. The first time you
choose the profile, QUILL offers to start from your QUILL Lite setup.
You can also do it any time with Tools > Customize and
Support > Bring My QUILL Lite Settings…
(Alt+Shift+F11), even if you only want your QUILL Lite
abbreviations and not its menus. Before it does anything, QUILL tells
you what it will bring, with counts, and what it will leave behind.
What comes across follows one simple rule: content is shared and preferences are copied.
- Your abbreviations, personal dictionary, copy tray, clip library and bookmarks are merged into QUILL’s folder, and QUILL Lite is pointed at the same copy. From then on, an abbreviation you add in either editor is in both.
- Wrap, autosave, spell-check-while-typing and the other editor preferences are copied once. After that each editor keeps its own, so they can drift apart.
- Keys you have rebound come across the same way. A QUILL Lite command that QUILL does not have is left behind instead of guessed at.
- Nothing already in QUILL is replaced. Where both have an entry, QUILL’s wins, because it is the one you have been using most recently.
Managing profiles
Use Profiles and Features… to:
- switch profiles
- quick-switch profiles from anywhere with
Alt+Shift+P - compare profiles
- undo the last profile change
- reset to Essential
- import and export profile data
- create custom profiles
- update a custom profile from your current feature, settings and keymap state
- delete custom profiles
When you make a custom profile, you choose how it starts:
- Inherit parent profile starts from the built-in profile you selected.
- Bare-bones start inherits nothing, and starts with only the locked core safety features turned on.
Fine-tuning individual features
Sometimes a profile is almost right, and you just want to add or remove one or two things. Help > Feature Profiles > Manage Individual Features lets you do that on top of your active profile, without making a whole new profile.
The dialog has a checkbox for each feature you can turn on or off. A Show radio button at the top chooses between All features and Disabled features only. The disabled-only view lists just the features that are not on yet, so you can find the one you want without scrolling past everything that is already running.
As you arrow to a checkbox, a read-only description at the bottom of the dialog tells you what the feature does and what it depends on. Turning a feature on also turns on the features it needs. Turning one off also turns off the features that need it, and QUILL tells you what changed in the status bar.
In the disabled-only view, a feature you turn on drops out of the list straight away, and focus moves to the next disabled item, so you keep your place.
Keyboard packs
A keyboard pack sets up QUILL’s keys to match an editor you already know, so QUILL feels familiar from day one. The packs are:
- Quill Default
- Quill Writer
- Quill Navigation
- Quill Review
- Windows Notepad
- Notepad++
- VS Code
- Microsoft Word
Choose a pack in Profiles and Features…. If you later change shortcuts by hand or import a keymap of your own, the pack’s name changes to Custom so you know it is no longer the stock pack.
Keymap editor
Use the Keymap Editor (Tools > Customize and Support > Keymap Editor…) when you want to change the key for one command. If the key you choose is already in use, QUILL warns you before it reassigns anything.
Rebinding QUILL Quick Nav keys
QUILL Quick Nav, the single-letter movement mode, has its own entries in the Keymap Editor:
QUILL Quick Nav: LinkQUILL Quick Nav: ListQUILL Quick Nav: List ItemQUILL Quick Nav: TableQUILL Quick Nav: Block QuoteQUILL Quick Nav: BookmarkQUILL Quick Nav: Code BlockQUILL Quick Nav: Table of ContentsQUILL Quick Nav: ParagraphQUILL Quick Nav: SentenceQUILL Quick Nav: HeadingQUILL Quick Nav: Block
Here is an example that moves two of them:
- Open Tools > Customize and Support > Keymap Editor….
- Choose
QUILL Quick Nav: Link. - Enter
Kif you want link jumps onKinstead ofA. - Choose
QUILL Quick Nav: Code Block. - Enter the grave accent key if you prefer it to the apostrophe.
Two things to know:
- The Keymap Editor will not let you save a conflict.
- Quick Nav keys only work while QUILL Quick Nav mode is on.
Recommended shortcut updates
Once in a while a shortcut needs correcting for everyone. For
example, Find went back to Ctrl+F after some early builds
had moved it to a QUILL key chord. QUILL makes a correction like this
once and never touches that key again, so you are
always free to change it back in the Keymap Editor.
If you would rather QUILL never changed your shortcuts at all, turn off Apply recommended keyboard-shortcut updates in Settings. Your keys then stay exactly as you set them, through every update.
Reset everything to factory defaults
To start over completely, choose Tools > Customize and Support > Reset Everything to Factory Defaults…. QUILL asks you to confirm first, and the answer starts on “No”. Then it puts your settings, keyboard shortcuts, menu customizations and feature profile back the way they came, all in one step. Your documents, autosaves and backups are never touched.
There are smaller resets too: Reset Keymap puts back only your shortcuts, and Reset to Factory Defaults inside Settings puts back only your settings.
General preferences
Most everyday preferences are in the Settings dialog: Tools
> Customize and Support > Preferences…, or press
Ctrl+Comma. A few quick toggles are on the View menu as
well.
Settings you can change today
These are the settings people most often want to change:
- theme behavior, including dark mode
- soft wrap
- recent files limit
- system tray mode
- persistent undo
- spell check as you type
- spell check a document before saving. When this is
on, saving opens the Spelling Review (
F7) first, so you can correct the document before it is written. Off by default. - line-number visibility
- whether QUILL starts with no document open
- suggest a filename from the first line. When this is on, saving an untitled document fills in the Save dialog with a name taken from the first line. It works in every format, and leading markup such as a Markdown heading, quote or list bullet is left out. Off by default.
- read-aloud voice selection
- active feature profile
- active keyboard pack
- custom keybindings through the keymap editor
- status-bar order and status-bar visibility
- reopen last session’s documents
(
restore_session). On by default, the way Notepad 11 and QUILL Lite both behave. The list of what was open is kept insession_files. A file you open from Explorer or the command line always wins, and opens instead of the session, not on top of it. Whether it asks first issession_restore_ask; see Reopening last session. - line endings for new documents
(
default_line_ending). Windows (CR LF) by default, which is what Notepad, WordPad, Word and QUILL Lite all write. Set it to Unix (LF) if you prefer. A file you open always keeps the line endings it already had; this only decides what a brand-new document starts with. - the format a new document starts in
(
default_new_document_format). Markdown, plain text or HTML. File > New Rich Text Document (Alt+Shift+T) and New Plain Text Document (Ctrl+Alt+N) always start that kind of document, whatever the setting says, andquill --richandquill --plaindo the same from a command line.
Some of these are on the View menu for quick toggling. The preference-style ones are in the Settings dialog (Tools > Customize and Support > Preferences…). Others are in Profiles and Features…, Status Bar Layout…, Keymap Editor… and the other customization commands under Tools > Customize and Support.
Status bar settings
If the status bar says too much, or not enough, change it with Status Bar Layout…. You can reorder the items and choose which ones stay visible.
Reopening last session
QUILL remembers the saved documents you had open and offers them back the next time you start. With one document, opening it straight away is what you want. With four, you would have four tabs to sort through before you could start, so QUILL shows a chooser instead. It appears when it matters:
| Last time you had | What happens |
|---|---|
| one or two documents, both still there | they open |
| three or more | the chooser |
| any document whose file has moved or gone | the chooser |
The chooser lists what was open, with a checkbox on each row. Everything that can be opened starts checked, so pressing Enter opens all of it, and unchecking two means “not those”. A row whose file has gone says so and cannot be checked.
- Open Checked opens the checked rows and leaves the list alone.
- Open All opens everything still on disk, checked or not.
- Not Now opens nothing and changes nothing; the same documents are offered next time. Escape does the same.
- Forget Checked takes the checked rows off the list so they stop being offered. Clear the List does that to all of them. Neither one touches a file. Forgetting only changes what QUILL offers you, not what is on your disk, and the window says so under the buttons.
- Never Ask Again opens the checked documents and sets QUILL to reopen without asking from then on.
- Ask Me Next Time undoes that, so you are asked again when it matters, like a new install. Only one of the pair is available at a time. The other is greyed out, not hidden, so landing on it tells you which way the setting is.
Afterwards you hear what happened, for example “Reopened all 3 documents”, “Reopened 1 of 2”, or “Forgot 2 documents. 1 still remembered. The files themselves are untouched.”
File > Reopen Last Session…
(Alt+Shift+F12) opens the same window whenever you want it.
That is why Not Now is safe to press: you have put the answer off, not
lost it, and you can tidy the list without waiting for a restart. If you
pressed Never Ask Again and want the window back, open it this way and
press Ask Me Next Time.
The session_restore_ask setting holds your choice:
always, when_it_matters (the default)
or never. It is separate from
restore_session, which decides whether last session is
reopened at all. QUILL Lite has the same window on the same key, and the
same setting under the same name.
Starting QUILL automatically
Settings > General has a Start QUILL when Windows starts checkbox, right next to Enable background mode. Check it and QUILL starts the next time you sign in to Windows. There is no elevation prompt, and nothing an installer or antivirus tool would find unusual: it uses the same per-user startup entry most everyday Windows apps use.
Checking it also turns on Enable background mode, because a QUILL that starts quietly at sign-in needs a tray icon for you to bring the window back from. Unchecking Start QUILL when Windows starts removes the startup entry cleanly, and leaves Enable background mode as you set it.
Task recipes and working modes
Some jobs mean changing several settings at once: getting ready to dictate, or keeping background checks from talking over you. More Preferences > Task Recipes and Working Modes does that in one step, and always shows you exactly what it will change first.
- Press the QUILL key and then
Oto open More Preferences (it is also Tools > Customize and Support > More Preferences…), and choose Task Recipes and Working Modes. - Arrow through the list. What it changes, below the list, says setting by setting what each one would change from and to.
- Press Apply.
Recipes change their settings once:
- Quiet background work stops podcast, watch folder, weather and GitHub checks from ticking or interrupting speech. They still run.
- Prepare for dictation turns on Windows dictation’s announcements, its sounds, automatic punctuation and sensible spacing.
- Make the editor easier to see chooses the dark theme and larger text.
- Tell me more while I write says formatting as you move and indent depth, and gives Reveal Codes its detailed descriptions.
Put Back undoes the last recipe you applied in the window.
Working modes stay on until you turn them off, and turning one off puts every setting back exactly as it was:
- Focus is for writing without interruption: no spelling marks as you type, no formatting called out, no start-up tips, quiet background work.
- Review is for reading a draft through: spelling checked as you go, formatting called out, and Reveal Codes in detail.
Check Turn a working mode on for this session only before turning one on, and QUILL turns it off again the next time it starts. Working modes are not the same as feature profiles (Profiles and Features), which decide which parts of QUILL you see at all. Every change a recipe or mode makes is an ordinary setting you could also change by hand.
Finding a setting
Settings has a lot of pages, so you never have to remember where
something lives. At the top of the dialog is a Find a
setting box. Type a word or two from a setting’s name or its
help, such as “autosave” or “title bar”, and a list of Matching
settings appears under it. After a short pause QUILL tells you
how many there are. Press Down Arrow to move into the list,
and Enter to go straight to the setting on its own page.
Finding a setting never changes it. A setting you cannot change right
now says “(disabled)” after its name.
Ctrl+F brings you back to the box from anywhere in the
dialog. Escape in the box clears what you typed, and a
second Escape closes Settings.
OK saves your changes and closes Settings, Cancel forgets them, and Apply saves them and leaves Settings open. Apply is unavailable until you have changed something.
More on the General page
- Title bar path shows just the file name in the title bar (the default) or the full path.
- Unsaved-change title style is how the title bar marks a document with unsaved changes: Text adds “[modified]” (the default), Asterisk adds a star, and Asterisk and text adds both.
- Preview browser chooses which of your browsers opens HTML previews.
- Open preview beside the editor shows a Markdown or HTML document’s preview in a pane beside the editor as soon as you open it. Plain text is left alone. On to begin with.
- Interface language is the language of menus,
dialogs and messages, written as a short code such as
frores. Leave it blank to follow Windows. Tools > Writing and Language > Change Display Language… sets it for you from a list. - Confirm destructive actions asks before your unsaved changes are thrown away, for example when you reload a file from disk. On to begin with.
- Default document folder is where the Open and Save As windows start; Choose Default Folder… picks it. Once you have opened or saved something, QUILL starts where you last were for the rest of that session. Left blank, it starts in Documents.
- Default new-document format is Markdown (the default), Plain text or HTML, as described above.
- Open a blank document at startup hands you an empty Untitled document when nothing else is opening. Turn it off if you always open an existing file. Files you named, a restored session and recovered work still open.
- Store QUILL’s data says where QUILL keeps your settings, snippets, dictionaries and keyboard shortcuts: In my user profile (recommended), Next to QUILL, on this portable drive (only in a portable copy), or Custom folder, chosen with Choose Folder…. When you change it, QUILL offers to restart, and the change takes effect when it starts again.
- Windows and your files is covered in Chapter 3, under Making QUILL your text editor.
The Administration page
The Administration page holds updates, safety and the settings file itself:
- Check for updates on startup and Release channel are covered in Chapter 15.
- Enable Developer Console makes the Python and TypeScript consoles available under Tools > Advanced > Developer Console. Appendix A explains them. Some feature profiles turn it off.
- TypeScript console execution timeout (seconds) is how long a TypeScript console command may run before QUILL stops it, from 5 to 300 seconds. The default is 30.
- Trust SSH hosts on first connection is covered in Chapter 3, under Editing a file over SSH.
- Apply recommended keyboard-shortcut updates lets
QUILL apply an important shortcut correction once when you upgrade, such
as putting Find back on
Ctrl+F. You can still change it afterwards. - Upgrade notice is how QUILL tells you it has updated your settings or shortcuts after an upgrade: Silent, Brief announcement or Summary with Undo. A backup is always saved first.
Below the settings are five buttons:
- Export settings… saves your settings to a QUILL
settings file (
.qsf). Folders and file locations that belong to this computer are left out, and QUILL tells you how many. - Import settings… reads a settings file back. Settings closes, the imported settings take effect at once, and QUILL tells you what the file did and did not contain.
- Reset to Factory Defaults puts every setting back the way it was when QUILL was installed. It asks first, and it cannot be undone.
- Export profile… and Import
profile… save and load your feature profile, the choice of
which parts of QUILL you see, as a QUILL profile file
(
.qpf).
The Customize and Support menu
Tools > Customize and Support keeps every configuration and support command in one place, which is where you, and anyone helping you, will look for them. It used to be two separate menus, Support and Customize.
- Preferences…
- Customize Menus…
- Bring My QUILL Lite Settings…
- Profiles and Features…
- Status Bar Layout…
- Export and Back Up… / Import or Restore…
- Keymap Editor… / Export Keymap… / Import Keymap… / Reset Keymap
- Reset Everything to Factory Defaults…
- Show Notifications
- Save Diagnostics…
- Open Logs Folder / View Startup Logs… / Open Diagnostics Folder
- Check for Updates
To write to us, use Help > Get Help from Support…. It lives in the Help menu, not here.
Power tools
The Advanced submenu (Tools > Advanced) holds the automation utilities, developer tools and power switches for how the editor behaves. You can use QUILL for years without opening it, but it is worth knowing what is there.
Editor utilities
- Toggle Read-Only Guard stops accidental edits to a document you are reviewing.
- Toggle Clipboard Collector and Collect Clipboard Now gather clipboard entries into a running log in the open document. This works system-wide, the way EdSharp did: while the collector is on, anything you copy in any application, such as your browser, mail or a terminal, is added (each distinct copy once). If the document has been saved before, it autosaves after each collection.
- Toggle Key Describer says the names of keys instead of doing what they do. It is handy for writing down keystrokes.
- Toggle Indentation Announcements and Infer Indentation… tell you when the indentation level changes as you move.
Macros
- Start Recording and Stop Recording capture a sequence of editing commands.
- Play Last Macro plays back the last one you recorded.
- Manage Macros… lets you name, edit and organize saved macros.
Macros are ideal for repetitive cleanup: record it once, then replay it as many times as you need.
Authoring utilities
- Regular Expression Helper… is the guided home for
regular expressions, so you never have to face a wall of punctuation
alone.
- A category tree holds more than a hundred ready recipes: cleanup (multiple spaces, smart quotes, zero-width characters), words and phrases, lines, numbers, dates, email and web addresses, Markdown and HTML structure, punctuation and dialogue, writing and editing checks, OCR and scan cleanup, code identifiers, and capture-and-replace transformations with ready replace templates.
- Pick a recipe and three things happen at once. The pattern goes into the pattern box. A plain-language explanation appears (“One or more digits. Optionally: a period…”). And a preview runs against sample text taken from your selection, reading every match as a sentence (“Match 3: line 4, column 7: foo@bar.com”), with replace previews for the transformation recipes.
- The explanation is live. Type or paste any pattern and QUILL explains it step by step. A broken pattern is explained in words, with the exact character position (“Unclosed group: the open-parenthesis at character 4 has no matching close”).
- When the pattern is right, Use in Find All Matches takes it straight into the search, with regex mode on and no trip through the clipboard. Copy Pattern is there for everywhere else.
- Pandoc Conversion Wizard… converts supported source files into Markdown, HTML or plain text, which opens straight away as a QUILL tab.
- External Tools and Format Support… explains what each supported helper program adds, whether QUILL can already see it, and the easiest way to set it up.
- YAML Structure Editor… inspects and edits YAML front matter and structure files.
Document Intake
- Document Intake Report… tells you how good an extraction was, and whether the source probably had structure that did not survive.
- Review Extraction Quality… walks you through the quality signals one by one.
- Report Bad Extraction… flags a source for manual cleanup or another extraction.
These matter when QUILL is reading an imported format for you. They help you answer questions like: Is this document safe to quote from directly? Does it need manual cleanup?
An imported document opens with its own text and nothing else. QUILL never writes a heading such as “PDF Extract”, or the name of the engine, into the file you are reading. Everything about how it was read (format, engine, pages, quality score, and any low-confidence warning) is in the Document Intake Report, and the short version is announced when the file opens.
Shell Integration
- Install Shell Integration… adds QUILL to the Windows Explorer context menu and registers it as a protocol handler.
- Remove Shell Integration takes those entries out again.
The Integration and Context Menu page in Settings chooses what appears on that right-click menu:
- Show QUILL in the file-manager right-click menu is the main switch. Off to begin with.
- Offer “Open in QUILL” adds Open in QUILL for text documents. On to begin with.
- Offer “OCR with QUILL” adds a command that turns an image or PDF into text. On to begin with.
- Offer “OCR with QUILL (structured Markdown)” adds the AI-assisted version, which returns headings and lists as Markdown. It needs AI turned on. Off to begin with.
- Offer “Read aloud in QUILL” opens a file and starts reading it aloud. Off to begin with.
- Offer “Convert with QUILL” opens an audio or video file in Quill Converter so you can change its format. Off to begin with.
- File types offered to QUILL chooses which files get QUILL on their right-click menu: images only, images and PDFs, or images, PDFs and text documents (the default). Audio and video files have their own Convert switch above.
Your choices take effect as soon as you press OK, with no need to install shell integration again.
Quillins
Quillins are extensions. They add commands, snippets, menus, abbreviations, smart triggers, settings pages, status bar cells and document event handlers to QUILL, without a full restart.
Each Quillin runs in its own worker process. That keeps faults apart: a Quillin that goes wrong cannot crash QUILL or damage your document. It is not a security sandbox, though. The worker is an ordinary Python interpreter, so what really keeps you safe is code review and the Author Covenant. QUILL draws every Quillin’s controls itself, using standard widgets that work well with a screen reader.
Bundled Quillins
QUILL comes with seventeen trusted Quillins of its own, all turned on:
- Smart Insert (
com.quill.smartinsert): abbreviations and smart text triggers for everyday templates. It adds theqbug,qmeet,qlogandqtodoabbreviations, and the=bug(),=meeting(),=journal(),=todo(),=logentry(),=brftest()and=rand()smart triggers. Its dynamicqbrfabbreviation is reached through=brftest()instead. Settings are under More Preferences > Smart Insert. - BRF Tools (
com.quill.brftools): preferences for braille translation defaults, page handling, status bar display and diagnostics. It needs the QUILL Braille Pack. Settings are under More Preferences > BRF Tools. - Journal Stamp
(
com.quill.journalstamp): inserts a date header when you create a new journal document, tells you your word count (and daily goal progress) after every save, and announces session restores. It listens toquillin.enabledto log when it starts and tosettings.changedto pick up new preferences straight away. Settings are under More Preferences > Journal Stamp. - Document Guardian
(
com.quill.docguardian): warns before you close a short or unfinished document, can stamp anUpdated:line before each save, and can speak the file name and size after each save. It uses thequillin.enabled,quillin.disabledandquill.shutdownevents. Settings are under More Preferences > Document Guardian, which has Close Guard, Save Stamp, Save Confirmation and Lifecycle Announcements tabs. The Lifecycle Announcements tab decides whether QUILL speaks a cue when the Quillin is turned on or off. It is off by default, so your first run stays quiet. - Status Scribe
(
com.quill.statusscribe): adds a live word, character and sentence count to the status bar. The count updates after every save and when you switch tabs. It uses theui.logcapability to write messages to the Developer Console. Settings are under More Preferences > Status Scribe. - Text Tools: advanced text changes such as line numbering, hard-wrap, regex match counting and block filtering.
- Insert Tools: date, time, and date-and-time snippets in the Insert > Date and Time submenu.
- Line Tools: line operations that work from where your cursor is.
- Markdown Helpers: help with Markdown syntax.
- Insert Character: a searchable picker for Unicode symbols.
- Word Count (Node): a word count that runs on the Node.js Quillin runtime, to show that Quillins can be written in JavaScript as well as Python.
- AI Writing Prompts: extra entries for the prompt library.
- AI Writing Skills: ready-made
.sqpskill files for rewriting, pulling out meeting notes, and research drafts. - Math Equations: inserts LaTeX or MathML equations
at the cursor with Insert > Insert Equation…
(
Ctrl+Alt+=). Math Equations is covered earlier in this guide. - ElevenLabs Scribe Transcription, Groq Whisper Transcription and OpenAI Whisper Transcription: add those cloud services as optional transcription providers (ElevenLabs can also tell speakers apart). Audio is only uploaded when you choose to transcribe with that provider and have set up its API key. Never offline, and never without your consent.
Quillin preferences
Every enabled Quillin that has settings gets its own entry at the
bottom of More Preferences (the QUILL key and then O, or
Tools > Customize and Support > More
Preferences…). Ctrl+, opens Settings itself; More
Preferences is the list of everything Settings does not hold. Move to
the Quillin by name and press Enter to open its settings.
Settings tabs. A Quillin with several groups of settings puts them on tabs. Use the Left and Right Arrow keys to move between tabs, and Tab to reach the controls on a tab. Changing tabs does not lose anything you have changed; everything is applied when you press Save.
Labels. Every labeled control (combo box, text
field, number spinner) is placed right after its StaticText
label, so JAWS and NVDA read the right label when you Tab to it.
Checkboxes (wx.CheckBox) carry their own label.
Reset controls. Every preference page has Reset options:
- Reset this setting puts that one setting back to the Quillin’s default.
- Reset this section puts back every setting in the section.
- Reset this Quillin puts back all of the Quillin’s settings.
Where settings are kept. Each Quillin’s settings are
saved safely to
%APPDATA%\Quill\quillin_settings\<quillin-id>.json.
Turning a Quillin off hides its preference page but keeps its settings.
When you uninstall one, QUILL asks whether to keep or delete them.
The Quillins Manager
Open it from Tools > Quillins > Manage Quillins…. In the Manager you can:
- See every installed Quillin and whether it is enabled, disabled, or invalid (with the error).
- Select a Quillin to hear its details: name, version, author, description, categories, the oldest QUILL version it needs, the capabilities it asks for, the network hosts it may reach, and whether each of its event subscriptions is on or off.
- Enable or Disable a Quillin without removing it. The change happens straight away.
- Configure Events… opens a list of the selected Quillin’s document events, with a checkbox next to each. Check one to turn that handler on, uncheck it to stop it. Your choice is saved straight away and kept across restarts.
- Reload reads all Quillins from disk again without restarting. Use it after editing a bundled Quillin while you develop.
- Remove uninstalls a Quillin, after you confirm. Its folder is deleted from disk.
- Install from Folder lets you pick a local folder
that contains a Quillin. QUILL checks its
manifest.json, copies the folder into your own extensions folder, and turns it on. This will be the way to install Quillins from other people once that is opened up.
The details pane lists every capability a Quillin asks for (for
example fs.read, net,
settings.own.read or settings.own.write), any
net_allowed_hosts limits, and whether each event
subscription is on. Look at the capabilities before you turn on a
Quillin from a source you do not know.
If a Quillin cannot load, the details pane tells you why: it needs a
newer QUILL (min_quill_version), something it depends on is
missing (requires), or there is a mistake in its
manifest.
The details pane also has a Signature line for every
Quillin: verified when a signature file beside the manifest
matches the publisher key, invalid when there is one that
does not match, or unsigned when there is none. It is read
with the rest of the details, so you can hear whether a publisher
vouches for a Quillin before you turn it on. The PyNaCl library this
check needs comes with QUILL. The signing protocol is described in
docs/signing.md.
Document events
Quillins can listen for things happening to your documents and act on them automatically, with nothing for you to do. There are fourteen events:
| Event | When it fires |
|---|---|
document.opened |
A file was opened from disk |
document.activated |
You switched to this tab |
document.before_save |
Right before saving |
document.after_save |
After a successful save |
document.before_close |
Before a tab closes |
document.after_close |
After a tab closes |
document.created |
A new blank document was created |
document.loaded_from_session |
A document was restored from a crash |
smart_trigger.entered |
A smart trigger was activated |
abbreviation.expanded |
An abbreviation was expanded |
quillin.enabled |
This Quillin was just enabled or QUILL started with it on |
quillin.disabled |
This Quillin was disabled in the Manager |
quill.shutdown |
QUILL is about to close |
settings.changed |
A setting owned by this Quillin changed |
A Quillin can limit an event to certain file extensions, paths or
content. A journal Quillin can stick to **/journal/**
paths, and a .LOG handler can insist that the file starts
with .LOG.
Each event subscription has an enabled_by_default field.
When the author sets it to false, that handler starts
switched off, which suits optional or chatty behaviour. You can turn any
event on or off for each Quillin in Quillins Manager >
Configure Events….
Handlers use api.announce() to speak their results, and
must not hold up the editor while they work.
The Quillin Hub
The Quillin Hub is where you can share what you make with the community, and not only Quillins. It takes seven kinds of file:
- Quillin extensions (a zipped folder with
manifest.json) - AI agents (a single
.mdor.jsonagent file) - Verbosity packs (
.qvp.json) - Sound packs (
.qsp) - Keyboard packs (
.kqp) - AI skill packs (
.sqp) - Pronunciation dictionaries
(
.json)
To check your work before you send it:
- Choose Tools > Quillins > Submit to Quillin Hub….
- Pick your file. For a Quillin extension, pick its
manifest.json; QUILL checks the whole folder. - Listen to the result. QUILL works out what kind of file it is and runs the same checks the Hub runs, on your own computer, with nothing uploaded.
Passed means your work clears every check QUILL
applies to its own bundled files. Needs work lists each
error and warning so you know what to fix. The
Signature line says verified if there is a
signature file next to yours, invalid if there is one but
it does not match, or unsigned if there is none. The Hub
turns down unsigned submissions, so the “Open the Quillin Hub” button
only appears when your file passes and is signed. Sign it with
python -m quill.tools.signing sign <artifact> and run
the check again. The check makes no network connection; only the “Open
the Quillin Hub” button opens anything.
Publishing happens through GitHub pull requests, so every submission is reviewed in the open. The Hub runs the same checks again, looks over any extension code for security and for honesty about the capabilities it asks for, reads your manifest so you never retype your name, version or description, and checks the publisher signature on every signature file sent with the submission.
Authoring Quillins
If you write code, Quillins are built screen-reader-first. Each one must ask for the smallest set of permissions it needs, and anything sensitive (such as writing to a file or changing a setting) asks you for consent when it happens.
A Quillin can add:
- Commands: Python or Node.js handlers, or simple declared snippets.
- Menus: items in the normal QUILL menu bar.
- Hotkeys: keys that respect the QUILL key chord prefix.
- Abbreviations: short typed words that expand after a delimiter.
- Smart triggers:
=name()commands typed on the current line. - Sound events and sound packs: its own earcons for its own events.
- Preferences: settings pages with tabs, sections, checked controls, search keywords and their own storage.
- Document events: handlers that run when a document opens, saves, closes or is restored, or when the Quillin is enabled or disabled, or QUILL shuts down.
- Status bar cells: live cells that QUILL refreshes
and shows in the status bar. Needs the
ui.statuscapability. - Categories: one or more labels
(
writing,accessibility,braille,productivityand more) for filtering in the Manager. - Dependencies (
requires): another Quillin that must be installed first. QUILL checks this when it finds the Quillin. - Network host allowlist
(
net_allowed_hosts): with thenetcapability, a list of host names or wildcard patterns it may connect to. QUILL blocks any other host, even if you have granted generalnetconsent. - Minimum version (
min_quill_version): the oldest QUILL release it supports. An older QUILL refuses to load it.
The full authoring reference is
docs/quillins/quillins.md. PRD section 5.83a (“The Quillin
Hub - community distribution for every shareable artifact”) is the
developer guide to every file you can share (Quillins, agents, verbosity
packs, sound packs, keyboard packs, skill packs and pronunciation
dictionaries) and how to check and submit each one. One checker covers
them all:
python -m quill.tools.artifact_validate <path>.
QUILL on macOS
QUILL runs on macOS as well as Windows, and the aim is for both to do the same things. Here is what is different, or worth knowing, on a Mac.
Speech and VoiceOver
- VoiceOver first, with QUILL’s own voice as a fallback. On macOS, QUILL sends its announcements to VoiceOver and never talks over it. Headings, regions and result messages behave as they do with NVDA and JAWS on Windows. If you run QUILL on a Mac without VoiceOver, it speaks the same announcements with the Mac’s own speech synthesizer, just as QUILL on Windows uses SAPI when no screen reader is running.
- Read Aloud and earcons work on macOS. Live Read
Aloud plays through
afplay, so Piper, Kokoro, ElevenLabs and the system voices all speak, and the earcon volume slider works too. - The accessible WebView behind the chat, the Markdown and HTML preview, the About box and the update dialogs reads correctly with VoiceOver, as it does with NVDA and JAWS on Windows.
Keys on a Mac
- Function keys and the Fn key. Many of QUILL’s
shortcuts use the F keys (
F3for Find Next,F7for spell check,F8for selection,F6for moving between regions). On a stock MacBook those keys do system things (brightness, Mission Control, media) unless you hold Fn, or turn on Use F1, F2, etc. keys as standard function keys in System Settings > Keyboard. So you do not have to, Find Next and Find Previous also work on the usual Mac keys,Cmd+GandCmd+Shift+G, with no Fn. You can change any key in the Keymap Editor. - Mac-specific defaults. A few Windows keys would
clash with macOS system shortcuts, so they are different on a Mac:
Replace is
Cmd+Alt+F(notCmd+H, which is Hide), Pop Mark isCmd+Alt+M(notCmd+M, which is Minimize), and Select Chunk isCmd+Alt+Space(notCmd+Space, which is Spotlight). These may still change. If one clashes with something on your Mac, change it in the Keymap Editor and tell us through Help > Get Help from Support. - Back / Forward Location on macOS uses
Cmd+[andCmd+], so it does not clash with VoiceOver’s word-by-word reading onOption+LeftandOption+Right. Windows keepsAlt+LeftandAlt+Right. - Keymap profiles respect your platform. The built-in keymap profiles leave the platform’s own keys for quitting, back and forward, and switching documents alone, so on a Mac you get the right Cmd keys instead of Windows ones.
- Help menu registered as system Help. The Help menu
is the macOS system Help menu, so the usual
Cmd+?Help shortcut works.
Menus, files and the rest
- A real macOS Window menu. The Window menu (Next,
Previous, Close Other, Send to Tray) is the macOS Window menu, so it
sits in its usual place just left of Help, together with the standard
Mac items: Minimize (
Cmd+M), Zoom, Bring All to Front and the list of open windows. - Standard Mac behaviors. Preferences and About are where a Mac puts them: QUILL > Settings and QUILL > About Quill. Preferences is the standard macOS menu entry, so it appears in the QUILL app menu as you would expect.
- Tray status messages say “menu bar” on macOS. When QUILL goes to the background, comes back, or switches tray mode, the message names what you actually have: “menu bar” on macOS, where it is a menu-bar status item, and “system tray” on Windows.
- Setting QUILL as your default editor takes effect
immediately. After registering the file types (through
dutiif you have it; install it withbrew install duti), QUILL refreshes the Mac’s LaunchServices database, so Finder opens your files in QUILL straight away instead of after a restart. - The default-folder hint shows a Mac path on macOS.
In Settings, the empty default-folder box suggests
e.g. /Users/YourName/Documents (blank = last used). - macOS-safe launch paths. Opening a file, showing its folder, launching an installer or playing a voice sample all use the Mac’s own way of doing it.
- Your secrets stay off the command line. API keys,
SSH passphrases and other secrets QUILL keeps for you go into the macOS
Keychain through the native Security framework, so the value never
appears on a command line where other programs could see it. On a Mac
without that native link, QUILL falls back to the
securityCLI and warns you the first time, because that way does put the value on the command line. - On-device AI. Ask QUILL uses Apple Foundation Models (Apple Intelligence) on a Mac that supports it, with no model to download and nothing sent to the cloud. The GGUF and llama.cpp model picker is hidden on a Mac because Apple’s model is used instead. You can still connect Ollama or a cloud service if you prefer.
- Signed and notarized. Release Mac builds are signed
with a Developer ID certificate and notarized by Apple, so Gatekeeper
opens them without warnings. QUILL comes as a
.app(and a disk image).
Translation and Community Localization
QUILL can show its menus and dialogs, and speak its messages, in other languages. The translations come from people in the community, the same way NVDA’s do, and you are welcome to help.
Switching QUILL’s display language
Once a translation is installed, you can switch the language QUILL uses for its menus, dialogs and spoken messages:
- Open Tools > Writing and Language > Change Display Language….
- Choose a language from the list, or System default
to follow your operating system. Only languages with a finished
translation (an
.mofile) are listed, so you never pick one that has nothing to show. - QUILL saves your choice and uses it for new spoken messages straight away. Restart QUILL so every menu and dialog reloads in that language.
The first community translation is Italian, by Elena Brescacin: menus, dialogs and spoken messages, with anything not yet translated shown in English. QUILL keeps growing, and the translation grows with it. Pick Italiano from the list and QUILL speaks Italian straight away, with every menu following after a restart. More languages appear in the list as community translations arrive.
How the translation pipeline works
QUILL uses the standard GNU gettext pipeline
(POT > PO > MO) for every string you see or hear, the
same model NV Access uses for NVDA. If you have translated NVDA, JAWS
scripts or other accessibility software before, it will feel
familiar.
- Strings are marked in the source code with
_()for ordinary strings,ngettext()for plural forms, andlazy_gettext()for strings that must be translated when they are shown, not when the program loads. - The POT file (
quill/locale/quill.pot) is the master template, made automatically bypybabel extract. It holds every translatable string in QUILL. - PO files
(
quill/locale/<lang>/LC_MESSAGES/quill.po) hold the actual translations for each language. This is where translators work. - MO files are compiled from the PO files by
pybabel compile. They are the files QUILL loads when it runs. - QUILL picks the language when it starts, from your
languagesetting (a BCP 47 tag such asfr,esorpt-BR). If it is blank, QUILL follows the operating system’s language.
Speech strings, the text a screen reader will say instead of text
shown on screen, are marked with a # SPEECH: comment in the
source code. When you translate one, keep the natural spoken rhythm as
well as the meaning.
Contributing translations
To contribute a translation:
- Fork the QUILL repository and create a branch named
l10n/<lang>(for examplel10n/fr). - Copy
quill.potinto your language folder asquill/locale/fr/LC_MESSAGES/quill.po. - Translate each
msgidinto amsgstr. Leavemsgstrempty for anything you have not translated yet; English is used instead. - Run the translation check to make sure the
placeholders are intact and see how complete it is:
python -m quill.tools.check_translation - Open a pull request. The Translation Coordinator reviews it and merges it when it is approved.
Tools that help:
- Poedit: a free, accessible PO file editor with spell check.
- Virtaal: a lighter alternative.
- Crowdin (once QUILL’s project is live): translation in the browser, with a review queue.
Do not translate:
- Placeholder tokens such as
{name},%(count)sand{path}. Leave them exactly as they are in themsgid. - ARIA role names such as
"dialog","button"and"listbox". They are passed to the accessibility system unchanged. - Internal command names such as
"file.open"and"glow.audit". Nobody sees them. - File extensions and format names:
.docx,EPUB,PDF.
Translation roles and responsibilities
QUILL uses four roles, following NV Access community practice:
| Role | Responsibilities |
|---|---|
| Translator | Translate strings from English into the target language. |
| Proofreader | Review translations for accuracy, tone, and natural language flow. |
| Language Coordinator | Own quality for one language; approve or request changes from translators and proofreaders. |
| Translation Coordinator | Oversee the whole translation project, manage Crowdin, coordinate string freeze, credit contributors. |
To become a translator or proofreader, open a GitHub issue with the
label translation and say which language you would like to
work on.
Speech string guidelines
Strings meant for a screen reader are marked # SPEECH:
in the source code. When you translate them:
- Put spoken clarity before literal accuracy. A string that sounds right read aloud matters more than one that is grammatically perfect but awkward to hear.
- Match the rhythm. Keep short speech strings short. People hear these dozens of times a session, so every extra word costs them time.
- Keep the emphasis. Where the English uses word order to show what matters most (for example, the key word comes first), try to do the same.
- Test with a screen reader. If you can, listen to your strings with NVDA or JAWS before you send them.
- Ask if you are unsure. Open a GitHub issue tagged
translationandspeechif you are not sure how a speech string should be adapted.
Strings are frozen before each release candidate. No new strings are added after the freeze, and translators have a two-week window to finish their language before the release is built.
What you learned, and where to go next
You can now choose a feature profile and fine-tune single features, pick a keyboard pack, change any key in the Keymap Editor, and put everything back with a factory reset. You know the everyday preferences, how to find any setting by typing a word or two, how to carry your settings to another computer, how QUILL reopens your last session and starts with Windows, and how task recipes and working modes change several settings at once. You also met the power tools, Quillins, QUILL on a Mac, and how to change or help translate QUILL’s language.
To practise, open Help > Tutorials…
(Ctrl+Alt+F1) and try “The QUILL key” and “Make QUILL the
size you need”. For a longer walk-through, read Own
the keyboard on the website.
Next, Chapter 13, Keeping your work safe, shows how QUILL protects your documents and what to do when something goes wrong.
Chapter 13: Keeping your work safe
This chapter is about the things QUILL does so you do not lose work: saving snapshots as you type, keeping every earlier save, offering your text back after a crash, and asking before anything is thrown away. Most of it runs on its own, and you never have to think about it. Read it once so you know the safety net is there, and come back when something has gone wrong and you want to know what your choices are.
Trust, Recovery, Sessions, and Safety
QUILL takes recovery and your control over your own work seriously. Here is the short version before the details:
- Autosave snapshots your documents on a timer, and a backup copy is taken just before each save.
- Every save also keeps a restore point, so you can bring back any earlier version, days or weeks later.
- If QUILL closes unexpectedly, the next launch offers your unsaved work back.
- If your screen reader stops, QUILL saves everything at once and keeps running.
- A question that would destroy something always has No as its default.
- Safe mode, safety advisories and update notices are there for the rare day something is not right.
The rest of this chapter takes these one at a time, everyday things first.
Autosave and backups
QUILL autosaves at a timed interval and keeps backup snapshots. It skips a write when nothing has changed since the last one. The autosave is written in the background, so even a large document is snapshotted without a pause in your typing.
When the disk is full
This needs its own explanation, because getting it wrong once cost somebody a document.
QUILL writes your text in three places: the file itself when you save, a backup copy taken just before that save, and an autosave snapshot on a timer. Only the first of those is your document, so QUILL follows four simple rules:
- A backup can never stop a save. The backup is there to protect you from a bad save, so a failed backup must not cancel the save. If the backup cannot be written, QUILL says “Could not write a backup; saving anyway” and saves your file.
- A failed save is explained in words you can act on. You will not hear “[Errno 28] No space left on device”. You will hear “The disk is full. QUILL could not save notes.md. Free some space and try again; your text is still open and unsaved.” A file or folder that is read-only, or held open by another program, gets its own message pointing you at File > Save As.
- A failed save never closes the window. If you choose Save on the closing prompt and the save fails, the close is cancelled and QUILL tells you why, so you can free some space or save somewhere else. Closing a second time goes ahead, so the window can never be trapped open, but you will have been told first.
- Autosave says when it has stopped. If autosave failed quietly, your crash-recovery net would be gone and nothing would tell you. After two failures in a row, QUILL says once: “Autosave paused: the disk is full. Your work is not being snapshotted.” It goes quiet again as soon as autosave works.
Backups are written the same way autosave snapshots are: completely or not at all, so a half-written backup can never be the thing you restore. They are always written as UTF-8, so a document QUILL opened in a narrower encoding still backs up after you type an accented character. Backups made by earlier versions still restore normally.
Restore points, bring back any earlier save
Every time you save, QUILL quietly keeps a snapshot of the document.
To get one back, choose File > Restore Previous
Version… (Ctrl+Alt+Shift+E). The list reads in
plain language, newest first, for example “Today at 4:12 PM
- 2,341 words“.
- Open File > Restore Previous Version….
- Arrow to the version you want.
- Choose one of the two buttons:
- Restore puts that version in the editor in place of your current text. Your current text is saved as a restore point first, so you can undo a restore the same way. The document is marked modified, so nothing touches the disk until you save.
- Open as Copy opens the earlier version as a new untitled document and leaves your current one exactly as it is. This is the one to use for comparing, or for rescuing a single paragraph.
A few details worth knowing:
- Saving unchanged text stores nothing extra. Snapshots are based on content, so identical saves cost nothing.
- Keeping a snapshot can never be the reason a save fails. If the disk is full, your save still completes; QUILL just logs that the snapshot was skipped.
- History thins as it ages: everything from the last week is kept, then one version per day for a month, then one per week. The newest five versions are never removed.
- Restore point disk limit (MB) in Preferences caps how much space one document’s history can use: 200 MB by default.
- Keep restore points when saving turns the feature off entirely.
- You can change the key in the Keymap Editor, where the command is
listed as Restore Previous Version
(
file.restore_previous_version).
How the safety nets fit together: undo (and persistent undo) covers the current editing session, backups keep a copy of what was on disk just before each save, and restore points are the long-term history, any earlier save, across restarts. You never have to choose between them. They all run at once.
Persistent undo
When persistent undo is turned on (Enable persistent undo, on the Editing page of Settings), QUILL keeps the undo history of saved files from one session to the next, so you can still undo yesterday’s change after reopening the file. QUILL spaces out those writes so the feature stays practical on large documents.
Recovery
If QUILL closes unexpectedly, it can offer your work back as a recovery snapshot the next time you start it.
Two settings shape what it offers. Both are shared with QUILL Lite, so the answer is the same in either editor.
- Offer untitled unsaved work
(
recover_untitled_documents) is on by default. A window that never had a file is where a lot of real work starts, so it is offered back like any other. Turn it off and only documents that had a file are offered; the copies of untitled ones are deleted, not kept, since nothing would ever offer them to you. The setting’s own description says so. - Days of unsaved work to keep
(
recovery_keep_days) is 30 by default. Only the previous session’s work can ever be offered back, so an older copy can never be reached and just takes up space. One real install had eighty-six days of them. Set it to 0 to keep everything for ever.
Identical copies are folded into one before you are asked anything. That is how “unsaved work from 69 documents”, sixty-seven of which were the same few characters left behind by repeated crashes, becomes a list of three you can actually read.
Two windows can appear at startup: one about unsaved work and one about last session’s documents. Both have a read-only What this would do field. Tab to it and read it with the arrow keys. It names every row, says how much text it holds and when it was written, and then says exactly what each button would do with the boxes checked as they are right now, including which rows would be left alone. It is rewritten every time you check or uncheck a row, so it always describes the window as it is.
After an unclean exit, Crash Recovery and Email Support
If QUILL closed without an error report, after a freeze, a power cut or a forced close, the next launch shows Crash Recovery, which offers your unsaved work back. Its Email Support button (it used to say “Send Bug Report”) writes a message to support for this kind of exit too:
- Press Email Support in Crash Recovery.
- Your mail program opens with a message to support@community-access.org. It contains QUILL’s version, platform and screen reader, your last commands, any “the UI stopped answering” lines from the log (listed first), the saved crash traceback when there is one, and a short, redacted tail of the newest log.
- Read it, add a sentence about what you were doing, and send it from your mail program.
Crash Recovery closes once the mail program has opened. If no mail program answers, the report is on your clipboard and Crash Recovery stays open so you can still restore your work.
When QUILL crashes, emailing a crash report
When an error stops QUILL, it first saves a local crash file, then offers to email a redacted report to support.
- A dialog titled Report Crash appears. Focus starts in the first text field.
- The Report preview is a read-only panel showing exactly what the report says: QUILL’s version, whether it is portable, your screen reader, the active document’s name and encoding (never its text or folder), the last ten commands you ran, and the last frames of the error. Personal data, file paths and anything shaped like a password or key are removed before the preview is built.
- Fill in any of the three optional fields: What were you doing when this happened?, What command do you think triggered it? and Expected behaviour. Each is cleaned the same way before it is added, so something you paste by accident does not leave your machine.
- Choose one of the three buttons:
- Email support (
Alt+E) opens your own mail program with the report written and addressed to support@community-access.org, the subject starting “Crash report”. Nothing is sent until you press Send there. With no mail program, the report goes to your clipboard and QUILL tells you the address to write to. - Copy to clipboard (
Alt+C) puts the same redacted report on the clipboard so you can paste it into an email yourself. - Don’t send (
Alt+D, or Escape) closes the dialog and sends nothing.
- Email support (
Whichever button you choose, the local crash file is kept in the
crash-reports folder of QUILL’s data folder. **Tools >
Customize and Support
Open Diagnostics Folder** takes you near it.
If you do not want the dialog at all, turn off Settings > General > Offer to email crash reports to support. The local crash file is still saved.
If your screen reader stops, your work is already safe
QUILL keeps an eye on the screen reader it found at startup and notices if it disappears while you work. One missed check is ignored, so restarting JAWS or NVDA never sets off an alarm. When the reader is confirmed gone, QUILL straight away saves a snapshot of every open document to autosave, then explains what happened through whatever can still speak: another running screen reader, or QUILL’s own built-in voice. The event is also recorded in Notifications, so if you heard nothing at the time, the explanation is waiting for you.
QUILL does not shut down when this happens. Your documents, your unsaved work and the application itself all keep running. Restart your screen reader whenever you are ready, and QUILL announces when it hears from it again.
The same rule holds everywhere in QUILL: anything that closes QUILL or cuts back what it can do, without you asking, must save your work first.
The default answer to a destructive question is No
Every question in QUILL that would destroy something (delete a
recording, clear all copy tray slots, remove a component, reset
settings) has No as its default button. Pressing Enter
out of habit can never cost you data. Choosing Yes is always something
you do on purpose, with Tab or Alt+Y. QUILL’s build checks
every new dialog for this, so it stays that way.
Closing every tab but this one
Window > Close Other Documents
(Ctrl+Shift+F4) keeps the tab you are in and closes the
rest. QUILL Lite has the same command on the same key.
When one of those tabs has unsaved changes, you are asked about it. The question has five answers:
- Save and Don’t Save apply only to the tab in front of you.
- Save All and Don’t Save Any settle every remaining tab at once.
- Cancel stops the whole thing and tells you how many tabs closed before you stopped it.
The question also says how many more tabs are waiting, so you know at the first prompt whether this is one more keystroke or sixty-seven.
Enter answers Save, never one of the two that lose work. If a save fails, the closing stops there; a failed save is never taken as permission to throw the document away. After that, “Save All” no longer applies until you choose it again.
Errors that tell you what to do
A sighted person can glance at the failing file or dialog and see the
problem. Without sight, the error message has to carry the whole story,
and the next step too. QUILL’s messages are being written to that
standard. Messages that carry a support code (the
[QUILL-...] prefix) increasingly end with what to do, for
example:
- “Install Pandoc from Help > Download Optional Components to convert this format.”
- “Check the address, credentials, and connection under File > Manage Remote Sites.”
- “Check your AI provider and key in the AI Hub, or switch to a local model.”
When you report a problem, include the code. It tells us exactly which failure you hit, with no back-and-forth.
The same goes for things QUILL declines or trims:
- The command palette says why a command is unavailable, and a menu item turned off by a safety advisory carries the same reason in its help text.
- AI features tell you when they worked from less than you gave them. If your document had to be trimmed to fit the model, Ask Quill and Document Q&A say exactly how much of it the answer used.
- QUILL never quietly changes which AI engine answers you. If your provider could not be reached and the chat started on the on-device model instead, it says so the moment the chat opens. If a call fails and the other kind of engine could take it, QUILL offers the switch. It never makes the switch for you, and it always says when a switch would send your text to the cloud.
Sessions
Sessions are best thought of as workspace snapshots. A session remembers the documents you have open and which tab is active, so you can reopen that exact set later. If you know VS Code workspaces, a QUILL session is a simpler, document-focused version of the same idea. You can:
- save your current workspace,
- reopen it from Recent Snapshots,
- switch quickly among the open documents in the current workspace group.
Sessions help when one writing job spans notes, references, drafts and generated reports.
Marks vs bookmarks (and the ring)
QUILL has two ways to jump back to a place, and each has its job:
- Bookmarks are named jump points. They are easy to list, and best for places you will come back to by name, again and again.
- Marks are temporary jump points kept in a ring: a rolling stack of your recent mark locations, for fast back-and-forth while you edit.
Use bookmarks for places you want to keep. Use marks while you are moving around and reshaping text. Chapter 6, Moving around and finding things, has the keys for both.
Trusted locations
Trusted locations cut down on repeated prompts when you often work from the same folders. They help most in document review and in workplaces where many files come from the same shared places.
Safe mode
Safe mode opens QUILL with optional extras turned off: AI, the watch
folder and Quillin contributions. If a session has gone wrong or QUILL
is behaving strangely at startup, safe mode is a good first step. To use
it, start QUILL with the --safe-mode flag, or set the
environment variable QUILL_SAFE_MODE=1 before
launching.
The Experimental tab
Settings > Experimental holds features that work but are still growing up. Each one has its own switch, and they all sit behind one master switch. Controls that are turned off leave the Tab order completely, so until you change anything the tab is a single checkbox and nothing else.
- Enable experimental features (the master switch for everything on this tab) is the first control on the tab. It governs everything below it. Until it is checked, QUILL ignores every experimental option and its control is disabled (Tab skips it), so an accidental change can never affect the editor.
- GLOW accessibility review and repair (experimental) turns on the Tools > GLOW menu (see “GLOW Workflows Inside QUILL”). It takes effect when you press Apply, with no restart.
- WordPress publishing connections (experimental) turns on the read-only publishing tools in the File menu: save a WordPress connection, verify it, browse your site’s posts and pages, and open a remote item in the editor. It only brings things in. The send and publish half stays locked while it is reviewed, so nothing can be published from QUILL whatever this switch says.
- Read the document aloud in your browser (experimental) turns on the browser reader page described under Read Aloud.
- Table Studio, accessible table and CSV editing (experimental) turns on Table Studio and Open CSV in Table Studio in the Tools menu. It takes effect when you press Apply, with no restart.
The pattern to remember: one master switch for the tab, and one switch for each experiment, so nothing changes by accident.
The editor experiments that used to live on this tab have graduated. QuillRichEdit is now QUILL’s one editor, and the braille fix it carried moved to Settings > Braille Mode, where it is on by default. See “One Editor, Every Format” in Working with different document types.
Notifications and updates
QUILL keeps a notification center for update and workflow events, so a message you missed is still there later. Before offering a download, an update check verifies that the update information is signed.
Safety advisories, temporarily turning off a feature
Very rarely, if a serious problem is found in a feature after release, QUILL can temporarily disable just that feature, without waiting for a new version.
- The advisory travels inside the same signed update information that Check for Updates already verifies. Nothing new is sent from your computer.
- It can only ever turn a feature off. It can never turn anything on or run anything.
- The affected command is dimmed everywhere it appears. The menu, the command palette and its keyboard shortcut all stop it, and a plain notice tells you it was turned off by a safety update and why.
- If other features build on the one that was turned off, they are turned off too, so you never get a half-working tool.
- Everything comes back on its own once a fix is published.
- The lock is remembered on your computer, so it still applies when you are offline, and it reaches portable copies as well.
If you are an administrator who must use a feature an advisory turned
off, you can override all such locks for one session: set the
environment variable QUILL_IGNORE_FEATURE_LOCKS=1 before
launching QUILL.
Your settings across updates
QUILL remembers only the choices you have actually changed. When you
update, your customizations are kept, brand-new options start at a
sensible default, and an improved default reaches you automatically
unless you had changed that option yourself. The first launch after an
update tidies your old settings file once, and writes a backup to a
migration-backups folder first, so the change can always be
undone. Your documents, autosaves and recovery data are never
touched.
The Upgrade notice setting (in Administration) chooses how QUILL tells you this happened:
- Brief announcement, the default: a short spoken and status-bar message.
- Summary with Undo: a small dialog listing what changed, with a one-click Undo for any shortcut correction.
- Silent.
A backup is saved whichever you choose. You can also undo a recent shortcut change at any time during the session with the Undo Recent Shortcut Change command.
A clean start after an update
The first time you launch a freshly updated QUILL, it clears out old log files and crash reports from earlier runs, so you start with a clean slate. This happens once, on its own, and never removes your documents or settings.
Application Status page
Help > Status Page opens a window you can leave open in the background while you keep working. It has four tabs:
- Status: an Overview (version, active profile, how many background tasks are running, queued notifications), plus detail rows for QUILL Whisperer and the Read Aloud engine and voice settings when those features are turned on.
- Tasks & Downloads: one live row per background job, with its name, status, progress, start time and finish time. Batch conversions, model downloads and other long jobs report their progress here.
- Features: every feature ID QUILL knows about, its display name, its category, and whether it is on right now.
- Actions: a plain-text log of recent actions QUILL has taken.
The three list tabs are ordinary lists. Arrow up and down between rows, use Left and Right to move between columns, and Tab to reach the Refresh and Close buttons. The page refreshes itself every two seconds, so downloads and tasks stay current without you pressing Refresh, and the automatic refresh leaves your place alone: the row you arrowed to stays focused.
QUILLBee’s tip: Something running and you want to know how far along it is? Leave Help > Status Page open and switch to it with
Alt+Tabwhenever you like.
What you learned, and where to go next
You now know that autosave, backups and restore points run together, that File > Restore Previous Version… brings back any earlier save, and that QUILL offers your unsaved work back after a crash or a lost screen reader. You know that a destructive question defaults to No, how to close every tab but one, where safe mode and the Experimental tab fit, and what a safety advisory does. The Status Page shows what QUILL is doing in the background.
For a guided version, open Help > Tutorials…
(Ctrl+Alt+F1) and take “The safety net” in the Living with
it track.
Next, Chapter 14, Projects, notes and the QuillVille family, covers the bigger places your writing can live.
Chapter 14: Projects, notes and the QuillVille family
This chapter is about the work that is bigger than one document. It starts small, with sticky notes you can jot from anywhere in Windows, and grows from there: notebooks of related files, a binder for a whole book, a vault of linked notes, keeping your work in step between computers, posting to Mastodon and working with git. It ends with the other apps in the QuillVille family. Dip in when you need a piece of it; none of it changes how ordinary editing works.
Sticky Notes
Sticky notes are the quickest way to catch a thought before it gets away. Navigate > Sticky Notes > New Sticky Note… (or its system-wide hotkey) opens a small editor with a title and a body, from anywhere. Navigate > Sticky Notes > Sticky Notes… manages the whole collection.
The Sticky Notes Browser
Navigate > Sticky Notes > Sticky Notes Browser… is the fast way back to a note you wrote last week.
- Open the browser. Focus starts in a search field.
- Type anything. The list below filters as you type, matching titles and bodies (upper or lower case does not matter), newest note first.
- Press
Downto move into the results and arrow through them. - Press
Tabto reach a read-only multi-line preview of the selected note, so you can read the whole thing without opening it. - Press Edit (or Enter on a note, or double-click) to open the full editor. Close (or Escape) dismisses the browser.
Every control announces itself by name.
Give the browser a global hotkey (next topic) and it opens from anywhere in Windows. QUILL restores its own window first, so the browser always appears, even when QUILL was minimized to the tray.
Global Hotkeys
Global hotkeys let a key combination work system-wide: in your browser, your mail client, anywhere, without switching to QUILL first.
Assigning a global hotkey
- Open Tools > Global Hotkeys….
- Arrow to a command and press Assign….
- Press the combination you want. It must include Ctrl or Alt, because a bare key would swallow your normal typing everywhere.
Clear removes an assignment. If you assign a key that another QUILL command already holds, it moves over cleanly. If another application owns the key, Windows refuses it. QUILL tells you which binding failed, and that binding simply stays inactive until you pick something else.
Show or hide QUILL (Ctrl+Alt+Shift+Q)
QUILL comes with one global hotkey already set.
Ctrl+Alt+Shift+Q tucks the window into the system tray when
it is showing, and brings it back, focused, when it is hidden, from
wherever you happen to be. You hear “hidden to the tray” or “shown”.
Hiding never stops anything QUILL is doing.
It is an ordinary entry in the Global Hotkeys list, so you can change
it or clear it like any other. If some other program already owns
Ctrl+Alt+Shift+Q, that combination stays theirs and QUILL
leaves it alone; pick a different one in this dialog.
Quill Radio and Quill Cast have the same convenience on keys of their own, so they never clash: Quill Radio uses Ctrl+Alt+Shift+R and Quill Cast uses Ctrl+Alt+Shift+F12. Quill Weather, Quill Converter, Quill Media Player and Quill Inkwell have no key until you choose one, in that app’s File > Show and Hide Key…, and they will not let you choose a key another QuillVille app already uses. That is handy for apps that live in the tray (Quill Weather watching for alerts, Quill Radio playing in the background), because each is then one keystroke away and you never have to hunt for the tray icon.
What can be a global hotkey
Only these commands can be bound:
- Radio: Play/Pause, Stop, Mute/Unmute, Volume Up, Volume Down
- New Sticky Note
- Sticky Notes Browser
- Post to Mastodon. This opens the compose window; nothing is ever sent by the hotkey itself.
- Show/Hide QUILL to the tray. This hides the window to the system tray, or brings it back and focuses it.
Nothing that edits a document, deletes anything, or acts out of sight can ever be a global hotkey, no matter what a settings file says. Commands that open a window restore QUILL first. Media commands act right where you are. Every press speaks its result (“Radio paused”, “Note saved”), so you know what happened even when QUILL isn’t visible.
If you already had a system-wide sticky-note hotkey, it keeps working as it always has unless you reassign it here.
Global hotkeys are Windows-only, because macOS has no equivalent. Every one of these commands is still on the menus and in the command palette on every platform.
Notebooks
A Notebook is a named collection of documents that
belong together: a novel’s chapters, a research project’s notes, a
software project’s specs. A notebook lives in a single
.quillnotebook file. It remembers which files are entries,
where you left the caret in each, any goals you have set, and saved
snapshots of which entries were open.
Creating a Notebook
- File > Notebook > New Notebook creates an empty notebook and asks for a name.
- File > Notebook > New from Folder imports a whole folder at once. QUILL walks the folder and every folder inside it, and creates one entry per supported file. You can filter by extension; the default set covers Markdown, plain text, HTML, and source code.
Moving between entries
With a notebook open, Navigate > Notebook > Go to Entry… opens a tree of entries, grouped by subfolder. Select an entry and press Enter (or the “Open Entry” button) to open that file.
Navigate > Notebook > Go to Heading… reads every entry file and gives you a two-level tree of their headings.
The Entries panel
Turn on View > Show Entries Panel to dock a panel on the left side of the window. It shows the notebook name, today’s goal progress, a filter field, and the full list of entries. Type in the filter field to narrow the list by title.
Goals
Each notebook can carry a daily word-count goal, stored in its
.quillnotebook file. When the goal is on, the
Notebook Goal cell in the status bar shows your
progress, for example “1,234 / 500 words”. When you reach the target it
changes to “Goal reached.”
Versions
A version is a named record of which entries were open at one moment. Choose File > Notebook > Save Version…, type a name (QUILL suggests “Version 1”, “Version 2” and so on) and press Enter. File > Notebook > Manage Versions… lists every version you have saved, with the date, and has Rename and Delete buttons. Restore Version… opens the same list. Versions are not autosave recovery. They are saves you make yourself, like checkpoints for a writing session.
Don’t confuse them with the File > Snapshots menu, which used to be called “Workspace Snapshots”. That one saves and restores the set of documents open in the editor: a lightweight workspace for any files, not tied to a notebook. Notebook versions keep the open entries of one notebook.
A notebook in WSL or on a network share
The Open Notebook dialog is the standard Windows file dialog, so it reaches anywhere Windows can, including the WSL file system and UNC network shares. There is no “WSL” button, because Windows shows those places itself.
To open a notebook stored in WSL, type or paste the UNC path into the
dialog’s address bar, for example
\\wsl.localhost\Ubuntu\home\you\writing\my.quillnotebook
(the older \\wsl$\Ubuntu\... form also works). QUILL keeps
whatever path you give it, so the notebook and all its documents can
live in WSL. You do not need SSH to reach your own WSL files; SSH is
only for files on a separate Linux machine you want to edit
remotely.
Two things to expect: reading and writing across the WSL bridge is slower than on a Windows drive, and live refresh when a file changes may behave differently there. For a notebook you edit heavily, a Windows path is snappier.
Story Studio
Story Studio organizes a whole book. Tools > Story Studio… (also in the command palette as Story Studio) opens a binder for a project folder: a tree of your whole project that you move through with the arrow keys.
- Manuscript holds your chapters and scenes, taken from the Markdown headings in your manuscript files. Press Enter on a chapter to open its file at that heading.
- Characters, Places, Plot threads, Research, Brainstorm have one entry per element file. Press Enter to open it.
Two buttons act on the binder:
- Edit details… works on a selected element. It opens a form for that element’s fields: a character’s Role, Goal, Motivation and Arc, a plot thread’s Status, and tags. The values are saved as front matter at the top of the element’s file. Blank fields are left out, and any keys you added by hand are kept.
- Compile manuscript… joins every manuscript file, in order, into a new document, with the front matter taken out. Use File > Export on that document to save it as Markdown, HTML, Word, DAISY, and more.
A Story project is just a folder of plain-text files plus a small
project.quillstory.json file that records the binder order
and the element groups. If you delete that file, none of your writing is
lost. Story Studio is optional and changes nothing about ordinary
editing.
Vault
Tools > Vault turns a folder of notes into a linked-notes workspace: links and backlinks, search, tags, embeds, templates, daily notes, and a website export. It is built for the keyboard and the ear, with lists you arrow through instead of a visual graph. Until you open a vault, nothing about ordinary editing changes.
A vault is just a folder of Markdown files plus a small
.quill cache. Delete the cache and nothing is lost. Every
command here is in the command palette, and you can give any of them a
key in the Keymap Editor.
Getting around your notes
- Open Vault… Choose a folder of notes. QUILL scans and indexes it, remembers it, and says “Vault name: N notes, M links.” You do this once per notes folder.
- Follow Wikilink Put the cursor on a
[[Note]]link and run this to open that note. A[[Note#Heading]]link opens at the heading, and[[Note#^block]]at the block. If the note does not exist yet, QUILL offers to create it. If several notes share the name, QUILL asks which one; it never guesses. - Show Backlinks lists every note that links to the one you are in, each read with the sentence the link sits in. QUILL tells you how many notes link here. Press Enter on one to open it at that mention.
- Note Neighborhood gives you both directions in one list: the notes this one links out to (marked with a right arrow) and the notes that link back to it (marked with a left arrow), so you can step through everything connected to where you are. Enter opens the one you land on.
- Unlinked Mentions finds places in your other notes that mention this note by name but don’t link to it yet. Each is read with its sentence, and Enter opens that note at the mention so you can turn it into a link.
- Insert Link to Note… lets you pick a note by title
from a list, and inserts
[[Title]]at the cursor. - Rename Note… gives the current note a new name.
First QUILL tells you how many links in how many other notes point to
it, and asks you to confirm. Then it updates all of those
[[links]], renames the file, and fixes the note’s own top heading, so nothing breaks. Nothing changes until you say yes, and QUILL stops if a note with the new name already exists. - Vault Explorer… is a tree of every note, grouped by folder. Arrow through it and press Enter on a note to open it.
- Complete Link or Tag… Start typing
[[(for a note) or#(for a tag), run this, and pick from a list that narrows as you type. QUILL inserts your choice and, for a link, adds the closing]]. It does the job of a pop-up that appears as you type, but it speaks and holds focus. - Go to Note… jumps to a note. Start typing part of a title and the list narrows as you go, with QUILL speaking the count. Press Down to move into the list, or press Enter to open the closest match.
- Search Vault… searches every note. Type a word or phrase and hear the number of results. Each result reads as its note title, line number, and the matching text. Turn on Regex for pattern searches, or Whole word to skip partial matches. Enter opens a result at its exact line.
Tags, embeds and templates
- Show Tags… opens the tag pane. Filter your
#tags(each shows a note count), open a tag, and get the list of notes that carry it. Nested tags roll up, so#areaalso finds notes tagged#area/sub. - Speak Embed at Cursor With the cursor on an
![[Other Note]]embed, hear the note (or the heading or block) it pulls in, without changing your text. - Resolve Embed Inline replaces that
![[embed]]with the actual content, as one change you can undo withCtrl+Z. - Insert Template… Pick a template from a
Templatesfolder inside your vault. QUILL fills in{{date}},{{time}}and{{title}}, asks you out loud any{{prompt:Question}}it finds, inserts the result, and puts the cursor where you marked{{cursor}}. - Open Today’s Note, Previous Daily
Note, Next Daily Note open today’s dated note
(creating it if needed) and step back and forward through the days.
Daily notes live at
Journal/YYYY-MM-DD.mdby default.
Sharing your vault
- Export Vault as Website… Choose an output folder
and QUILL writes a small website that needs nothing else: one accessible
page per note, your
[[links]]turned into real links between pages, your![[embeds]]filled in, and an index page listing everything. It runs in the background and tells you how many pages it wrote. - Sync Vault If your vault folder is a Git repository with a remote you control, this commits your changes, pulls anyone else’s, and pushes, all in the background. If the same note changed in both places, QUILL lists the conflicts and stops instead of overwriting anything. It is disabled in Safe Mode. The same sync works on any folder, not just a vault; see QUILL Sync below.
- Vault Settings… sets the folder your templates live
in (default
Templates) and the pattern for daily-note file names (defaultJournal/{{date:YYYY-MM-DD}}.md). Leave a box empty to keep the default.
How links work
Write a link by typing [[Note Title]] yourself, or use
Insert Link to Note…. Links are plain text in your
file, with nothing hidden, and they are resolved when you follow them,
export, or build the website.
When you preview a note that lives in your vault,
QUILL shows it resolved: [[links]] read as their titles,
and ![[embeds]] filled in. Every time you
save a note in the vault, its links, backlinks, tags
and search results update straight away, with no need to reopen
anything.
One Editor, Every Format
Every document opens in the same QUILL editor, and it has a real rich text mode. The thing to hold onto: bold means bold, and QUILL speaks your document’s language. The braille fix is on by default in every format; the braille troubleshooting entry in Chapter 11, Accessibility, speech and braille, has the details.
- Writing Markdown (.md):
Ctrl+Bwraps your selection in**, and Insert Heading 2 puts##at the start of the line. - Writing HTML (.html):
Ctrl+Bwraps in<strong>, and headings become real HTML headings. - Writing Rich Text (.rtf): the document opens
formatted.
Ctrl+Bapplies real bold, and Insert Heading 2 applies a real sized heading. The Format menu’s font, size, color, highlight and alignment commands change the actual formatting, and Describe Formatting at Cursor answers from the live document (“Arial, 14 point, bold, centered”). Search, spell check, read aloud, bookmarks, notes and braille all work as in any other document. - Writing plain text (.txt): text stays plain, because that is what a .txt file promises. The first time you press a formatting key, QUILL asks once: treat this document as Markdown, convert it to Rich Text, or stay plain. Your answer is remembered for that document.
- Editing Word documents (.docx): a .docx can open
for real rich editing and save back as a genuine Word file. If the file
holds things QUILL’s editor cannot keep (images, comments, tracked
changes, headers and footers), QUILL asks first. You can open it for
reading and plain editing (the safe default), edit it as Rich Text with
those losses named one by one, or edit a copy. The first rich save over
such a file writes a timestamped backup next to it automatically.
Tables are preserved when you open a Word document for
rich editing: they appear inline as accessible tables, so you can read
them and jump to them with single-key table navigation
(
T).
The Document Format switcher
Format > Document Format… moves the current
document between Plain text, Markdown, HTML, Rich Text (RTF) and Word
(.docx) while you work. You can also press Alt+Shift+F, use
the command palette, or press Enter on the Format cell
in the status bar, which always shows your current format.
Switching to a rich format turns your Markdown headings into real ones. Leaving a rich format warns you first, with a list of exactly what will not survive. A switched document never quietly overwrites its old file: the next save suggests the matching new name.
Every switch is a real conversion. Switching to HTML
writes real HTML (<h1> and
<strong>, not hashes and asterisks under an HTML
label), and switching back reads it in again. Your formatting comes with
you in every direction: headings, bold, italic, underline,
strikethrough, superscript and subscript, font family and size, text
colour and highlight, bullet and numbered lists, links, code spans and
fences, block quotes, alignment, line spacing, indents, spacing before
and after, named styles, page breaks, tables, images and horizontal
rules. Switch out and back as often as you like; you end up with the
document you started with.
Converting to Plain text asks you first. Plain text has no formatting, so there are two fair ways to handle Markdown already in your document, and QUILL won’t guess:
- Remove the markers.
# HeadingbecomesHeading,**bold**becomesbold, and the file is strictly plain. - Keep them as text. The
#and**stay as ordinary characters. A .txt file is allowed to contain them, and plenty of people keep their notes that way.
Escape (or Cancel) leaves the document alone. You are only asked when there is something to ask about; ordinary prose converts without a question.
If rich mode is unavailable
On a system where the bundled macOS bridge or the Windows COM bridge
cannot load, .rtf and .docx documents open converted to editable text,
the classic way, and save back through the same converters. Nothing is
lost, and QUILL says so in the status bar. The Mac app includes
everything rich mode needs; only source installs add it themselves
(pip install "quill[mac]"). If you ever see the converted
fallback on a normal install, please tell us through Help >
Get Help from Support.
Table Studio (experimental)
Turn Table Studio on in the Experimental tab, and Tools > Table Studio… opens a table in a spreadsheet-style grid made for screen-reader users, instead of a wall of pipe characters. One grid does two jobs:
- Table Studio starts a new table you build up cell by cell.
- Open CSV in Table Studio opens a
.csvor.tsvfile straight into the grid. The delimiter is detected for you.
With Table Studio on, opening a .csv from File
> Open and choosing the grid view brings it up in the same
grid.
Moving and editing in the grid
The arrow keys move by cell. Up and Down change rows, and Left and Right move across columns and speak the column heading as you go, so you always know where you are.
- Home and End jump to the first and last column.
- Ctrl+Home and Ctrl+End jump to the corners.
- Page Up/Down move by ten rows.
- F2 or Enter edits the active cell.
- Alt+arrows move a whole row or column.
- Ctrl+Insert adds a row.
- Delete clears a cell.
The same actions are on buttons if you prefer them.
The table menu
Shift+F10 (or the Applications key, or right-click) opens a context menu with every table action in one place: Sort Ascending / Descending by the current column, Insert / Delete / Move rows, Insert / Delete columns, Rename Column Header, Promote First Row to Header (for a CSV whose header row was read as data), and Use First Column as Row Headers.
Headers are stored the standard way:
<th scope="col"> and
<th scope="row"> in HTML, and a proper header row in
Markdown. That way screen readers and other tools understand your
table’s structure.
Finishing a table
Insert as Markdown or Insert as HTML drops the finished table, with its headers, into your document. Save to CSV writes the grid back to a file, so a CSV you opened makes the full round trip.
NVDA and JAWS announce the column as you cross a row. Builds that include the optional native provider give richer cell announcements; without it QUILL uses a built-in fallback, and the feature works either way.
QUILL Sync
QUILL has no sync service of its own: no QUILL cloud account and no QUILL-hosted storage. To carry your work between devices it uses two things that already do the job well, a folder your cloud provider mirrors, and git. Both are optional.
Sync your settings through a folder
- Open Help > Personalise QUILL (or Preferences) and find “Where should QUILL store your data?”. It is the same page the first-run wizard shows.
- Choose “Choose a folder:”.
- Pick a folder that OneDrive, Dropbox, Google Drive or iCloud already keeps in step across your devices, or a folder on a USB drive you carry between computers.
QUILL writes its settings, snippets, dictionaries and keymap there, and your cloud provider or drive carries them to your other computers like everything else in that folder. This is the Data Location setting; there is nothing new to learn.
One important limit: QUILL cannot merge changes made on two devices at once. Don’t run QUILL on two machines pointed at the same synced folder at the same time. Treat it like any shared file, one writer at a time.
Sync a folder with GitHub
Tools > Git and GitHub > GitHub > Sync Folder with GitHub… works on any folder, such as a writing project or a research folder, not just a vault. Point it at a folder:
- If the folder is already a git repository with a remote set up, QUILL commits your changes, pulls anyone else’s and pushes, all in the background, and tells you when it’s done.
- If it isn’t set up yet, QUILL says so plainly and asks first, for
example: “This folder is not a git repository yet. QUILL can set it
up: this runs ‘git init’ in the folder, then adds the remote repository
you provide as ‘origin’. Continue?” Say yes, paste your
repository’s address (for example
https://github.com/you/your-repo.git), and QUILL sets it up and syncs. - If the same file changed in both places, QUILL lists the conflicts and stops instead of guessing. Resolve them yourself (the conflict walker under Local Git helps), then run Sync Folder with GitHub again.
If you already use Sync Vault, this works exactly the same way, for any folder. Both use your own git installation and the credentials it already remembers (an SSH key, or a login your system’s git credential manager keeps). QUILL never asks for or stores a separate GitHub password or token for this. Disabled in Safe Mode.
Publishing
You can share what you write without leaving QUILL. This topic covers posting to Mastodon.
Posting to Mastodon
- Press the QUILL key (
Ctrl+Shift+Grave) thenShift+P, or choose Tools > Share > Post to Mastodon…. QUILL takes your selection, or the whole document if nothing is selected, and opens a compose window. - Edit the text if you like, pick the account to post from, and choose the visibility: Public, Unlisted, Followers only, or Direct. A live character count keeps track as you type.
- Press Post. Your post appears with “via QUILL” as its source.
The compose window also has a Post language picker beside the visibility choice. The default, “Default (instance)”, sends no language, so your server files the post under your account’s default language. Pick a language such as English or Italian to send its ISO 639-1 code, which keeps a post in one language from being filed under another.
The character count uses your account’s real limit on its own server, not the classic limit. QUILL asks the server once per session and remembers the answer, so a server that allows more (for example one with a 9999-character limit) shows the right count and does not block a longer post.
Adding a Mastodon account
The first time you post, QUILL offers to add an account. You can also open Tools > Share > Mastodon Accounts… at any time.
- Choose Add Account…, then enter your server (for
example
mastodon.social) and a friendly nickname. The nickname is what shows in the account picker. - QUILL registers itself with your server and opens your browser. Sign in if needed, approve QUILL, and copy the authorization code your server shows.
- Paste that code back into QUILL. Your account is saved.
You can add several accounts, each with its own nickname, set a default, or remove one (which deletes its saved sign-in from this computer). Your sign-in is kept in the Windows Credential Manager, never in a plain file.
Proofread posts before sending. In Mastodon
Accounts…, select an account and check Spell-check
posts before sending. It is off by default and set per account,
so you can turn it on for some accounts and not others. When it is on,
pressing Post for that account first opens the Spelling
Review (F7) on the post, and the post is sent only after
you finish or skip the review.
Adding someone to a Mastodon list
Mastodon lists let you follow a group of accounts in a timeline of their own. To put someone on one of your lists:
- Choose Tools > Share > Add a User to a Mastodon List….
- Type their handle, such as
@name@server, and press Enter. QUILL looks them up and fetches your lists. - Choose the list from the list QUILL shows you, and press Enter.
QUILL says “Added”, the person and the list. Mastodon only lets you add someone you already follow, so if they are not on the list afterwards, follow them first (View Mastodon Profile, below, has a Follow button) and try again. If you have no lists yet, QUILL tells you; make one on your Mastodon server first.
Reading a Mastodon profile aloud
Open Tools > Share > View Mastodon Profile…
and type a handle such as @name@server. QUILL shows the
account’s name, whether each of you follows the other, a Follow or
Unfollow button, the account’s Bio, and its
Recent posts.
Everything there is tidied for listening. Mastodon sends bios and posts as web markup, which a screen reader would otherwise read aloud tags and all. QUILL turns them into plain text first, so you hear the words. In a link, you hear the part your server chose to show, not the long hidden tail.
Three more changes make the profile easier on the ear:
- A pile of mentions is counted, not recited. A reply
that starts by addressing several people reads as
@alice and 2 more, then the message. You still learn who was addressed and how many, and you reach the first real word straight away. A reply that names one person is left as written. - Decorative characters are removed from names and posts. A screen reader says an emoji’s full name (“grinning face with smiling eyes”) every time it appears, in every row. QUILL strips emoji and similar decoration, and keeps accented letters, other alphabets, quotation marks, dashes and currency signs, which are part of real words. If a display name was nothing but decoration, QUILL uses the plain handle.
- Each post is one line: when, then its first
sentence. For example
3 minutes ago: Actually, that is wrong.The time is in plain words, so there is no timestamp to work out in your head, and the summary stops at the first sentence, so each arrow press gives you one post. A post with a content warning shows the warning instead of the text.
If the account is private, or your server does not share its posts, the profile still opens; the Recent posts list is simply not there.
Local Git
Tools > Git and GitHub > Local Git brings the two hardest parts of everyday git into QUILL as guided steps you can follow by ear: resolving a merge conflict, and reordering commits with an interactive rebase. None of it needs a GitHub account or the network; it works on any git repository on your computer.
Uncommitted changes
Uncommitted Changes… shows every file you have changed since your last commit, split into staged and unstaged. Select a file to read its changes in the same style as Compare Documents, instead of a raw diff. Press Stage or Unstage for the selected file, or Stage All to stage everything.
Resolving a merge conflict
Git marks a conflict with lines of
<<<<<<<, ======= and
>>>>>>>, which sound like line noise
through a screen reader. Resolve Conflicts… walks you
through every conflict in every affected file, one at a time: “Conflict
1 of 3: your version says X, their version says Y.” For each one you
choose:
- keep your version,
- keep their version,
- keep both, or
- type your own replacement.
Move to the next or previous conflict as you go. When you’re done, QUILL writes the resolved file and stages it for you.
The same walker opens on its own if an Interactive Rebase… or a Sync Folder with GitHub stops because of a conflict, so you finish in one place.
Interactive rebase
Interactive Rebase… does the job of
git rebase -i, which normally drops you in a text editor to
reorder and mark up commits by eye. QUILL shows a real list instead, one
commit per row:
- For each commit, choose an action from the dropdown: pick, squash, reword, or drop.
- Use Move Up and Move Down to change the order.
- Press Start Rebase when the plan is right.
If a step conflicts, the conflict walker opens; resolve it and the rebase carries on by itself. Abort Rebase puts your branch back exactly where it started if you change your mind partway.
More Local Git commands
- Switch Branch… lists your local branches and switches to the one you choose. If you have uncommitted changes, QUILL warns you and offers to switch anyway and bring them along. It never quietly throws them away, and it doesn’t just refuse.
- Stash Changes… / Manage Stashes… put your
uncommitted work aside under a name you’ll recognize, then list, apply
or drop any stash later, with no
stash@{2}references to remember. - Who Wrote This Line… runs
git blameon the line your cursor is on and tells you who last changed it, when, and the commit’s summary. - Start Bisect… / End Bisect runs a
git bisectsession as plain questions and answers. QUILL checks out a commit and asks “Is this version good or bad?” Answer, and it narrows the search until it tells you exactly which commit brought in the problem.
None of these commands has a default key, because every letter after the QUILL key is already taken. All twelve are in the command palette and on the Tools > Git and GitHub > Local Git menu, and you can give any of them your own key in the Keymap Editor.
Worktrees
A git repository is normally one folder holding one branch at a time. Switching branches rewrites every file in that folder to match the new branch, keeping the same names and paths.
A worktree is a second folder attached to the same
repository, with a different branch checked out in it. The folders share
one history, one set of branches and one set of stashes, but each has
its own copy of the files. You might have quill on
main and quill-feature-x on
feature/x, side by side.
This matters more when you use a screen reader. Switch branches in place and the document you have open in QUILL is replaced by a different document with the same name. Someone looking at the screen sees the text change. With a screen reader nothing tells you: the paragraph under your review cursor now comes from another branch, in a file that still has the name of the one you opened. With a worktree, nothing under your cursor changes. Moving to other work means opening a different file, which you do and hear, instead of a file quietly becoming a different file.
Seeing what you have
Tools > Git and GitHub > Local Git > Worktrees… opens the list. QUILL says how many worktrees the repository has as the dialog opens, and each row reads as a whole sentence, so there are no columns to arrow across:
- “Main worktree at S:\code\quill, on branch main”
- “Linked worktree at S:\code\quill-feature-x, on branch feature/x”
- “Linked worktree at D:\usb\quill-spike, on branch spike, locked: on a USB drive”
- “Linked worktree at S:\code\quill-old, on branch old, missing from disk, ready to prune”
A worktree that is not on a branch reads as “not on a branch, at commit 3f9a21c”. After any action, QUILL speaks the result, rereads the list and puts focus back on it, so you never have to hunt for your place.
Creating one
Press New Worktree… in the list, or run Local Git: New Worktree… from the command palette to skip the list. The form asks for:
- Folder for the new worktree: where the new folder
should go. Type or paste it, or press Browse…. The
field accepts whatever you paste: a path copied from File Explorer with
the quotes still on, an
%APPDATA%-style path, afile://link, or a leading~. - Branch to check out: a list of your local branches. Branches already checked out in another worktree are left out, because git won’t allow the same branch twice.
- Create a new branch instead: check this to make a brand-new branch here instead of checking out an existing one.
- New branch name and Start the new branch from: used only when the checkbox is checked. Leave the starting point blank to branch from where you are now, or name a branch, tag or commit to start from.
QUILL checks everything before it runs git, and tells you what is wrong if something is: a folder that already has files in it, a folder inside the repository itself (git won’t allow that), no branch chosen, or no new branch name typed.
Opening one
Select a worktree and press Open in QUILL, or just press Enter on the row. QUILL opens documents, not folders, so this means “open the same file from over there”. QUILL works out where your current document sits in its own worktree and opens the matching file in the one you chose. If that file doesn’t exist there (it is new on your branch, or nothing was open), QUILL says so and gives you a file picker already in the worktree’s folder.
Removing, locking and tidying up
- Remove… deletes a worktree’s folder from your disk. The branch stays in the repository; you are removing the folder, not the work. QUILL always confirms first, with No as the default button, so pressing Enter out of habit never destroys anything.
- If the worktree still has uncommitted changes, git refuses, and QUILL tells you so in plain language instead of forcing it. Only then does it ask a second, separate question: discard those changes and remove it anyway? That is two confirmations, never one.
- Lock marks a worktree as “leave this alone”, with an optional reason you’ll hear later in the list. Do this for a worktree on a USB drive or a network share, which git would otherwise treat as a folder that vanished. The button reads Unlock when the selected worktree is already locked.
- Prune forgets any worktree whose folder is really gone from disk and tells you which ones it tidied up. When there is nothing to do, it says “Nothing to tidy up: every worktree is still on disk.”
- The main worktree (the repository folder itself) can never be removed or locked here; those buttons are unavailable while it is selected.
Good to know about worktrees
- A branch can only be checked out in one worktree at a time. That is git’s rule. If you pick a branch that is open somewhere else, QUILL tells you which folder has it so you can open that folder instead.
- A worktree cannot live inside the repository it belongs to. Put it beside the repository folder.
- Removing a worktree with uncommitted changes is refused unless you confirm twice, as above.
- Worktrees need
git, like everything under Tools > Git and GitHub > Local Git, and they are disabled in Safe Mode.
Worktree keys
Neither worktree command has a default key, for the same reason as the other Local Git commands. Both are on Tools > Git and GitHub > Local Git and in the command palette (Local Git: Worktrees… and Local Git: New Worktree…), and you can give either a key in the Keymap Editor.
In the Worktrees dialog:
- Tab and Shift+Tab move between the list and the buttons.
- Up and Down arrow move through the worktrees.
- Enter or Space on a row is the same as Open in QUILL.
- Access keys: Alt+N New Worktree, Alt+O Open in QUILL, Alt+R Remove, Alt+L Lock or Unlock, Alt+P Prune.
- Escape closes the dialog.
In New Worktree:
- Alt+F the folder field, Alt+B Browse, Alt+C the branch chooser.
- Alt+N the “create a new branch” checkbox, Alt+A the new branch name, Alt+R the starting point.
- Enter creates the worktree, and Escape cancels.
Downloading git and the GitHub CLI
The Local Git commands, and the Codespaces and Copilot commands under
Tools > Git and GitHub > GitHub, need
git and gh (the GitHub CLI) on your computer.
QUILL looks for copies you already have first: if git or
gh is already on your system PATH, QUILL uses it and you
need nothing more.
If you don’t have them, Help > Download Optional Components has a row for each:
- Git: Windows only, a portable copy of Git for Windows, about 40 MB.
- GitHub CLI: Windows and macOS, about 14 MB.
Both are exact copies of the official releases, checksum-verified like every other optional component. Download either one and its commands work straight away, with no separate install, no PATH changes and no restart. You can remove either one later from the same dialog; removing one never affects the other, even though they are stored in the same place.
Quill Radio and the QuillVille family
Internet radio is not part of QUILL. It is Quill Radio, a free app of its own in the QuillVille family, with its own window, its own keyboard-first design, and its own complete User Guide (open it from the app’s Help menu). The other companions are the same: Quill Weather, QUILL Audio Studio, Quill Inkwell, and the rest.
They share QUILL’s code, settings and data where that helps you. A station you favorite in Quill Radio, or an abbreviation you add in Quill Inkwell, is the same on both sides. Each app is documented in its own guide, not here.
The QuillVille menu sits just before Help in QUILL’s menu bar, and in every QuillVille app. It is where they all meet: it lists every app in the family, launches the ones you have, and offers to download the ones you don’t. That menu, and this short note, are all QUILL’s guide has to say about them.
QUILLBert found something: he opened the QuillVille menu looking for the way back to his document, and launched a radio station instead. He stayed for three songs. If that happens to you,
Ctrl+Alt+Shift+Rtucks Quill Radio into the tray and the music keeps playing.
What you learned, and where to go next
You can now catch a thought in a sticky note from anywhere, find it
again in the Sticky Notes Browser, and set up global hotkeys, including
Ctrl+Alt+Shift+Q to show or hide QUILL. You know how to
gather files in a notebook, organize a book in Story Studio, link your
notes in a vault, move between formats, build tables in Table Studio,
sync with a folder or GitHub, post to Mastodon, and handle conflicts,
rebases and worktrees in Local Git.
To practise, open Help > Tutorials…
(Ctrl+Alt+F1) and try “QUILL and the apps around it”. On
the website, read Start
an Accessible Vault, GitHub
inside QUILL, Internet
Radio with Quill Radio and Podcasts
with QUILL Cast.
Next, Chapter 15, Help, updates and support, shows where to turn when you are stuck and how to keep QUILL up to date.
Chapter 15: Help, updates and support
This last chapter is about the help that is always within reach. You will meet the Help menu, the F1 key that explains whatever you are standing on, the guided tutorials, and the support form that puts you in touch with a real person. It also covers keeping QUILL up to date. Read it early if you like to know where the safety rails are, or come back to it the first time you feel stuck.
The Help menu
The Help menu is where QUILL turns into a guide. It is not a dead end with an About box at the bottom: most of what is on it does real work. The welcome guide teaches the basics, the keyboard reference shows the keys you actually have, the user guide gives you the full map, diagnostics capture what QUILL is doing right now, and Get Help from Support… turns all of that into a message somebody can answer.
The menu stays steady while you arrow through it quickly. QUILL waits until the menu closes before it updates anything on it.
Guides and references
- Help on This Control (
F1) tells you about whatever you are on. Chapter 2 has the details. - Announce Mode Shortcuts (press the QUILL key, then
Shift+H) says the handful of keys that matter where you are right now: the browse-mode keys while you are in QUILL browse mode, the status bar keys while you are on the status bar, and the everyday editing keys otherwise. - Show Spoken Echo (
Alt+Shift+E) shows the last things QUILL said, so you can read them at your own pace. Chapter 11 has more. - Open User Guide (
Ctrl+Shift+F1) opens this guide as a document inside QUILL. - Open Welcome Guide opens a lighter getting-started document that knows which feature profile you are using.
- Open Keyboard Reference builds a fresh list of shortcuts from the keys that are bound right now, so it always matches your setup.
- Tutorials… (
Ctrl+Alt+F1) opens the guided lessons. They have their own topic, Tutorials, later in this chapter. - What Can I Do Here? gives help that fits what you are doing at the moment.
- Why Don’t I See a Feature? explains why a command is hidden by your feature profile.
Activity and Repeat Last Result (Shift+F9 and F9)
Activity… (Shift+F9) lists everything
QUILL told you in this session, newest first. Each row says what you can
do about it, with these buttons: Retry, Open
Folder, Copy Details and Clear
List.
- If a settings file could not be saved, QUILL says so once, with the reason. Its row has a Retry that saves again and an Open Folder that shows you the folder on disk. When a later save works, QUILL tells you that too.
- Background work that finishes after you closed its window lands here as a row to review, so the result is not lost.
- Nothing in the list leaves this computer, and no document text is ever in it.
Repeat Last Result (F9) says the newest
result that mattered again. That is the last thing QUILL itself told
you, not the last thing your screen reader read. It also names what
Activity offers for that result. The same two keys do the same thing in
QUILL Lite, Quill Radio and QUILL Cast.
QUILLBee’s tip: Missed what QUILL just said because your screen reader talked over it? Press
F9and you will hear it again.
Status, diagnostics and setup
- Status Page opens a live view of what QUILL is doing right now. The Application Status page topic in this guide describes it.
- Save Diagnostics… writes a diagnostics bundle on this computer. You can look through it before you share it with anyone.
- Feature Profiles gathers the profile commands:
- Switch Profile… (
Alt+Shift+P) chooses another profile. - Profile Health Check… gives a short report on your profile: which one is active, and whether any command has been left without a feature to belong to, or switched off when it should not be. Most of the time it ends with “No coverage problems found”. It is mainly useful when support asks you to read it to them.
- Manage Individual Features…
(
Ctrl+Alt+F10) turns single features on and off. - Undo Last Profile Change puts back the profile you had before your last change. If there is nothing to undo, it says so.
- Reset to Essential Profile goes back to the smallest, simplest profile. It asks first, with No already chosen.
- Switch Profile… (
- Personalise QUILL… is the first-run setup wizard. Run it again whenever you like to adjust your keyboard pack, feature profile, remote access, AI, reading and accessibility, writing tools, data location, and startup behaviour. Personalising QUILL walks through it.
- Get Help from Support… (
Ctrl+Alt+F2) opens the support form. When you have filled it in, QUILL hands the message to your own mail program, addressed to support@community-access.org. A person reads and answers it. It is not a public issue tracker, and you do not need an account anywhere. The steps are in Get Help from Support, step by step.
Updates, About and notices
- Check for Updates… checks the signed update list, offers you the download, and can close QUILL so setup runs straight away. Installed and portable copies are handled differently; Checking for Updates explains both.
- About Quill shows the version, publisher details, and the third-party components QUILL uses, each with its license and version. The version has a build number, such as 1.0.0 (build 2): the build number tells you which build of a version you have, and a fix shipped without a new version number comes as a newer build that Check for Updates offers you.
- Open Third-Party Notices opens the full notices document, with tables of those components and the text of every bundled license.
On a Mac
On macOS the Help menu is the system Help menu, so
the usual Cmd+? shortcut opens it. (See Appendix D, Notes
from earlier versions.)
Help, Learning, and Daily Confidence
Nobody remembers everything, and QUILL does not expect you to. There are several layers of help, and you can reach each one from the keyboard.
- F1 gives help on the control that has focus. It works anywhere in QUILL.
- Open User Guide (
Ctrl+Shift+F1) is for when you want the full map. - Open Welcome Guide is for when you want a lighter introduction.
- Open Keyboard Reference is for when you want the exact keys you have now.
- Key Cheatsheet (
Ctrl+F1) gives you a quick list of shortcuts. - What Can I Do Here?
(
Ctrl+Alt+Shift+F1) gives help on the spot, for the document you are in. - Why Don’t I See a Feature? is for when a command seems to have disappeared.
- Why Is This Unavailable? (
Alt+F1) is for something you can see but cannot use. Move to the greyed-out button or menu item and pressAlt+F1, and QUILL tells you why it is turned off.
That last one is worth remembering. When something you expected is missing, it tells you why, usually because your feature profile hides it, so you are not left guessing.
Context-Sensitive Help (F1)
Press F1 on any control in QUILL that can take focus,
and a small help window opens. It tells you:
- The dialog you are in, when you are inside one: its name and a plain summary of what it does, so you always know where you are.
- The focused control: what it is, how it works, and which keys apply to it.
All of that text is in one read-only field, so your screen reader reads the whole thing in one go when the window opens. There are no headings to move past.
From the help window:
- Press Escape, or Enter on Close, to go back to where you were.
- Tab to Open User Guide and press it to jump to the part of this guide that covers the control.
Here is how the Help keys fit together:
| Key | What it does |
|---|---|
F1 |
Help on the control that has focus |
Ctrl+Shift+F1 |
Open the full User Guide |
Ctrl+Alt+Shift+F1 |
Open What Can I Do Here? for the document you are in |
Ctrl+F1 |
Open the Key Cheatsheet |
Shift+F1 |
Open About Quill |
A few things worth knowing:
- In the main editor, F1 tells you the editor shortcuts and some writing tips.
- In dialogs such as Preferences, Find/Replace and Spell Check, F1 names both the dialog and the setting you are on.
- In the Personalise QUILL wizard, F1 on any control explains what that setting does and what you can change later.
- When you use a menu and come back to the editor, QUILL remembers which control had focus, so F1 still talks about the right one.
Personalising QUILL
The Personalise QUILL wizard runs on its own the first time QUILL starts. You can run it again at any time from Help > Personalise QUILL….
It has six short pages, or five if you leave AI writing help off on the Extras page:
- Welcome introduces what the wizard covers.
- Intent is the page that matters most. It asks one question: What kind of writing do you do? and shows a list of seven starting points. Arrow up and down the list. As you move, a large read-only text area below it changes to tell you, in plain English, exactly what you will get if you choose that one. No feature codes, no jargon, and no list of what you will miss out on. Just what you get.
- Extras offers a few optional extras, such as AI writing help, Braille Mode and typing automation. You only see the ones your starting point does not already include. Each is a single checkbox, and checking one adds a sentence to the preview, so you always know what you are agreeing to.
- AI Provider appears only if you turned AI on in Extras. It asks for your provider and your API key. The providers are Anthropic (Claude), OpenAI (GPT), Google Gemini, OpenRouter (many models), and Ollama, which runs models on your own computer or connects to an Ollama-compatible cloud host. Your key is kept safely in the Windows Credential Manager, not in a settings file. You can skip this page and add a key later.
- Keyboard and Sound is where you choose a keyboard pack and whether QUILL plays sound cues. QUILL detects your screen reader and picks accessible defaults for you.
- Summary lets you check every choice before anything happens. It is plain text: your profile name, which features are on, which Quillins are turned on, your keyboard pack and your sound setting. Use Back to change any page. Nothing in QUILL changes until you press Finish.
Every page starts with a heading that takes focus, so you land on the page title first. The preview is a read-only document, so VoiceOver on the Mac does not call it an editable text field.
Important: nothing is saved until you press Finish. If you close or cancel the wizard, none of your settings change.
Profiles explained
QUILL comes with eleven built-in feature profiles: the ten described
under Choosing a profile, plus the QUILL Lite profile. Each one starts
you at a different amount of features and a different level of
accessibility support. The wizard offers seven plain-English starting
points that lead to them; its Writer starting point is the Casual Writer
profile. You can switch profile at any time from Tools >
Customize and Support > Profiles and Features… or by
pressing Alt+Shift+P.
Choosing a profile, earlier in this guide, says who each one is for.
Tutorials
Help > Tutorials… (Ctrl+Alt+F1)
opens 29 guided tutorials: 159 steps, about 147 minutes in all. They
cover the parts of QUILL worth learning first, in the order you would
naturally learn them. They are not a second copy of this guide. A guide
can tell you what something does. It cannot tell you what to do next,
because it cannot see what you have already done. The Tutorials window
can.
How the lessons work
- They show the keys you have. A step names the command it is about, and the key is filled in when the step is shown. If you have rebound a key, the tutorial says your key.
- Try it runs the step. Any step that names a command can be carried out from the lesson. A tutorial can open a window for you and then talk you through what you are looking at.
- Follow me notices when you have done it. Check Follow me and the lesson keeps an eye on QUILL, once a second. It watches what changed, never which key you pressed, so however you do the step, it says what it saw (“Done: the document changed”) and reads you the next one. It never takes over the keyboard, and nothing is marked. Every step still has Next, so if the check never notices, it costs you one keypress.
The Tutorials window is an ordinary window, not a wizard. Leave it open, go to your document, do the step there, and hear the lesson move on in the background.
Finding a lesson
The lessons are in six tracks, in teaching order. Each row says how many steps it has, about how long it takes, and whether you have finished it. The filter box narrows the list: every word you type has to appear somewhere in a tutorial. Type here to see only the tutorials about the window you came from.
Your place is kept
Close a lesson half way through and it opens at the same step next time. Finishing a lesson is remembered separately from where you are in it. Forget my progress clears all of that and changes nothing else. Nothing about your progress leaves this computer.
Reading instead of doing
Read it all shows a whole tutorial as one page of
text. The whole book as a document opens all 24 as one
page. It is made from the same lessons the window teaches, so the two
always agree. It also comes as tutorials.md beside this
guide. The document gives the keys QUILL comes with; only the window
knows the ones you have rebound.
Quill Radio, QUILL Cast and Quill Weather each have their own
lessons, opened with the same Ctrl+Alt+F1 in every app.
QUILL’s own set covers your first hour, writing, reading, how much QUILL
says, the assistant, and the things you meet in your second week. The
menus and the command palette cover the rest.
QUILL, Step by Step
Prefer to learn by listening? QUILL, Step by Step is a separate, slower manual written to be read aloud. It has seventeen short chapters, one skill each, with practice moments and recaps, and none of this guide’s reference tables. It comes beside this guide as Markdown, HTML and EPUB. The EPUB opens straight into ElevenReader, Voice Dream or any reading app, so it can talk you through QUILL while your hands stay on the keyboard.
Get Help from Support, step by step
Use this whenever QUILL does something you did not expect, when you are stuck, when you have a question, or when you want to suggest something. It is the same form QUILL Lite and Quill Radio use, and it reaches a person at Community Access, not a public issue tracker.
- Choose Help > Get Help from Support…, or press
Ctrl+Alt+F2from anywhere in QUILL. On the Help menu its letter is L, because G already opens the user guide. If you gave it a different key in the past, that key still works. - The form opens on What kind of message. Choose one of: something is broken, a question, an accessibility problem, or an idea or request. This only helps the message reach the right person.
- Tab to Subject and type one short line, as you would for an email.
- Tab to What happened and describe it in your own words. This is the part a person reads first.
- What you expected and Steps to reproduce are optional. If you can give steps, they help more than anything else.
- Your email address is optional too. The message goes from your own mail account, so support can already reply to you there. Only fill this in if you want the reply to go somewhere else.
- Screen reader is filled in from whatever is running. Change it if it is wrong.
- Below the fields, QUILL tells you what else is included: its version, your Windows version and, when this computer is connected to QUILL’s free AI, your QUILL AI support ID. That is the number support asks for first.
- Press Send (or Enter). Your own mail program opens with the whole message written and addressed to support@community-access.org. Nothing is sent until you press Send in your mail program. Read it over, attach a diagnostics bundle if you like, or close it if you change your mind. Pressing Escape in the form cancels without writing anything.
If something gets in the way
- If a required field is empty, QUILL tells you which one and leaves you in the form.
- If the message is too long for a mail link, your mail program opens with the start of it. QUILL puts the complete text on your clipboard and tells you to paste it in with Control V.
- If this computer has no mail program set up (you only use webmail, say), QUILL shows you the address and puts the whole message on your clipboard, so nothing you typed is lost.
- Writing to support@community-access.org yourself always works just as well.
Want to share more detail? Help > Save Diagnostics… writes a bundle with private details removed, which you review and can attach to the email.
No more GitHub reports
QUILL no longer files GitHub issues for you, and no copy of QUILL carries a built-in GitHub “reporting token”. Your own GitHub sign-in, for QUILL’s GitHub features, is separate and has not changed. Check for Updates used to offer to “restore the token” by reinstalling the same version; that offer has gone too, and Check for Updates now only ever offers a newer version.
Checking for Updates
QUILL can check for updates and install them while you carry on working.
Manual update check
To check for updates now:
- Press
Alt+Hto open the Help menu. - Press
Ufor Check for Updates. - If a newer version is out, QUILL tells you and asks whether to download it.
- If you say yes, QUILL downloads it in the background and tells you when it is ready.
- The next time you close and reopen QUILL, the update is applied for you.
Automatic update checks
QUILL can check for updates each time it starts:
- Press
Alt+Eto open the Edit menu. - Press
Shift+Sfor Settings. - In the Updates section, turn on Check for updates on startup.
With automatic checks on, QUILL lets you know quietly when a new version is available, and you download it when it suits you.
Update size and speed
QUILL uses small incremental updates (“micro-updates”) instead of a full reinstall. They often download in seconds, and your settings, documents and preferences are kept.
Updating a portable copy
If you run the portable copy of QUILL, Check for
Updates notices and offers the portable .zip for the new
version instead of the installer. It downloads to your updates folder,
and QUILL offers an Extract now button that unzips it
into a ready-to-run folder next to your current one.
Putting a portable update in place is always a job you do yourself.
QUILL never replaces its own files while it is running, because they may
be locked while it is open. After extracting, copy your
data folder into the new version’s folder and start QUILL
from there.
Installed copies keep getting the installer, which does put itself in place when you run it.
Staying on a release channel
By default, QUILL follows the Stable channel and only offers you finished versions. To try new features early, see Release Channels below.
Release Channels
QUILL comes in three flavours, and you choose which one this copy follows. They’re called release channels.
- Stable is the version we recommend. It has been checked with JAWS and NVDA, and it’s what most people use. Every copy starts here.
- Beta gets new features a few weeks early. It’s mostly finished, but some things may not work right yet.
- Dev is the work in progress, sometimes several builds a week. Things will break. Only choose it if a developer asked you to, or you enjoy testing.
Choosing a channel
- Open the Help menu, then choose Release Channel… (press Alt+H, then I). You can also get there from Settings: on the Administration page, the Release channel row has a Change release channel… button.
- Arrow through Stable, Beta and Dev. As you move, the box below tells you what each one means and what choosing it would do. Nothing changes yet.
- Press Switch to move. Press Close, or Escape, to leave everything as it was.
If you choose Beta or Dev, QUILL shows a short warning first: what could go wrong, how your settings are protected, and how to come back. Read it, check the I understand box, then choose Move to Beta (or Move to Dev). Stay on Stable changes nothing, and so does Escape.
Beta and Dev versions aren’t signed, so when you install one, Windows SmartScreen may warn that it comes from an unknown publisher; that’s expected, and choosing More info, then Run anyway, installs it.
What happens when you move to Beta or Dev
- QUILL saves a copy of your settings, keys and preferences first. If it can’t, it stays where it is and tells you why. Your documents aren’t copied, and updates don’t change them.
- QUILL then checks for updates on the new channel straight away, and offers you the newest Beta or Dev version if there is one. Nothing is installed unless you say so.
- From then on, Check for Updates offers you versions from your channel. On Stable, you’re never offered a test version.
If you installed a Beta version yourself, QUILL notices the first time it checks for updates. It puts itself on the Beta channel and tells you so, and you can change it in the Release Channel window whenever you like.
Updates on Beta and Dev
When QUILL’s startup check finds a new version, it downloads it for you, as it always has, so it is ready when you are. It never installs anything without asking: when the download is done, it says so and shows you what’s new, and you choose when to install.
On Beta and Dev, it waits instead of downloading on a metered connection, during Quiet Hours, and while Quill Radio is recording. The notifications list and Update History tell you why it waited.
If an update doesn’t start
After an update, QUILL checks that the new version really opens. If it doesn’t open within two minutes, the update undoes itself and puts back the version you had. The next time QUILL starts, it tells you so. Nothing of yours is changed, and Update History has the details.
To make this possible, QUILL keeps a copy of the installer for the version you have: on Beta and Dev for as long as you have that version, and on Stable for a week or three starts after each update. That copy takes about 200 MB of disk space, which Stable gives back once the week or the three starts are up. After an update, the previous installer is kept until the new version has started three times, or for a week, and then it is deleted.
Coming back to Stable
Open Release Channel again and choose Stable.
- If the version you have is already a Stable one, you’re back straight away, and nothing is installed.
- If you have a newer Beta or Dev version, QUILL checks whether Stable can read everything you have saved. If it can, choose Go back to (the Stable version) now, and QUILL downloads Stable and offers to install it. Your settings and keys come with you.
- If Stable can’t read something yet, QUILL says so and gives you two safe choices. Wait for Stable keeps the version you have, stops test versions, and moves you to Stable by itself as soon as Stable catches up. It tells you when that happens. Use the copy from (the day you joined) puts back the copy of your settings and keys saved when you joined, then installs Stable. Anything you changed since then won’t be in it, but a copy of how things are right now is saved first, so nothing is thrown away.
- If there’s no saved copy, waiting is the only choice, and the window says so.
Moving your other apps together
If QUILL Lite, Quill Radio or QUILL Cast is on this computer too, the Release Channel window lists it under Also move my other QuillVille apps on this computer. Check any you’d like to move in the same step. Every box starts unchecked.
Those apps run on one shared engine. When one of them moves to Beta or Dev, it gets its own copy of that engine, so the apps you leave on Stable are never touched. That copy takes about 335 MB of disk space, and it goes away by itself when the last of them comes back to Stable. QUILL itself doesn’t use the shared engine, so moving QUILL on its own needs no extra space.
Update History
The Update History button in the Release Channel window shows what the updater has done for QUILL: channel changes, the copies of your settings it saved, and so on. It’s a record to read; nothing in it changes anything.
Your privacy
Switching channels sends nothing about you. When QUILL checks for updates, the only thing it sends is a request for the list of versions.
Secure connections and certificates
QUILL trusts the same security certificates Windows trusts. Whenever it goes online, to check for updates, download something, talk to an AI service or open a web address, it checks the site’s certificate the way your web browser does. A site that opens in Microsoft Edge should open in QUILL too. QUILL Lite, Quill Radio, QUILL Cast and the other QuillVille apps all check the same way.
If QUILL says “The site’s security certificate could not be verified”:
- Check that this computer’s date and time are right. A clock that is off, even by a day, is the most common cause.
- Run Windows Update. It keeps the list of certificates Windows trusts up to date.
- If your antivirus scans secure web pages, or you are on a work or school network, that software looks inside secure connections, and Windows has to trust its certificate for QUILL to trust it. Most antivirus programs set that up when they are installed. If yours did not, or you are at work, ask whoever looks after your computer or network.
QUILL does not skip the check to get past this message. When a certificate cannot be verified, someone may be sitting between you and the site, so QUILL stops before sending anything.
Beta Feedback and Bug Reporting
QUILL is ready for serious beta use, and it has a real support starting point built in.
What you can use today
- Recovery state.
- Notifications.
- Extraction review.
- Exporting a bad-extraction package, for problems with extraction.
- Save Diagnostics…, a general command that writes a bundle on this computer.
- Get Help from Support… (
Ctrl+Alt+F2), which writes a message to support@community-access.org in your own mail program, with details about your setup already filled in. It used to be called Report a Bug…. - A diagnostics runbook and a documented support process.
QUILL helps you gather diagnostics on your own computer, check what you are about to share, and start a clear support message without leaving QUILL.
What is still to come
QUILL does not yet have a secure way to upload straight from the app without signing in anywhere. For now, the Help > Get Help from Support… form is the one route: it emails support through your own mail program and never files anything on GitHub. A fuller route that needs no GitHub sign-in is planned:
- a Community Access feedback form on a secure (HTTPS) web page,
- an optional upload of a diagnostics bundle you have reviewed,
- a plain-language bug template with a summary of your setup and the steps to reproduce the problem,
- alongside the in-app Help > Get Help from Support… form.
Control Reference
The Control Reference lists every control in QUILL that can take focus, grouped by section. For each one it says what the control does, which keys apply to it, and which part of this guide covers it in depth.
The full list is in the Control Reference.
If you build QUILL yourself, you can regenerate it after adding new help topics:
python -m quill.tools.build_docsWhat you learned, and where to go next
You now know your way around the Help menu, including Activity
(Shift+F9) and Repeat Last Result (F9). F1
explains any control, What Can I Do Here? helps on the spot, and the
Personalise QUILL wizard can be run again whenever your needs change.
You can send a message to a real person with Get Help from Support
(Ctrl+Alt+F2), and you know how to check for updates.
To practise, open Help > Tutorials…
(Ctrl+Alt+F1) and try “Getting unstuck” and “Do anything by
name” from the Your first hour track. On the website, Your
first hour with QUILL covers the same ground at a gentler pace.
That is the last chapter. The appendices follow, including the Glossary of QUILL Terms and Getting help, for whenever you need them.
A last word
The best way to get to know QUILL is to use it on something real: a note you care about, a PDF you scanned and need to check, an EPUB chapter you want to find your way around, a Markdown file that needs tidying, or a web page you want to make easier to use.
I would like QUILL to feel like a good guide sitting beside you while you work, never one standing in your way. If it does its job, you will spend less time wondering what it can do and more time on what you want to write next.
Acknowledgments
QUILL stands on the shoulders of the screen-reader-first editors that
came before it. The keyboard-first way of comparing documents, and
selecting with F8 from an anchor, were inspired by EdSharp
and Boxer. I am grateful to those projects and the people who made them,
for showing what an accessible, keyboard-driven editor can be.
Appendix A: The QUILL Developer Console
This appendix is for people who like to script and automate. Nobody needs it to write, and if you never open the console you are missing nothing you use every day. If you are a developer, a power user, an accessibility tester or someone building a Quillin, read on. The QUILL Developer Console (QDC for short) lets you look inside the running editor and drive it from code.
What the QDC is
The Developer Console is a scripting window built into QUILL. You can inspect and automate the editor while it runs, without rebuilding anything or adding temporary menu items.
It is switched off by default for the Essential, Casual Writer and Reader and Student profiles. You will find it under the Developer, Power Text and Full QUILL profiles.
There are two consoles:
- Python console. Runs inside QUILL, with full access
to the scripting API through the name
q. Its prompt is>>>, and...while you are in the middle of a block. - TypeScript console. Runs through a Node subprocess.
Its API is asynchronous and is called
quill. Its prompt ists>, andts*>while an async operation is still running.
Both share the same transcript window, and both speak through QUILL’s usual announcements.
Opening the console
Choose Tools > Advanced > Developer Console > Open Python Console or Tools > Advanced > Developer Console > Open TypeScript Console.
From the Command Palette, the commands are
quill.console.openPython and
quill.console.openTypeScript.
The console opens as its own dialog. Press Esc to send
focus back to the editor. The dialog stays open, and keeps everything
you defined, until you close it yourself.
Console layout
Press F6 to move between the five areas of the
console:
- Transcript. Read-only. Shows prompts, output, errors and return values.
- Input. One line by default.
Shift+Enteradds a new line, so you can type a block of several lines. - Language selector. Switches between Python and TypeScript.
- Status line. The current language, prompt state, active document and worker status.
- Buttons. Run, Clear, Copy transcript, Save transcript, Insert snippet, Help and Close.
Keyboard reference
These keys work inside the console window.
| Key | Action |
|---|---|
| Enter | Execute current command |
| Shift+Enter | Insert newline (multi-line input) |
| Ctrl+Enter | Force execute multi-line block |
| Up / Down | Previous / next history (when cursor is at line boundary) |
| Ctrl+L | Clear transcript |
| Ctrl+Shift+C | Copy transcript |
| Ctrl+S | Save transcript |
| Ctrl+F | Find in transcript |
| F6 | Move between transcript, input, status, and buttons |
| Esc | Return focus to editor |
| F1 | Console help |
| Ctrl+Space | Trigger completion |
Python console
Available names
These names are ready for you as soon as the console opens:
| Name | What it is |
|---|---|
q |
Primary QUILL scripting API, start here |
app |
Application-level read-mostly object |
commands |
Command registry facade |
doc |
Active document snapshot |
editor |
Active editor snapshot |
sel |
Current selection snapshot |
caret |
Current caret snapshot |
profile |
Active feature profile snapshot |
settings |
Safe settings facade |
diagnostics |
Diagnostics facade |
a11y |
Announcement / testing facade |
log |
Console-safe logger |
wx |
wx module (Developer profile only) |
doc, sel and caret are
read-only snapshots, taken at the moment they were captured. They
refresh when the active document changes. Otherwise, call
q.refresh_context() to pull in the current state.
The q API also has these facades:
q.selection, q.doc, q.editor,
q.settings, q.profile,
q.bookmarks, q.quillins, q.macros
(with q.begin_macro and q.end_macro),
q.spell, q.diagnostics, q.a11y,
q.commands, q.focus and
q.support, plus q.describe_command.
Basic operations
Insert text at the cursor:
>>> q.insert_text("Hello from QUILL.")Replace the current selection:
>>> q.replace_selection("Replacement text")Jump to a line:
>>> q.goto_line(42)Run a built-in command by its ID:
>>> q.run_command("quill.document.wordCount")Send a screen-reader announcement:
>>> q.a11y.announce("Test announcement.")Inspecting state
Read the name of the active document:
>>> doc.name
'notes.txt'Read the current selection:
>>> sel.text
'selected words here'Read where the caret is (line and column both start at 1):
>>> caret.line, caret.column
(12, 5)Search for commands by keyword:
>>> commands.search("spell")
['quill.spell.check', 'quill.spell.addWord', 'quill.spell.nextError']Get a diagnostic summary, which is handy when you are asking for support:
>>> q.support.diagnostic_summary()Accessibility diagnostics
Hear again what QUILL last announced:
>>> q.a11y.last_announcements()
['Title Case applied', '5 words selected']Describe where focus is right now:
>>> q.focus.describe()
'Editor: notes.txt, line 12, col 5, no selection'Multi-line blocks
Press Shift+Enter to add new lines, then
Enter or Ctrl+Enter to run the block:
>>> def count_words(text):
... return len(text.split())
...
>>> count_words(doc.text)
487When a command runs too long
If something you type into the Python console runs away, a loop that never ends say, QUILL stops it after Python console execution timeout seconds (Settings > Administration) and tells you “Stopped after 30 seconds.” It is 30 to begin with, and you can set anything from 5 to 300. A command that is waiting on the system, such as a long sleep, stops as soon as that wait is over.
Macro recording
You can record a run of commands as a macro and use it again later:
>>> q.begin_macro("Clean OCR text")
>>> q.run_command("quill.text.normalizeUnicode")
>>> q.run_command("quill.text.dehyphenateLines")
>>> q.run_command("quill.text.reflowParagraphs")
>>> q.end_macro()
Macro saved: "Clean OCR text"TypeScript console
The TypeScript console needs Node.js on your PATH. If QUILL cannot find it, it tells you so and offers to help you install it.
TypeScript prompt behavior
ts> await quill.insertText("Hello.");
ts*>
Result: undefined
ts> means the console is ready. ts*>
means an async operation is still in flight. Results and errors land in
the transcript by themselves.
Available globals
| Global | What it is |
|---|---|
quill |
Async QUILL scripting proxy |
console |
Captured: .log(), .warn(),
.error() appear in transcript |
setTimeout / clearTimeout |
Standard timer |
AbortController |
For cancellable operations |
Basic TypeScript operations
Insert text:
ts> await quill.insertText("Hello from TypeScript.");Replace the selection:
ts> await quill.replaceSelection("Replacement text");Jump to a line:
ts> await quill.gotoLine(42);Run a built-in command:
ts> await quill.runCommand("quill.markdown.normalizeHeadings");Inspecting state from TypeScript
ts> const doc = await quill.activeDocument();
ts> console.log(doc.name);
notes.txtts> const stats = await quill.documentStats();
ts> console.log(`${stats.words} words, ${stats.lines} lines`);
487 words, 38 linesMulti-line TypeScript
Press Shift+Enter to build a block over several lines,
then Ctrl+Enter to run it:
ts> const text = await quill.getText();
ts> const words = text.trim().split(/\s+/).filter(Boolean);
ts> await quill.announce(`${words.length} words`);TypeScript type definitions
QUILL comes with a file called quill-console.d.ts. If
you have Node.js and a code editor that understands TypeScript, copy the
file into your project and you get completion:
// quill is typed as:
interface QuillConsoleApi {
insertText(text: string): Promise<void>;
replaceSelection(text: string): Promise<void>;
gotoLine(line: number): Promise<void>;
runCommand(commandId: string, args?: Record<string, unknown>): Promise<unknown>;
activeDocument(): Promise<QuillDocumentSnapshot>;
documentStats(): Promise<QuillDocumentStats>;
announce(text: string): Promise<void>;
}Screen-reader notes
- New output in the transcript is announced, and focus stays where it is.
- Errors are announced starting with the word “Error”.
- Return values are announced starting with the word “Result”.
- Long output is summed up in the announcement. Read the transcript with your screen reader for the full text.
Ctrl+Shift+Ccopies the transcript at any time.- The console speaks through Prism, the same announcement path every other part of QUILL uses.
- Every control is a standard Windows control. Nothing is custom-drawn.
Console safety settings
Open them with Tools > Advanced > Developer Console
> Console Safety Settings, or run the command
quill.console.openSafetySettings.
| Setting | Default | Notes |
|---|---|---|
| Python console enabled | Profile-dependent | Off for Essential / Casual Writer |
| TypeScript console enabled | Profile-dependent | Off except Developer profile |
| Require developer profile | On | Prevents accidental access in the Casual Writer profile |
| Max execution time (Python) | 30 s | Hard kill after timeout |
| Max execution time (TypeScript) | 30 s | Worker restart after timeout |
Allow wx module access |
Developer profile only | Not available in any other profile |
| Remote console | Locked off | Not available in QUILL 1.x |
Transcript commands
You can run these from the Command Palette while the console is open.
| Command | What it does |
|---|---|
quill.console.copyTranscript |
Copy entire transcript to clipboard |
quill.console.saveTranscript |
Save transcript to a file |
quill.console.clear |
Clear the transcript |
quill.console.saveInputAsSnippet |
Save the current input as a named snippet |
quill.console.insertSnippet |
Insert a saved snippet into input |
quill.console.runSelection |
Run selected text in the transcript as a command |
quill.console.runCurrentDocument |
Run the active QUILL document as a script |
quill.console.showContext |
Print current snapshot values to transcript |
quill.console.resetNamespace |
Reset the Python namespace (clears all variables) |
quill.console.restartTypeScriptWorker |
Kill and restart the Node worker |
For Quillin authors
The console is a good place to try out a Quillin while you build it. Load your Quillin, open the Python console, and look at its manifest and the commands it adds:
>>> from quill.core.quillins.loader import get_loader
>>> loader = get_loader()
>>> ext = loader.get_extension("com.example.myextension")
>>> ext.manifest
ExtensionManifest(id='com.example.myextension', runtime='python', ...)
>>> ext.manifest.contributes.commands
(ExtensionCommand(id='ext.myext.run', title='My Command', ...),)Run one of its commands straight through the command registry:
>>> q.run_command("ext.myext.run")Then check what it announced:
>>> q.a11y.last_announcements()
['My command completed: 3 items processed']For a Node.js Quillin, the TypeScript console is the natural place to test:
ts> await quill.runCommand("ext.myext.nodeHandler");
ts> // Check the last announcement
ts> const ann = await quill.lastAnnouncement();
ts> console.log(ann);What the console can and cannot do yet
The console is built and working under the Developer, Power Text and Full QUILL profiles, at Tools > Advanced > Developer Console. Here is what you get today:
- The Python console and its console window.
- The TypeScript console, running through a Node subprocess.
- The
qscripting API: the text, navigation and command methods, plus the facadesq.selection,q.doc,q.editor,q.settings,q.profile,q.bookmarks,q.quillins,q.macros(withq.begin_macroandq.end_macro),q.spell,q.diagnostics,q.a11y,q.commands,q.focusandq.support, plusq.describe_command.
Some examples in this appendix were written for a fuller API than the
console has today. If a call shown here does not work, the list above is
the one to trust. The full scripting contract, with its own map of what
is implemented, is in docs/quillins.md.
Where to go next
The thinking behind the console, and the plans for it, are in
Appendix E, Developer Console design document. If you build Quillins,
docs/quillins.md is your reference.
Appendix B: Writing skills for QUILL
This appendix shows you how to write, check and share your own
skills. A skill lives in a .sqp file (Skill Quill Pack). It
is a multi-step AI workflow, written in plain Markdown. If you can write
a prompt, you can write a skill.
What a skill is
A QUILL prompt is one instruction. A skill is a short conversation: a series of instructions, where each step can see what the step before it produced.
A skill is the right tool when:
- You want to analyse your text first, then act on what the analysis found.
- You want to gather information in one step and write with it in the next.
- You want to check something (is this a question or a statement?) and go a different way depending on the answer.
- You want a better result on the same task, by giving the model context it built for itself in an earlier step.
Your first skill
Create a file called my-first-skill.sqp and open it in
QUILL. Type this in:
---
schema: quill.skill/1
name: Explain Then Simplify
description: Explains the selected text in plain terms, then simplifies it further.
author: Your Name
version: 1.0.0
---
# Step 1: Explain
Explain the following text as if the reader has no prior knowledge. Use simple
vocabulary and short sentences. Aim for 50-80 words.
Text to explain:
{selection}
# Step 2: Simplify further
The explanation below is good, but we need it even simpler. Rewrite it so a
twelve-year-old would understand it immediately. Keep the core meaning.
Explanation to simplify:
{step1.output}
```output
format: text
label: Plain-language explanation
accept_into: clipboard
The part between the two `---` lines is the front matter: the skill's name and
details. Each line that starts with `# Step` begins a new step. `{selection}`
is your selected text, and `{step1.output}` is whatever step 1 produced.
Save the file, then check it with the validator:
```powershell
python -m quill.tools.sqp_validator my-first-skill.sqp
If all is well, you will see:
my-first-skill.sqp: OK
Adding parameters
Parameters let the person running the skill choose options first. Before step 1 begins, QUILL shows a small dialog that asks for those choices.
Here is the same skill with a choice of reading level added:
---
schema: quill.skill/1
name: Explain Then Simplify
description: Explains and simplifies selected text at a chosen reading level.
author: Your Name
version: 1.0.0
parameters:
- name: level
label: Target reading level
type: choice
choices: [Grade 4, Grade 6, Grade 8]
default: Grade 6
---
# Step 1: Explain
Explain the following text so it is accessible at {parameters.level} reading level.
Use simple vocabulary and short sentences. Aim for 50-80 words.
Text to explain:
{selection}
# Step 2: Simplify further
Rewrite the explanation below to be even clearer. Target: {parameters.level}.
Keep the core meaning intact.
{step1.output}
```output
format: text
label: Plain-language explanation
accept_into: clipboard
Now `{parameters.level}` can be used in both steps. Its value is whatever the
user picked in the dialog.
There are five kinds of parameter:
| Type | UI control | Example |
| --- | --- | --- |
| `text` | Single-line text field | A keyword or name |
| `multiline` | Multi-line text area | A block of context |
| `choice` | Drop-down list | Reading level, tone, language |
| `bool` | Checkbox | Include citations: yes/no |
| `number` | Numeric field | Word count target |
### Using the input block
A long piece of text can bury the instruction it belongs to. The `input` block
adds the data after the instruction, so the step stays easy to read:
```markdown
# Step 1: Extract key claims
Read the following document and list the five most important claims it makes.
Number each claim. One sentence per claim.
```input
{document}
Without the `input` block you would write:
```markdown
# Step 1: Extract key claims
Read the following document and list the five most important claims it makes.
Number each claim. One sentence per claim.
Document:
{document}
Both do the same thing. The input block is just tidier
when the data is long.
Branching on an answer
A condition block sends the skill down one path or
another, depending on what a step produced.
# Step 1: Detect intent
Read the following text. Is it asking a question, or making a statement?
Answer with exactly one word: "question" or "statement".
```input
{selection}if: "{step1.output}" contains "question"
then: step2
else: step3
Step 2: Answer the question
Answer this question clearly and concisely: {selection}
format: text
label: Answer
accept_into: clipboard
Step 3: Expand the statement
Expand the following statement into a full paragraph with supporting detail: {selection}
format: text
label: Expanded statement
accept_into: clipboard
Here is what happens. After step 1 runs, QUILL checks the condition. If the
output contains "question", it jumps to step 2. Otherwise it jumps to step 3.
Whichever step runs last is the one that produces the result.
You can use these operators in a condition:
| Operator | Matches when |
| --- | --- |
| `contains` | Subject contains value (case-insensitive) |
| `equals` | Subject exactly matches value (case-insensitive) |
| `starts_with` | Subject starts with value |
| `ends_with` | Subject ends with value |
| `length_gt` | Subject length > number |
| `length_lt` | Subject length < number |
| `is_empty` | Subject is blank |
### Controlling the output
The `output` block on the last step decides what happens to the result.
```markdown
```output
format: text
label: Rewritten paragraph
accept_into: selection
It has three settings:
- `format`: `text` (the default), `list` (the AI should return a bulleted or
numbered list), or `json` (the AI should return valid JSON).
- `accept_into`: what happens when the user presses Accept in the result
dialog. `selection` replaces the current selection in the editor.
`clipboard` copies the result to the clipboard. `none` just shows it,
read-only (this is the default).
- `label`: the heading of the result dialog, so the user knows what they are
reviewing.
### A complete example, Accessible Rewrite
Here is the "Accessible Rewrite" skill that comes with QUILL, in full.
```markdown
---
schema: quill.skill/1
name: Accessible Rewrite
description: Rewrites selected text for plain-language accessibility.
author: QUILL Project
version: 1.0.0
parameters:
- name: reading_level
label: Target reading level
type: choice
choices: [Grade 6, Grade 8, Grade 10, No target]
default: Grade 8
---
# Step 1: Analyse accessibility issues
Review the following text for plain-language accessibility issues. List the
problems as a numbered list. Focus on: sentence length (over 25 words), passive
voice, unexplained jargon or acronyms, abstract nouns where concrete ones would
serve better, and complex nested clauses. Be concise — one clear problem per
line. If the text has no issues, say "No issues found."
```input
{selection}
Step 2: Rewrite for accessibility
Rewrite the text below to fix the issues identified in Step 1. Requirements:
- Target reading level: {parameters.reading_level}
- Preserve all factual content
- Do not add new information
Original text: {selection}
Issues to fix: {step1.output}
format: text
label: Rewritten text
accept_into: selection
Step 1 reads the text and makes a numbered list of problems. Step 2 gets that
list through `{step1.output}`, along with the original text, so the model knows
exactly what to fix. When the user presses Accept, the rewrite replaces the
selection.
### Checking your skill
Always run the validator before you share a skill:
```powershell
python -m quill.tools.sqp_validator my-skill.sqp
For a stricter check:
python -m quill.tools.sqp_validator my-skill.sqp --strictWith --strict, it also warns you if
description or author is missing.
These are the errors people meet most, and how to fix them:
| Error | Cause | Fix |
|---|---|---|
schema must be 'quill.skill/1' |
Missing or wrong schema | Add schema: quill.skill/1 to front matter |
front matter must include 'name' |
No name: field |
Add name: My Skill |
must have at least one step |
No # Heading lines |
Add at least one # Step N: heading |
{step3.output} references a step that hasn't run yet |
Forward reference | Steps can only reference outputs from earlier steps |
unknown parameter 'tone' |
Used {parameters.tone} but didn’t declare it |
Add tone to the parameters list in front
matter |
output format 'xml' is invalid |
Bad format: value |
Use text, list, or json |
Sharing skills
A .sqp file is plain text, so you can share it the same
way you share any document. There are three ways it reaches other
people:
- Through the Skill Library. Whoever receives your
.sqpfile imports it with AI > Skill Library > Import .sqp. - Through a Quillin. If you look after a Quillin, put your
.sqpfiles in the Quillin’s folder. QUILL finds them on its own when the Skill Library loads. - As a file on its own. A
.sqpfile holds everything it needs. Anyone can also open it in QUILL’s editor to read it, understand it and change any step.
Tips for writing good skills
- Be specific in each step. “List the five most important claims” works better than “What are the claims?” The model follows precise wording.
- Say exactly what you want back. Instead of “Summarise the
following”, write “Write a one-sentence summary of the following text.
Return only the summary sentence, no preamble.” Then
{step1.output}holds just what you expect. - Try it on short text first. Type two or three sentences into the editor, select them, and run the skill. Short text runs faster, and mistakes are easier to track down.
- Put long data in an
inputblock. If the selection might be a whole document, put{document}in aninputblock instead of in the middle of the prompt. The step reads more cleanly. - Give a branch its own detection step. If you are branching on whether the text is a question, a statement, a list or something else, let step 1 do only that sorting, and ask for a one-word answer. The tighter the answer, the more reliably the condition works.
- Choose
accept_intoon purpose. If the skill rewrites the selection, useaccept_into: selection. If it makes something extra (a meeting summary, an outline), useaccept_into: clipboard, so the user can paste it where they like. Usenonefor skills that only inform you (a grammar analysis, a readability score), where you read the result but do not insert it.
Reference card
Front matter fields
| Field | Required | Default |
|---|---|---|
schema: quill.skill/1 |
yes | none |
name: ... |
yes | none |
description: ... |
recommended | "" |
author: ... |
recommended | "" |
version: ... |
no | 1.0.0 |
parameters: [...] |
no | [] |
Variables
| Variable | Value |
|---|---|
{selection} |
Selected editor text (full document if nothing selected) |
{document} |
Full document text |
{title} |
Document title |
{clipboard} |
Clipboard text at skill-start time |
{stepN.output} |
Output from step N (must be a lower-numbered step) |
{parameters.name} |
Value of a declared parameter |
Fenced block types
| Block | Where | Purpose |
|---|---|---|
`input` |
Any step | Appends data to the prompt |
`condition` |
Any step | Branch to then/else step after this step
runs |
`output` |
Last step | Controls format, label, accept_into |
`use-prompt` |
Any step | Delegates to a named Prompt Library prompt |
Values at a glance
- Condition operators:
contains,equals,starts_with,ends_with,length_gt,length_lt,is_empty. - Output formats:
text,list,json. - Output accept_into values:
selection,clipboard,none.
Where to go next
Open the Skill Library from the AI menu and run one
of the skills that come with QUILL, then open its .sqp file
and see how it was put together. Chapter 10, AI, when you want it,
covers the rest of the assistant.
Appendix C: Every emoji QUILL can insert
This is the full list behind Insert > Insert
Emoji… (Alt+.): all 3,781 standard emoji, grouped
by category the same way the picker groups them. Each row gives the
emoji, its official name and a short description of what it looks like.
You never need this list to use the picker, which searches by name,
keyword or typed alias. It is here for when you would like to browse at
your own pace, or search the guide for a word.
Smileys & Emotion (169)
| Emoji | Name | Description |
|---|---|---|
| 😀 | grinning face | A yellow face with a broad, open smile showing teeth, conveying happiness. |
| 😃 | grinning face with big eyes | A bright yellow face with a wide grin and large, round eyes, expressing excitement. |
| 😄 | grinning face with smiling eyes | A yellow face with a big smile and smiling eyes, radiating joy and cheerfulness. |
| 😁 | beaming face with smiling eyes | A yellow face with a beaming smile and closed eyes, suggesting overwhelming happiness. |
| 😆 | grinning squinting face | A yellow face with a wide grin and squinting eyes, indicating laughter or amusement. |
| 😅 | grinning face with sweat | A yellow face with a nervous grin and a bead of sweat on its forehead, showing relief or awkwardness. |
| 🤣 | rolling on the floor laughing | A yellow face rolling on the floor with laughter, tears streaming from its eyes, indicating extreme amusement. |
| 😂 | face with tears of joy | A yellow face laughing with tears of joy, showcasing a mix of happiness and hilarity. |
| 🙂 | slightly smiling face | A yellow face with a slight smile, expressing mild happiness or contentment. |
| 🙃 | upside-down face | A yellow face turned upside down, featuring a playful smile that suggests silliness. |
| 🫠 | melting face | A yellow face with a melting appearance, conveying embarrassment or discomfort. |
| 😉 | winking face | A yellow face with a wink and a playful smile, suggesting flirtation or teasing. |
| 😊 | smiling face with smiling eyes | A yellow face with rosy cheeks and a gentle smile, radiating warmth and satisfaction. |
| 😇 | smiling face with halo | A yellow face with a halo above its head and a sweet smile, representing innocence or angelic qualities. |
| 🥰 | smiling face with hearts | A yellow face surrounded by hearts, conveying love and affection. |
| 😍 | smiling face with heart-eyes | A yellow face with heart-shaped eyes, expressing deep admiration or love. |
| 🤩 | star-struck | A yellow face with wide eyes and a big smile, showing excitement and awe. |
| 😘 | face blowing a kiss | A yellow face puckering its lips as if blowing a kiss, suggesting affection. |
| 😗 | kissing face | A yellow face with closed lips, giving a soft kiss, indicating love or flirtation. |
| ☺️ | smiling face | A yellow face with a gentle smile, radiating warmth and happiness. |
| 😚 | kissing face with closed eyes | A yellow face with closed eyes and a kissy face, conveying affection and sweetness. |
| 😙 | kissing face with smiling eyes | A yellow face with smiling eyes and puckered lips, suggesting a loving kiss. |
| 🥲 | smiling face with tear | A yellow face with a small smile and a single tear, expressing bittersweet joy or gratitude. |
| 😋 | face savoring food | A yellow face with a wide grin and a tongue sticking out, indicating enjoyment of food. |
| 😛 | face with tongue | A yellow face with its tongue sticking out and a playful smile, suggesting fun or mischief. |
| 😜 | winking face with tongue | A yellow face with one eye closed and its tongue sticking out, conveying cheekiness or humor. |
| 🤪 | zany face | A yellow face with bulging eyes and a goofy smile, indicating silliness or craziness. |
| 😝 | squinting face with tongue | A yellow face squinting with its tongue out, suggesting playful teasing or silliness. |
| 🤑 | money-mouth face | A yellow face with dollar signs for eyes and a wide, greedy smile, indicating a love for money. |
| 🤗 | smiling face with open hands | A yellow face with open hands, smiling warmly as if inviting a hug. |
| 🤭 | face with hand over mouth | A yellow face with a hand covering its mouth, suggesting a giggle or a secret. |
| 🫢 | face with open eyes and hand over mouth | A yellow face with wide eyes and a hand over its mouth, showing shock or surprise. |
| 🫣 | face with peeking eye | A yellow face peeking from behind its hand, indicating shyness or embarrassment. |
| 🤫 | shushing face | A yellow face with a finger to its lips, signaling to be quiet or keep a secret. |
| 🤔 | thinking face | A yellow face with a hand on its chin, deep in thought or contemplation. |
| 🫡 | saluting face | A yellow face with a slight smile and a hand raised in a salute, showing respect. |
| 🤐 | zipper-mouth face | A yellow face with a zipper for a mouth, indicating silence or keeping a secret. |
| 🤨 | face with raised eyebrow | A yellow face with a raised eyebrow and a skeptical expression, suggesting doubt. |
| 😐 | neutral face | A yellow face with a straight mouth and neutral expression, indicating indifference. |
| 😑 | expressionless face | A yellow face with a flat expression and closed eyes, conveying boredom or annoyance. |
| 😶 | face without mouth | A neutral face with a round, pale yellow head and no mouth, conveying a blank or expressionless demeanor. |
| 🫥 | dotted line face | A face with a dotted outline, appearing as if it’s fading away, with a neutral expression that suggests hiding or being withdrawn. |
| 😶🌫️ | face in clouds | A pale yellow face partially obscured by fluffy white clouds, giving a dreamy or hazy appearance. |
| 😏 | smirking face | A face with a sly smirk, featuring raised eyebrows and a mischievous glint in its eyes, suggesting confidence or flirtation. |
| 😒 | unamused face | A face with a flat expression, downturned mouth, and narrowed eyes, indicating boredom or discontent. |
| 🙄 | face with rolling eyes | A face with rolling eyes, showing annoyance or disbelief, with a slight frown and raised eyebrows. |
| 😬 | grimacing face | A face with clenched teeth and a nervous smile, conveying awkwardness or discomfort. |
| 😮💨 | face exhaling | A face with puffed cheeks and an exhaling expression, suggesting relief or exhaustion, often depicted with a light blue or gray tone. |
| 🤥 | lying face | A face with a long nose, representing a liar, featuring a slight smirk and closed eyes. |
| 🫨 | shaking face | A face that appears to be shaking, with wide eyes and an open mouth, indicating panic or surprise. |
| 🙂↔︎️ | head shaking horizontally | A face with a gentle smile, depicted shaking its head horizontally, suggesting disagreement or uncertainty. |
| 🙂↕️ | head shaking vertically | A face with a gentle smile, depicted shaking its head vertically, suggesting contemplation or indecision. |
| 😌 | relieved face | A serene face with closed eyes and a soft smile, conveying a sense of calm and relief. |
| 😔 | pensive face | A face with downturned eyes and a frown, showing feelings of sadness or disappointment. |
| 😪 | sleepy face | A tired face with droopy eyes and a slight frown, suggesting sleepiness or fatigue. |
| 🤤 | drooling face | A face with drool dripping from the mouth, indicating extreme desire or hunger. |
| 😴 | sleeping face | A face with closed eyes and a peaceful expression, often depicted with a slight smile, representing sleep. |
| | face with bags under eyes | A tired face with dark circles under its eyes, indicating exhaustion or fatigue. |
| 😷 | face with medical mask | A face wearing a medical mask, with wide eyes showing concern or illness. |
| 🤒 | face with thermometer | A face with a thermometer in its mouth, looking ill, with flushed cheeks and a frown. |
| 🤕 | face with head-bandage | A face with a bandage wrapped around its head, showing signs of injury or pain. |
| 🤢 | nauseated face | A face with a greenish tint and a disgusted expression, indicating nausea or sickness. |
| 🤮 | face vomiting | A face with a pained expression and vomit coming from its mouth, representing extreme disgust or illness. |
| 🤧 | sneezing face | A face with a tissue held to its nose, showing signs of sneezing or illness. |
| 🥵 | hot face | A flushed face with sweat beads, indicating extreme heat or discomfort. |
| 🥶 | cold face | A blue face with shivering features, suggesting extreme cold or freezing conditions. |
| 🥴 | woozy face | A face with droopy eyes and a lopsided grin, indicating dizziness or intoxication. |
| 😵 | face with crossed-out eyes | A face with crossed-out eyes and a dazed expression, suggesting confusion or being overwhelmed. |
| 😵💫 | face with spiral eyes | A face with spiral eyes, indicating dizziness or confusion, often with a shocked expression. |
| 🤯 | exploding head | A face with an exploding head, conveying a mind-blown reaction to surprising information. |
| 🤠 | cowboy hat face | A cheerful face wearing a cowboy hat, suggesting a fun and adventurous spirit. |
| 🥳 | partying face | A joyful face wearing a party hat, with wide eyes and a big smile, celebrating a festive occasion. |
| 🥸 | disguised face | A face in disguise, featuring glasses, a moustache, and raised eyebrows, suggesting incognito status. |
| 😎 | smiling face with sunglasses | A smiling face wearing dark sunglasses, exuding a cool and relaxed vibe. |
| 🤓 | nerd face | A face with thick glasses and a big smile, suggesting intelligence or nerdiness. |
| 🧐 | face with monocle | A face with a monocle and raised eyebrow, conveying curiosity or sophistication. |
| 😕 | confused face | A face with a furrowed brow and a confused expression, indicating uncertainty. |
| 🫤 | face with diagonal mouth | A face with a diagonal mouth and a skeptical look, suggesting doubt or disappointment. |
| 😟 | worried face | A worried face with furrowed brows and downturned mouth, conveying anxiety or concern. |
| 🙁 | slightly frowning face | A slightly frowning face with a sad expression, indicating mild disappointment or concern. |
| ☹️ | frowning face | A yellow face with downturned mouth and furrowed eyebrows, expressing sadness or disappointment. |
| 😮 | face with open mouth | A yellow face with wide eyes and an open mouth, conveying shock or surprise. |
| 😯 | hushed face | A yellow face with raised eyebrows and a hushed expression, indicating astonishment or being stunned. |
| 😲 | astonished face | A yellow face with wide eyes and an open mouth, showing a look of astonishment or shock. |
| 😳 | flushed face | A yellow face with flushed cheeks and wide eyes, appearing embarrassed or flustered. |
| 🥺 | pleading face | A yellow face with large, pleading eyes and a slight frown, expressing a desire for compassion or mercy. |
| 🥹 | face holding back tears | A yellow face with teary eyes and a quivering mouth, indicating an emotional struggle to hold back tears. |
| 😦 | frowning face with open mouth | A yellow face with a frown and an open mouth, expressing shock or concern. |
| 😧 | anguished face | A yellow face with wide eyes and a frown, showing anguish or distress. |
| 😨 | fearful face | A yellow face with wide eyes and a fearful expression, indicating anxiety or fear. |
| 😰 | anxious face with sweat | A yellow face with a worried expression and sweat droplets on its forehead, showing anxiety or fear. |
| 😥 | sad but relieved face | A yellow face with a slight frown and a tear, conveying sadness mixed with relief. |
| 😢 | crying face | A yellow face with tears streaming down its cheeks, expressing deep sadness or sorrow. |
| 😭 | loudly crying face | A yellow face with tears flowing freely and an open mouth, indicating loud crying or distress. |
| 😱 | face screaming in fear | A yellow face with wide eyes and an open mouth, screaming in fear or horror. |
| 😖 | confounded face | A yellow face with furrowed brows and a grimace, expressing confusion or frustration. |
| 😣 | persevering face | A yellow face with clenched teeth and a furrowed brow, indicating perseverance through difficulty. |
| 😞 | disappointed face | A yellow face with downturned eyes and a frown, expressing disappointment or sadness. |
| 😓 | downcast face with sweat | A yellow face with a downcast expression and sweat droplets, indicating stress or anxiety. |
| 😩 | weary face | A yellow face with closed eyes and a frown, showing weariness or frustration. |
| 😫 | tired face | A yellow face with closed eyes and a distressed expression, conveying tiredness or exhaustion. |
| 🥱 | yawning face | A yellow face with closed eyes and a wide open mouth in a yawn, indicating boredom or sleepiness. |
| 😤 | face with steam from nose | A yellow face with narrowed eyes and steam coming from its nose, expressing anger or frustration. |
| 😡 | enraged face | A red face with furrowed brows and a frown, indicating intense anger. |
| 😠 | angry face | A yellow face with a frown and narrowed eyes, expressing anger or frustration. |
| 🤬 | face with symbols on mouth | A yellow face with angry eyebrows and symbols covering its mouth, indicating cursing or strong discontent. |
| 😈 | smiling face with horns | A purple face with a mischievous grin and two pointed horns, representing a devilish character. |
| 👿 | angry face with horns | A red face with a frown and two pointed horns, conveying an angry or devilish demeanor. |
| 💀 | skull | A white skull with empty eye sockets and a toothy grin, representing death or danger. |
| ☠️ | skull and crossbones | A skull and crossbones symbol, representing danger or poison. |
| 💩 | pile of poo | A brown pile shaped like a swirl, with a smiling face, representing humor or silliness. |
| 🤡 | clown face | A clown face with a big red nose, colorful hair, and a wide smile, representing fun or silliness. |
| 👹 | ogre | A green ogre face with sharp teeth and a fierce expression, representing a mythical creature. |
| 👺 | goblin | A red goblin face with a scowl and pointed ears, representing anger or mischief. |
| 👻 | ghost | A white ghost with a floating appearance and a playful expression, representing spookiness. |
| 👽 | alien | A green alien face with large black eyes and a small mouth, representing extraterrestrial life. |
| 👾 | alien monster | A pixelated alien monster with a blocky shape and a playful expression, representing video game culture. |
| 🤖 | robot | A gray robot face with a flat mouth and two eyes, representing technology or artificial intelligence. |
| 😺 | grinning cat | A yellow cat face with a broad grin and open mouth, showing happiness or playfulness. |
| 😸 | grinning cat with smiling eyes | A yellow cat face with a wide grin and smiling eyes, conveying joy or contentment. |
| 😹 | cat with tears of joy | A gray cat with a wide, open-mouthed smile, squinting eyes, and tears of joy streaming down its face. |
| 😻 | smiling cat with heart-eyes | A gray cat with large, heart-shaped eyes and a big smile, radiating love and affection. |
| 😼 | cat with wry smile | A gray cat with a sly, wry smile and half-closed eyes, suggesting a mischievous or ironic expression. |
| 😽 | kissing cat | A gray cat with closed eyes and puckered lips, as if blowing a kiss, conveying affection. |
| 🙀 | weary cat | A gray cat with wide eyes and raised eyebrows, expressing surprise or weariness, as if shocked. |
| 😿 | crying cat | A gray cat with a sad expression, large teardrops falling from its eyes, indicating distress or sorrow. |
| 😾 | pouting cat | A gray cat with a frown and narrowed eyes, looking displeased or pouting. |
| 🙈 | see-no-evil monkey | A monkey face with a neutral expression covering its eyes with both hands, symbolizing the act of not looking. |
| 🙉 | hear-no-evil monkey | A monkey face with a neutral expression covering its ears with both hands, symbolizing the act of not hearing. |
| 🙊 | speak-no-evil monkey | A monkey face with a neutral expression covering its mouth with both hands, symbolizing the act of not speaking. |
| 💌 | love letter | An envelope with a heart on it, colored pink, representing a love letter. |
| 💘 | heart with arrow | A red heart pierced by a golden arrow, symbolizing love and affection. |
| 💝 | heart with ribbon | A red heart wrapped in a pink ribbon, suggesting a gift of love. |
| 💖 | sparkling heart | A bright pink heart with sparkling accents, conveying excitement and affection. |
| 💗 | growing heart | A pink heart that appears to be growing larger, symbolizing expanding love. |
| 💓 | beating heart | A red heart with a rhythmic pulse effect, representing a beating heart. |
| 💞 | revolving hearts | Two pink hearts revolving around each other, symbolizing mutual love and affection. |
| 💕 | two hearts | Two pink hearts side by side, representing love and romance. |
| 💟 | heart decoration | A decorative heart in purple, symbolizing love and affection. |
| ❣️ | heart exclamation | A bold red heart with an exclamation mark, emphasizing strong feelings of love. |
| 💔 | broken heart | A red heart that is split in two, symbolizing heartbreak and sadness. |
| ❤️🔥 | heart on fire | A red heart engulfed in flames, symbolizing passionate love or intense emotions. |
| ❤️🩹 | mending heart | A red heart with a bandage wrapped around it, symbolizing healing from emotional pain. |
| ❤️ | red heart | A classic red heart, representing love and affection. |
| 🩷 | pink heart | A soft pink heart, symbolizing cuteness and affection. |
| 🧡 | orange heart | An orange heart, representing warmth and friendship. |
| 💛 | yellow heart | A bright yellow heart, symbolizing happiness and friendship. |
| 💚 | green heart | A green heart, representing nature, growth, and harmony. |
| 💙 | blue heart | A blue heart, symbolizing calmness and trust. |
| 🩵 | light blue heart | A light blue heart, representing serenity and tranquility. |
| 💜 | purple heart | A purple heart, symbolizing compassion and love. |
| 🤎 | brown heart | A brown heart, representing stability and support. |
| 🖤 | black heart | A black heart, often associated with darkness or a rebellious attitude. |
| 🩶 | grey heart | A gray heart, symbolizing neutrality or balance in emotions. |
| 🤍 | white heart | A white heart, representing purity and innocence. |
| 💋 | kiss mark | A pair of lips with a bright red kiss mark, symbolizing affection and romance. |
| 💯 | hundred points | A bold red ‘100’ symbol, often used to signify perfection or agreement. |
| 💢 | anger symbol | A comic-style symbol of anger, resembling a jagged explosion. |
| 💥 | collision | A bright explosion graphic, symbolizing a collision or impact. |
| 💫 | dizzy | A swirling star with sparkling effects, suggesting dizziness or a magical feeling. |
| 💦 | sweat droplets | Two blue droplets, resembling sweat, are depicted, with a slight shine to suggest moisture. |
| 💨 | dashing away | A white cloud shape with a tail, suggesting movement, appears as if it’s dashing away quickly. |
| 🕳️ | hole | A simple black circle, representing a hole, with a flat bottom and no additional features. |
| 💬 | speech balloon | A rounded speech balloon with a pointed tail, typically in a light blue color, indicating dialogue or a message. |
| 👁️🗨️ | eye in speech bubble | An eye is set inside a speech bubble, combining the elements of observation and conversation. |
| 🗨️ | left speech bubble | A left-facing speech bubble with a pointed tail, usually in a light color, indicating dialogue. |
| 🗯️ | right anger bubble | A jagged speech bubble with a pointed tail, suggesting anger or strong emotion, typically in a light color. |
| 💭 | thought balloon | A cloud-like thought balloon, often in white or light blue, with small bubbles indicating daydreaming or contemplation. |
| 💤 | ZZZ | Three Z’s stacked vertically, in a light blue or white color, representing sleep or snoring. |
People & Body (2261)
| Emoji | Name | Description |
|---|---|---|
| 👋 | waving hand | A hand with fingers spread open, palm facing forward, in a neutral skin tone, suggesting a wave or greeting. |
| 👋🏻 | waving hand: light skin tone | A hand with fingers spread open, palm facing forward, in a light skin tone. |
| 👋🏼 | waving hand: medium-light skin tone | A hand with fingers spread open, palm facing forward, in a medium-light skin tone. |
| 👋🏽 | waving hand: medium skin tone | A hand with fingers spread open, palm facing forward, in a medium skin tone. |
| 👋🏾 | waving hand: medium-dark skin tone | A hand with fingers spread open, palm facing forward, in a medium-dark skin tone. |
| 👋🏿 | waving hand: dark skin tone | A hand with fingers spread open, palm facing forward, in a dark skin tone. |
| 🤚 | raised back of hand | The back of a hand is raised with fingers extended, palm facing away, indicating a stop gesture. |
| 🤚🏻 | raised back of hand: light skin tone | The back of a hand raised with fingers extended, in a light skin tone. |
| 🤚🏼 | raised back of hand: medium-light skin tone | The back of a hand raised with fingers extended, in a medium-light skin tone. |
| 🤚🏽 | raised back of hand: medium skin tone | The back of a hand raised with fingers extended, in a medium skin tone. |
| 🤚🏾 | raised back of hand: medium-dark skin tone | The back of a hand raised with fingers extended, in a medium-dark skin tone. |
| 🤚🏿 | raised back of hand: dark skin tone | The back of a hand raised with fingers extended, in a dark skin tone. |
| 🖐️ | hand with fingers splayed | A hand with fingers splayed wide open, palm facing forward, suggesting a greeting or stop gesture. |
| 🖐🏻 | hand with fingers splayed: light skin tone | A hand with fingers splayed wide open, palm facing forward, in a light skin tone. |
| 🖐🏼 | hand with fingers splayed: medium-light skin tone | A hand with fingers splayed wide open, palm facing forward, in a medium-light skin tone. |
| 🖐🏽 | hand with fingers splayed: medium skin tone | A hand with fingers splayed wide open, palm facing forward, in a medium skin tone. |
| 🖐🏾 | hand with fingers splayed: medium-dark skin tone | A hand with fingers splayed wide open, palm facing forward, in a medium-dark skin tone. |
| 🖐🏿 | hand with fingers splayed: dark skin tone | A hand with fingers splayed wide open, palm facing forward, in a dark skin tone. |
| ✋ | raised hand | A hand raised with fingers extended, palm facing forward, often used to indicate stop or high five. |
| ✋🏻 | raised hand: light skin tone | A raised hand with fingers extended, in a light skin tone. |
| ✋🏼 | raised hand: medium-light skin tone | A raised hand with fingers extended, in a medium-light skin tone. |
| ✋🏽 | raised hand: medium skin tone | A raised hand with fingers extended, in a medium skin tone. |
| ✋🏾 | raised hand: medium-dark skin tone | A raised hand with fingers extended, in a medium-dark skin tone. |
| ✋🏿 | raised hand: dark skin tone | A raised hand with fingers extended, in a dark skin tone. |
| 🖖 | vulcan salute | A hand making the Vulcan salute, with the palm facing forward and fingers split between the middle and ring fingers. |
| 🖖🏻 | vulcan salute: light skin tone | A hand making the Vulcan salute, in a light skin tone. |
| 🖖🏼 | vulcan salute: medium-light skin tone | A hand making the Vulcan salute, in a medium-light skin tone. |
| 🖖🏽 | vulcan salute: medium skin tone | A hand making the Vulcan salute, in a medium skin tone. |
| 🖖🏾 | vulcan salute: medium-dark skin tone | A hand making the Vulcan salute, in a medium-dark skin tone. |
| 🖖🏿 | vulcan salute: dark skin tone | A hand making the Vulcan salute, in a dark skin tone. |
| 🫱 | rightwards hand | A hand reaching out to the right, with fingers extended and palm facing up, suggesting an offering or handshake. |
| 🫱🏻 | rightwards hand: light skin tone | A right hand with fingers extended and palm facing right, depicted in a light skin tone. |
| 🫱🏼 | rightwards hand: medium-light skin tone | A right hand with fingers extended and palm facing right, depicted in a medium-light skin tone. |
| 🫱🏽 | rightwards hand: medium skin tone | A right hand with fingers extended and palm facing right, depicted in a medium skin tone. |
| 🫱🏾 | rightwards hand: medium-dark skin tone | A right hand with fingers extended and palm facing right, depicted in a medium-dark skin tone. |
| 🫱🏿 | rightwards hand: dark skin tone | A right hand with fingers extended and palm facing right, depicted in a dark skin tone. |
| 🫲 | leftwards hand | A left hand with fingers extended and palm facing left. |
| 🫲🏻 | leftwards hand: light skin tone | A left hand with fingers extended and palm facing left, depicted in a light skin tone. |
| 🫲🏼 | leftwards hand: medium-light skin tone | A left hand with fingers extended and palm facing left, depicted in a medium-light skin tone. |
| 🫲🏽 | leftwards hand: medium skin tone | A left hand with fingers extended and palm facing left, depicted in a medium skin tone. |
| 🫲🏾 | leftwards hand: medium-dark skin tone | A left hand with fingers extended and palm facing left, depicted in a medium-dark skin tone. |
| 🫲🏿 | leftwards hand: dark skin tone | A left hand with fingers extended and palm facing left, depicted in a dark skin tone. |
| 🫳 | palm down hand | A hand with palm facing down and fingers extended, suggesting a dismissive gesture. |
| 🫳🏻 | palm down hand: light skin tone | A hand with palm facing down and fingers extended, depicted in a light skin tone. |
| 🫳🏼 | palm down hand: medium-light skin tone | A hand with palm facing down and fingers extended, depicted in a medium-light skin tone. |
| 🫳🏽 | palm down hand: medium skin tone | A hand with palm facing down and fingers extended, depicted in a medium skin tone. |
| 🫳🏾 | palm down hand: medium-dark skin tone | A hand with palm facing down and fingers extended, depicted in a medium-dark skin tone. |
| 🫳🏿 | palm down hand: dark skin tone | A hand with palm facing down and fingers extended, depicted in a dark skin tone. |
| 🫴 | palm up hand | A hand with palm facing up and fingers extended, suggesting an inviting gesture. |
| 🫴🏻 | palm up hand: light skin tone | A hand with palm facing up and fingers extended, depicted in a light skin tone. |
| 🫴🏼 | palm up hand: medium-light skin tone | A hand with palm facing up and fingers extended, depicted in a medium-light skin tone. |
| 🫴🏽 | palm up hand: medium skin tone | A hand with palm facing up and fingers extended, depicted in a medium skin tone. |
| 🫴🏾 | palm up hand: medium-dark skin tone | A hand with palm facing up and fingers extended, depicted in a medium-dark skin tone. |
| 🫴🏿 | palm up hand: dark skin tone | A hand with palm facing up and fingers extended, depicted in a dark skin tone. |
| 🫷 | leftwards pushing hand | A hand with fingers extended and palm facing left, as if pushing something away. |
| 🫷🏻 | leftwards pushing hand: light skin tone | A hand with fingers extended and palm facing left, depicted in a light skin tone. |
| 🫷🏼 | leftwards pushing hand: medium-light skin tone | A hand with fingers extended and palm facing left, depicted in a medium-light skin tone. |
| 🫷🏽 | leftwards pushing hand: medium skin tone | A hand with fingers extended and palm facing left, depicted in a medium skin tone. |
| 🫷🏾 | leftwards pushing hand: medium-dark skin tone | A hand with fingers extended and palm facing left, depicted in a medium-dark skin tone. |
| 🫷🏿 | leftwards pushing hand: dark skin tone | A hand with fingers extended and palm facing left, depicted in a dark skin tone. |
| 🫸 | rightwards pushing hand | A hand with fingers extended and palm facing right, as if pushing something away. |
| 🫸🏻 | rightwards pushing hand: light skin tone | A hand with fingers extended and palm facing right, depicted in a light skin tone. |
| 🫸🏼 | rightwards pushing hand: medium-light skin tone | A hand with fingers extended and palm facing right, depicted in a medium-light skin tone. |
| 🫸🏽 | rightwards pushing hand: medium skin tone | A hand with fingers extended and palm facing right, depicted in a medium skin tone. |
| 🫸🏾 | rightwards pushing hand: medium-dark skin tone | A hand with fingers extended and palm facing right, depicted in a medium-dark skin tone. |
| 🫸🏿 | rightwards pushing hand: dark skin tone | A hand with fingers extended and palm facing right, depicted in a dark skin tone. |
| 👌 | OK hand | A hand forming an ‘OK’ gesture with the thumb and index finger touching, while the other fingers are extended. |
| 👌🏻 | OK hand: light skin tone | A hand forming an ‘OK’ gesture with the thumb and index finger touching, depicted in a light skin tone. |
| 👌🏼 | OK hand: medium-light skin tone | A hand forming an ‘OK’ gesture with the thumb and index finger touching, depicted in a medium-light skin tone. |
| 👌🏽 | OK hand: medium skin tone | A hand forming an ‘OK’ gesture with the thumb and index finger touching, depicted in a medium skin tone. |
| 👌🏾 | OK hand: medium-dark skin tone | A hand forming an ‘OK’ gesture with the thumb and index finger touching, depicted in a medium-dark skin tone. |
| 👌🏿 | OK hand: dark skin tone | A hand making an ‘OK’ gesture, with a dark skin tone, fingers curved and thumb touching the index finger. |
| 🤌 | pinched fingers | A hand with fingers pinched together, palm facing up, suggesting a questioning or emphasizing gesture. |
| 🤌🏻 | pinched fingers: light skin tone | A hand with fingers pinched together, palm facing up, featuring a light skin tone. |
| 🤌🏼 | pinched fingers: medium-light skin tone | A hand with fingers pinched together, palm facing up, with a medium-light skin tone. |
| 🤌🏽 | pinched fingers: medium skin tone | A hand with fingers pinched together, palm facing up, showing a medium skin tone. |
| 🤌🏾 | pinched fingers: medium-dark skin tone | A hand with fingers pinched together, palm facing up, displaying a medium-dark skin tone. |
| 🤌🏿 | pinched fingers: dark skin tone | A hand with fingers pinched together, palm facing up, characterized by a dark skin tone. |
| 🤏 | pinching hand | A hand with fingers slightly bent and pinching together, palm facing up, indicating a small amount. |
| 🤏🏻 | pinching hand: light skin tone | A hand with fingers slightly bent and pinching together, palm facing up, featuring a light skin tone. |
| 🤏🏼 | pinching hand: medium-light skin tone | A hand with fingers slightly bent and pinching together, palm facing up, with a medium-light skin tone. |
| 🤏🏽 | pinching hand: medium skin tone | A hand with fingers slightly bent and pinching together, palm facing up, showing a medium skin tone. |
| 🤏🏾 | pinching hand: medium-dark skin tone | A hand with fingers slightly bent and pinching together, palm facing up, displaying a medium-dark skin tone. |
| 🤏🏿 | pinching hand: dark skin tone | A hand with fingers slightly bent and pinching together, palm facing up, characterized by a dark skin tone. |
| ✌️ | victory hand | A hand with the index and middle fingers raised in a V shape, palm facing outward, symbolizing peace. |
| ✌🏻 | victory hand: light skin tone | A hand with the index and middle fingers raised in a V shape, palm facing outward, featuring a light skin tone. |
| ✌🏼 | victory hand: medium-light skin tone | A hand with the index and middle fingers raised in a V shape, palm facing outward, with a medium-light skin tone. |
| ✌🏽 | victory hand: medium skin tone | A hand with the index and middle fingers raised in a V shape, palm facing outward, showing a medium skin tone. |
| ✌🏾 | victory hand: medium-dark skin tone | A hand with the index and middle fingers raised in a V shape, palm facing outward, displaying a medium-dark skin tone. |
| ✌🏿 | victory hand: dark skin tone | A hand with the index and middle fingers raised in a V shape, palm facing outward, characterized by a dark skin tone. |
| 🤞 | crossed fingers | A hand with fingers crossed, palm facing up, symbolizing hope or luck. |
| 🤞🏻 | crossed fingers: light skin tone | A hand with fingers crossed, palm facing up, featuring a light skin tone. |
| 🤞🏼 | crossed fingers: medium-light skin tone | A hand with fingers crossed, palm facing up, with a medium-light skin tone. |
| 🤞🏽 | crossed fingers: medium skin tone | A hand with fingers crossed, palm facing up, showing a medium skin tone. |
| 🤞🏾 | crossed fingers: medium-dark skin tone | A hand with fingers crossed, palm facing up, displaying a medium-dark skin tone. |
| 🤞🏿 | crossed fingers: dark skin tone | A hand with fingers crossed, palm facing up, characterized by a dark skin tone. |
| 🫰 | hand with index finger and thumb crossed | A hand with the index finger and thumb crossed, palm facing up, often associated with a gesture of love or affection. |
| 🫰🏻 | hand with index finger and thumb crossed: light skin tone | A hand with the index finger and thumb crossed, palm facing up, featuring a light skin tone. |
| 🫰🏼 | hand with index finger and thumb crossed: medium-light skin tone | A hand with the index finger and thumb crossed, palm facing up, with a medium-light skin tone. |
| 🫰🏽 | hand with index finger and thumb crossed: medium skin tone | A hand with the index finger and thumb crossed, palm facing up, showing a medium skin tone. |
| 🫰🏾 | hand with index finger and thumb crossed: medium-dark skin tone | A hand with the index finger and thumb crossed, palm facing up, displaying a medium-dark skin tone. |
| 🫰🏿 | hand with index finger and thumb crossed: dark skin tone | A hand with the index finger and thumb crossed, palm facing up, characterized by a dark skin tone. |
| 🤟 | love-you gesture | A hand with the pinky and thumb extended while the other fingers are curled down, often used to express love. |
| 🤟🏻 | love-you gesture: light skin tone | A hand with the pinky and thumb extended while the other fingers are curled down, featuring a light skin tone. |
| 🤟🏼 | love-you gesture: medium-light skin tone | A hand with the pinky and thumb extended while the other fingers are curled down, with a medium-light skin tone. |
| 🤟🏽 | love-you gesture: medium skin tone | A hand with the pinky and thumb extended while the other fingers are curled down, showing a medium skin tone. |
| 🤟🏾 | love-you gesture: medium-dark skin tone | A hand with the pinky and thumb extended while the other fingers are curled down, displaying a medium-dark skin tone. |
| 🤟🏿 | love-you gesture: dark skin tone | A hand with the pinky and thumb extended while the other fingers are curled down, characterized by a dark skin tone. |
| 🤘 | sign of the horns | A hand with the pinky and index fingers raised while the other fingers are curled down, often associated with rock music. |
| 🤘🏻 | sign of the horns: light skin tone | A hand with the pinky and index fingers raised while the other fingers are curled down, featuring a light skin tone. |
| 🤘🏼 | sign of the horns: medium-light skin tone | A hand with the pinky and index fingers raised while the other fingers are curled down, with a medium-light skin tone. |
| 🤘🏽 | sign of the horns: medium skin tone | A hand with the pinky and index finger raised, forming the ‘sign of the horns’, with a medium skin tone. |
| 🤘🏾 | sign of the horns: medium-dark skin tone | A hand with the pinky and index finger raised, forming the ‘sign of the horns’, with a medium-dark skin tone. |
| 🤘🏿 | sign of the horns: dark skin tone | A hand with the pinky and index finger raised, forming the ‘sign of the horns’, with a dark skin tone. |
| 🤙 | call me hand | A hand with the thumb and pinky extended, resembling a gesture for ‘call me’, in a neutral skin tone. |
| 🤙🏻 | call me hand: light skin tone | A hand with the thumb and pinky extended, resembling a gesture for ‘call me’, with a light skin tone. |
| 🤙🏼 | call me hand: medium-light skin tone | A hand with the thumb and pinky extended, resembling a gesture for ‘call me’, with a medium-light skin tone. |
| 🤙🏽 | call me hand: medium skin tone | A hand with the thumb and pinky extended, resembling a gesture for ‘call me’, with a medium skin tone. |
| 🤙🏾 | call me hand: medium-dark skin tone | A hand with the thumb and pinky extended, resembling a gesture for ‘call me’, with a medium-dark skin tone. |
| 🤙🏿 | call me hand: dark skin tone | A hand with the thumb and pinky extended, resembling a gesture for ‘call me’, with a dark skin tone. |
| 👈 | backhand index pointing left | A hand with the back of the fingers facing outward, pointing to the left with the index finger extended. |
| 👈🏻 | backhand index pointing left: light skin tone | A hand with the back of the fingers facing outward, pointing to the left with the index finger extended, in a light skin tone. |
| 👈🏼 | backhand index pointing left: medium-light skin tone | A hand with the back of the fingers facing outward, pointing to the left with the index finger extended, in a medium-light skin tone. |
| 👈🏽 | backhand index pointing left: medium skin tone | A hand with the back of the fingers facing outward, pointing to the left with the index finger extended, in a medium skin tone. |
| 👈🏾 | backhand index pointing left: medium-dark skin tone | A hand with the back of the fingers facing outward, pointing to the left with the index finger extended, in a medium-dark skin tone. |
| 👈🏿 | backhand index pointing left: dark skin tone | A hand with the back of the fingers facing outward, pointing to the left with the index finger extended, in a dark skin tone. |
| 👉 | backhand index pointing right | A hand with the back of the fingers facing outward, pointing to the right with the index finger extended. |
| 👉🏻 | backhand index pointing right: light skin tone | A hand with the back of the fingers facing outward, pointing to the right with the index finger extended, in a light skin tone. |
| 👉🏼 | backhand index pointing right: medium-light skin tone | A hand with the back of the fingers facing outward, pointing to the right with the index finger extended, in a medium-light skin tone. |
| 👉🏽 | backhand index pointing right: medium skin tone | A hand with the back of the fingers facing outward, pointing to the right with the index finger extended, in a medium skin tone. |
| 👉🏾 | backhand index pointing right: medium-dark skin tone | A hand with the back of the fingers facing outward, pointing to the right with the index finger extended, in a medium-dark skin tone. |
| 👉🏿 | backhand index pointing right: dark skin tone | A hand with the back of the fingers facing outward, pointing to the right with the index finger extended, in a dark skin tone. |
| 👆 | backhand index pointing up | A hand with the back of the fingers facing outward, pointing upward with the index finger extended. |
| 👆🏻 | backhand index pointing up: light skin tone | A hand with the back of the fingers facing outward, pointing upward with the index finger extended, in a light skin tone. |
| 👆🏼 | backhand index pointing up: medium-light skin tone | A hand with the back of the fingers facing outward, pointing upward with the index finger extended, in a medium-light skin tone. |
| 👆🏽 | backhand index pointing up: medium skin tone | A hand with the back of the fingers facing outward, pointing upward with the index finger extended, in a medium skin tone. |
| 👆🏾 | backhand index pointing up: medium-dark skin tone | A hand with the back of the fingers facing outward, pointing upward with the index finger extended, in a medium-dark skin tone. |
| 👆🏿 | backhand index pointing up: dark skin tone | A hand with the back of the fingers facing outward, pointing upward with the index finger extended, in a dark skin tone. |
| 🖕 | middle finger | A hand with the middle finger raised, showing a gesture that is often considered rude. |
| 🖕🏻 | middle finger: light skin tone | A hand with the middle finger raised, showing a gesture that is often considered rude, in a light skin tone. |
| 🖕🏼 | middle finger: medium-light skin tone | A hand with the middle finger raised, showing a gesture that is often considered rude, in a medium-light skin tone. |
| 🖕🏽 | middle finger: medium skin tone | A hand with the middle finger raised, showing a gesture that is often considered rude, in a medium skin tone. |
| 🖕🏾 | middle finger: medium-dark skin tone | A hand with the middle finger raised, showing a gesture that is often considered rude, in a medium-dark skin tone. |
| 🖕🏿 | middle finger: dark skin tone | A hand with the middle finger raised, showing a gesture that is often considered rude, in a dark skin tone. |
| 👇 | backhand index pointing down | A hand with the back of the fingers facing outward, pointing downward with the index finger extended. |
| 👇🏻 | backhand index pointing down: light skin tone | A hand with the back of the fingers facing outward, pointing downward with the index finger extended, in a light skin tone. |
| 👇🏼 | backhand index pointing down: medium-light skin tone | A hand with the back of the fingers facing outward, pointing downward with the index finger extended, in a medium-light skin tone. |
| 👇🏽 | backhand index pointing down: medium skin tone | A hand with the back of the fingers facing outward, pointing downward with the index finger extended, in a medium skin tone. |
| 👇🏾 | backhand index pointing down: medium-dark skin tone | A hand with the back of the fingers facing outward, pointing downward with the index finger extended, in a medium-dark skin tone. |
| 👇🏿 | backhand index pointing down: dark skin tone | A hand with the back of the fingers facing outward, pointing downward with the index finger extended, in a dark skin tone. |
| ☝️ | index pointing up | A hand with the index finger raised and pointing upward, in a neutral skin tone. |
| ☝🏻 | index pointing up: light skin tone | A raised hand with the index finger pointing upwards, featuring a light skin tone. |
| ☝🏼 | index pointing up: medium-light skin tone | A raised hand with the index finger pointing upwards, showcasing a medium-light skin tone. |
| ☝🏽 | index pointing up: medium skin tone | A raised hand with the index finger pointing upwards, displaying a medium skin tone. |
| ☝🏾 | index pointing up: medium-dark skin tone | A raised hand with the index finger pointing upwards, representing a medium-dark skin tone. |
| ☝🏿 | index pointing up: dark skin tone | A raised hand with the index finger pointing upwards, characterized by a dark skin tone. |
| 🫵 | index pointing at the viewer | A hand with the index finger extended, pointing directly at the viewer. |
| 🫵🏻 | index pointing at the viewer: light skin tone | A hand with the index finger extended, pointing at the viewer, featuring a light skin tone. |
| 🫵🏼 | index pointing at the viewer: medium-light skin tone | A hand with the index finger extended, pointing at the viewer, showcasing a medium-light skin tone. |
| 🫵🏽 | index pointing at the viewer: medium skin tone | A hand with the index finger extended, pointing at the viewer, displaying a medium skin tone. |
| 🫵🏾 | index pointing at the viewer: medium-dark skin tone | A hand with the index finger extended, pointing at the viewer, representing a medium-dark skin tone. |
| 🫵🏿 | index pointing at the viewer: dark skin tone | A hand with the index finger extended, pointing at the viewer, characterized by a dark skin tone. |
| 👍 | thumbs up | A hand with fingers closed and the thumb raised, indicating approval or a positive gesture. |
| 👍🏻 | thumbs up: light skin tone | A hand with fingers closed and the thumb raised, indicating approval, featuring a light skin tone. |
| 👍🏼 | thumbs up: medium-light skin tone | A hand with fingers closed and the thumb raised, indicating approval, showcasing a medium-light skin tone. |
| 👍🏽 | thumbs up: medium skin tone | A hand with fingers closed and the thumb raised, indicating approval, displaying a medium skin tone. |
| 👍🏾 | thumbs up: medium-dark skin tone | A hand with fingers closed and the thumb raised, indicating approval, representing a medium-dark skin tone. |
| 👍🏿 | thumbs up: dark skin tone | A hand with fingers closed and the thumb raised, indicating approval, characterized by a dark skin tone. |
| 👎 | thumbs down | A hand with fingers closed and the thumb pointing downwards, indicating disapproval or a negative gesture. |
| 👎🏻 | thumbs down: light skin tone | A hand with fingers closed and the thumb pointing downwards, indicating disapproval, featuring a light skin tone. |
| 👎🏼 | thumbs down: medium-light skin tone | A hand with fingers closed and the thumb pointing downwards, indicating disapproval, showcasing a medium-light skin tone. |
| 👎🏽 | thumbs down: medium skin tone | A hand with fingers closed and the thumb pointing downwards, indicating disapproval, displaying a medium skin tone. |
| 👎🏾 | thumbs down: medium-dark skin tone | A hand with fingers closed and the thumb pointing downwards, indicating disapproval, representing a medium-dark skin tone. |
| 👎🏿 | thumbs down: dark skin tone | A hand with fingers closed and the thumb pointing downwards, indicating disapproval, characterized by a dark skin tone. |
| ✊ | raised fist | A clenched fist raised in solidarity or strength. |
| ✊🏻 | raised fist: light skin tone | A clenched fist raised in solidarity, featuring a light skin tone. |
| ✊🏼 | raised fist: medium-light skin tone | A clenched fist raised in solidarity, showcasing a medium-light skin tone. |
| ✊🏽 | raised fist: medium skin tone | A clenched fist raised in solidarity, displaying a medium skin tone. |
| ✊🏾 | raised fist: medium-dark skin tone | A clenched fist raised in solidarity, representing a medium-dark skin tone. |
| ✊🏿 | raised fist: dark skin tone | A clenched fist raised in solidarity, characterized by a dark skin tone. |
| 👊 | oncoming fist | A fist coming towards the viewer, often used to signify agreement or camaraderie. |
| 👊🏻 | oncoming fist: light skin tone | A fist coming towards the viewer, featuring a light skin tone. |
| 👊🏼 | oncoming fist: medium-light skin tone | A fist coming towards the viewer, showcasing a medium-light skin tone. |
| 👊🏽 | oncoming fist: medium skin tone | A fist coming towards the viewer, displaying a medium skin tone. |
| 👊🏾 | oncoming fist: medium-dark skin tone | A fist coming towards the viewer, representing a medium-dark skin tone. |
| 👊🏿 | oncoming fist: dark skin tone | A fist coming towards the viewer, characterized by a dark skin tone. |
| 🤛 | left-facing fist | A left-facing fist, often used to signify a punch or greeting. |
| 🤛🏻 | left-facing fist: light skin tone | A left-facing fist, featuring a light skin tone. |
| 🤛🏼 | left-facing fist: medium-light skin tone | A left-facing fist, showcasing a medium-light skin tone. |
| 🤛🏽 | left-facing fist: medium skin tone | A left-facing fist, displaying a medium skin tone. |
| 🤛🏾 | left-facing fist: medium-dark skin tone | A left-facing fist, representing a medium-dark skin tone. |
| 🤛🏿 | left-facing fist: dark skin tone | A left-facing fist with a dark skin tone, the fingers are tightly closed into a fist shape. |
| 🤜 | right-facing fist | A right-facing fist with fingers tightly closed, positioned to the right. |
| 🤜🏻 | right-facing fist: light skin tone | A right-facing fist with a light skin tone, fingers tightly closed and angled to the right. |
| 🤜🏼 | right-facing fist: medium-light skin tone | A right-facing fist with a medium-light skin tone, fingers closed and pointing right. |
| 🤜🏽 | right-facing fist: medium skin tone | A right-facing fist with a medium skin tone, fingers tightly closed and directed to the right. |
| 🤜🏾 | right-facing fist: medium-dark skin tone | A right-facing fist with a medium-dark skin tone, fingers closed and angled right. |
| 🤜🏿 | right-facing fist: dark skin tone | A right-facing fist with a dark skin tone, fingers tightly closed and pointing to the right. |
| 👏 | clapping hands | Two hands coming together in a clapping motion, indicating applause or approval. |
| 👏🏻 | clapping hands: light skin tone | Two hands clapping together with a light skin tone, symbolizing applause. |
| 👏🏼 | clapping hands: medium-light skin tone | Two hands clapping together with a medium-light skin tone, expressing applause. |
| 👏🏽 | clapping hands: medium skin tone | Two hands clapping together with a medium skin tone, indicating appreciation. |
| 👏🏾 | clapping hands: medium-dark skin tone | Two hands clapping together with a medium-dark skin tone, representing applause. |
| 👏🏿 | clapping hands: dark skin tone | Two hands clapping together with a dark skin tone, symbolizing approval. |
| 🙌 | raising hands | Two hands raised upwards, palms facing forward, expressing celebration or praise. |
| 🙌🏻 | raising hands: light skin tone | Two hands raised with a light skin tone, palms up, symbolizing celebration. |
| 🙌🏼 | raising hands: medium-light skin tone | Two hands raised with a medium-light skin tone, palms facing up in a celebratory gesture. |
| 🙌🏽 | raising hands: medium skin tone | Two hands raised with a medium skin tone, palms up, indicating joy or celebration. |
| 🙌🏾 | raising hands: medium-dark skin tone | Two hands raised with a medium-dark skin tone, palms facing up, expressing praise. |
| 🙌🏿 | raising hands: dark skin tone | Two hands raised with a dark skin tone, palms up, symbolizing celebration or joy. |
| 🫶 | heart hands | Two hands forming a heart shape, symbolizing love and affection. |
| 🫶🏻 | heart hands: light skin tone | Two hands forming a heart shape with a light skin tone, representing love. |
| 🫶🏼 | heart hands: medium-light skin tone | Two hands forming a heart shape with a medium-light skin tone, symbolizing affection. |
| 🫶🏽 | heart hands: medium skin tone | Two hands forming a heart with a medium skin tone, expressing love. |
| 🫶🏾 | heart hands: medium-dark skin tone | Two hands creating a heart shape with a medium-dark skin tone, representing love. |
| 🫶🏿 | heart hands: dark skin tone | Two hands forming a heart shape with a dark skin tone, symbolizing affection. |
| 👐 | open hands | Two open hands facing upwards, suggesting an invitation or a gesture of giving. |
| 👐🏻 | open hands: light skin tone | Two open hands facing up with a light skin tone, indicating an invitation. |
| 👐🏼 | open hands: medium-light skin tone | Two open hands facing upwards with a medium-light skin tone, suggesting a welcoming gesture. |
| 👐🏽 | open hands: medium skin tone | Two open hands facing up with a medium skin tone, symbolizing an invitation. |
| 👐🏾 | open hands: medium-dark skin tone | Two open hands facing upwards with a medium-dark skin tone, indicating a welcoming gesture. |
| 👐🏿 | open hands: dark skin tone | Two open hands facing up with a dark skin tone, suggesting an invitation or offering. |
| 🤲 | palms up together | Two hands with palms up together, cupped as if in prayer or asking for something. |
| 🤲🏻 | palms up together: light skin tone | Two cupped hands with a light skin tone, palms up, suggesting prayer or a request. |
| 🤲🏼 | palms up together: medium-light skin tone | Two palms up together with a medium-light skin tone, indicating a gesture of prayer. |
| 🤲🏽 | palms up together: medium skin tone | Two hands with palms up together, cupped and showing a medium skin tone. |
| 🤲🏾 | palms up together: medium-dark skin tone | Two hands with palms up together, cupped and displaying a medium-dark skin tone. |
| 🤲🏿 | palms up together: dark skin tone | Two hands with palms up together, cupped and showing a dark skin tone. |
| 🤝 | handshake | Two hands clasped in a handshake, symbolizing agreement or partnership. |
| 🤝🏻 | handshake: light skin tone | A handshake between two hands with a light skin tone, indicating agreement. |
| 🤝🏼 | handshake: medium-light skin tone | A handshake between two hands with a medium-light skin tone, representing a deal. |
| 🤝🏽 | handshake: medium skin tone | A handshake between two hands, one with a medium skin tone and the other with a similar medium skin tone, symbolizing agreement or partnership. |
| 🤝🏾 | handshake: medium-dark skin tone | A handshake between two hands, one with a medium-dark skin tone and the other with a matching medium-dark skin tone, representing cooperation. |
| 🤝🏿 | handshake: dark skin tone | A handshake between two hands, both with dark skin tones, conveying unity or collaboration. |
| 🫱🏻🫲🏼 | handshake: light skin tone, medium-light skin tone | A handshake gesture where one hand is light-skinned and the other is medium-light-skinned, indicating a friendly agreement. |
| 🫱🏻🫲🏽 | handshake: light skin tone, medium skin tone | A handshake gesture with one light-skinned hand and one medium-skinned hand, symbolizing connection. |
| 🫱🏻🫲🏾 | handshake: light skin tone, medium-dark skin tone | A handshake between a light-skinned hand and a medium-dark-skinned hand, representing partnership. |
| 🫱🏻🫲🏿 | handshake: light skin tone, dark skin tone | A handshake gesture featuring a light-skinned hand and a dark-skinned hand, indicating collaboration. |
| 🫱🏼🫲🏻 | handshake: medium-light skin tone, light skin tone | A handshake where one hand is medium-light-skinned and the other is light-skinned, symbolizing agreement. |
| 🫱🏼🫲🏽 | handshake: medium-light skin tone, medium skin tone | A handshake between a medium-light-skinned hand and a medium-skinned hand, representing unity. |
| 🫱🏼🫲🏾 | handshake: medium-light skin tone, medium-dark skin tone | A handshake gesture with one medium-light-skinned hand and one medium-dark-skinned hand, indicating cooperation. |
| 🫱🏼🫲🏿 | handshake: medium-light skin tone, dark skin tone | A handshake between a medium-light-skinned hand and a dark-skinned hand, symbolizing partnership. |
| 🫱🏽🫲🏻 | handshake: medium skin tone, light skin tone | A handshake where one hand is medium-skinned and the other is light-skinned, representing connection. |
| 🫱🏽🫲🏼 | handshake: medium skin tone, medium-light skin tone | A handshake between a medium-skinned hand and a medium-light-skinned hand, indicating collaboration. |
| 🫱🏽🫲🏾 | handshake: medium skin tone, medium-dark skin tone | A handshake gesture featuring a medium-skinned hand and a medium-dark-skinned hand, symbolizing agreement. |
| 🫱🏽🫲🏿 | handshake: medium skin tone, dark skin tone | A handshake between a medium-skinned hand and a dark-skinned hand, representing unity. |
| 🫱🏾🫲🏻 | handshake: medium-dark skin tone, light skin tone | A handshake where one hand is medium-dark-skinned and the other is light-skinned, indicating partnership. |
| 🫱🏾🫲🏼 | handshake: medium-dark skin tone, medium-light skin tone | A handshake between a medium-dark-skinned hand and a medium-light-skinned hand, symbolizing cooperation. |
| 🫱🏾🫲🏽 | handshake: medium-dark skin tone, medium skin tone | A handshake gesture featuring a medium-dark-skinned hand and a medium-skinned hand, representing connection. |
| 🫱🏾🫲🏿 | handshake: medium-dark skin tone, dark skin tone | A handshake between a medium-dark-skinned hand and a dark-skinned hand, indicating unity. |
| 🫱🏿🫲🏻 | handshake: dark skin tone, light skin tone | A handshake where one hand is dark-skinned and the other is light-skinned, symbolizing collaboration. |
| 🫱🏿🫲🏼 | handshake: dark skin tone, medium-light skin tone | A handshake between a dark-skinned hand and a medium-light-skinned hand, representing partnership. |
| 🫱🏿🫲🏽 | handshake: dark skin tone, medium skin tone | A handshake gesture featuring a dark-skinned hand and a medium-skinned hand, indicating agreement. |
| 🫱🏿🫲🏾 | handshake: dark skin tone, medium-dark skin tone | A handshake between a dark-skinned hand and a medium-dark-skinned hand, symbolizing unity. |
| 🙏 | folded hands | Two hands pressed together in a prayer or gratitude gesture, often used to express thanks or a request. |
| 🙏🏻 | folded hands: light skin tone | Two light-skinned hands pressed together in a prayer gesture, symbolizing appreciation. |
| 🙏🏼 | folded hands: medium-light skin tone | Two medium-light-skinned hands pressed together in a gesture of thanks or prayer. |
| 🙏🏽 | folded hands: medium skin tone | Two medium-skinned hands pressed together, representing gratitude or a plea. |
| 🙏🏾 | folded hands: medium-dark skin tone | Two medium-dark-skinned hands pressed together in a prayer gesture, indicating appreciation. |
| 🙏🏿 | folded hands: dark skin tone | Two dark-skinned hands pressed together, symbolizing a gesture of thanks or a request. |
| ✍️ | writing hand | A hand holding a pen, poised to write, symbolizing the act of writing or drawing. |
| ✍🏻 | writing hand: light skin tone | A light-skinned hand holding a pen, ready to write, representing the act of writing. |
| ✍🏼 | writing hand: medium-light skin tone | A medium-light-skinned hand gripping a pen, indicating the action of writing. |
| ✍🏽 | writing hand: medium skin tone | A medium-skinned hand holding a pen, symbolizing the act of writing or note-taking. |
| ✍🏾 | writing hand: medium-dark skin tone | A medium-dark-skinned hand grasping a pen, representing the action of writing. |
| ✍🏿 | writing hand: dark skin tone | A dark-skinned hand holding a pen, poised to write, indicating the act of writing. |
| 💅 | nail polish | A hand with a manicured nail, often depicted with a shiny polish, symbolizing beauty and self-care. |
| 💅🏻 | nail polish: light skin tone | A light-skinned hand with a neatly polished nail, representing beauty and grooming. |
| 💅🏼 | nail polish: medium-light skin tone | A medium-light-skinned hand with a manicured nail, indicating self-care and beauty. |
| 💅🏽 | nail polish: medium skin tone | A medium-skinned hand with a polished nail, symbolizing care and beauty. |
| 💅🏾 | nail polish: medium-dark skin tone | A medium-dark-skinned hand with a manicured nail, representing beauty and self-grooming. |
| 💅🏿 | nail polish: dark skin tone | A hand with a dark skin tone, showcasing a manicured nail painted in a vibrant color. |
| 🤳 | selfie | A hand holding a smartphone at arm’s length, angled as if taking a selfie, with a relaxed expression. |
| 🤳🏻 | selfie: light skin tone | A hand with a light skin tone holding a smartphone, positioned for a selfie, conveying a cheerful vibe. |
| 🤳🏼 | selfie: medium-light skin tone | A hand with a medium-light skin tone gripping a smartphone, angled for a selfie with a bright expression. |
| 🤳🏽 | selfie: medium skin tone | A hand with a medium skin tone holding a smartphone, positioned for a selfie, exuding a lively demeanor. |
| 🤳🏾 | selfie: medium-dark skin tone | A hand with a medium-dark skin tone grasping a smartphone, angled for a selfie, radiating a fun atmosphere. |
| 🤳🏿 | selfie: dark skin tone | A hand with a dark skin tone holding a smartphone, positioned to take a selfie, reflecting a joyful attitude. |
| 💪 | flexed biceps | A muscular arm flexing its bicep, showcasing strength with a confident posture. |
| 💪🏻 | flexed biceps: light skin tone | A flexed bicep with a light skin tone, indicating strength and fitness. |
| 💪🏼 | flexed biceps: medium-light skin tone | A flexed bicep with a medium-light skin tone, representing strength and determination. |
| 💪🏽 | flexed biceps: medium skin tone | A flexed bicep with a medium skin tone, showcasing power and athleticism. |
| 💪🏾 | flexed biceps: medium-dark skin tone | A flexed bicep with a medium-dark skin tone, symbolizing strength and resilience. |
| 💪🏿 | flexed biceps: dark skin tone | A flexed bicep with a dark skin tone, embodying strength and vigor. |
| 🦾 | mechanical arm | A mechanical arm, designed with metallic elements, representing a prosthetic limb. |
| 🦿 | mechanical leg | A mechanical leg, featuring a sleek design and metallic details, symbolizing a prosthetic limb. |
| 🦵 | leg | A bent leg, showing the knee and lower limb, depicted in a neutral position. |
| 🦵🏻 | leg: light skin tone | A bent leg with a light skin tone, showcasing the knee and lower limb. |
| 🦵🏼 | leg: medium-light skin tone | A bent leg with a medium-light skin tone, highlighting the knee and lower limb. |
| 🦵🏽 | leg: medium skin tone | A bent leg with a medium skin tone, displaying the knee and lower limb. |
| 🦵🏾 | leg: medium-dark skin tone | A bent leg with a medium-dark skin tone, emphasizing the knee and lower limb. |
| 🦵🏿 | leg: dark skin tone | A bent leg with a dark skin tone, illustrating the knee and lower limb. |
| 🦶 | foot | A foot, depicted from the side, showing the toes and ankle in a neutral position. |
| 🦶🏻 | foot: light skin tone | A foot with a light skin tone, showing the toes and ankle. |
| 🦶🏼 | foot: medium-light skin tone | A foot with a medium-light skin tone, displaying the toes and ankle. |
| 🦶🏽 | foot: medium skin tone | A foot with a medium skin tone, highlighting the toes and ankle. |
| 🦶🏾 | foot: medium-dark skin tone | A foot with a medium-dark skin tone, showcasing the toes and ankle. |
| 🦶🏿 | foot: dark skin tone | A foot with a dark skin tone, illustrating the toes and ankle. |
| 👂 | ear | An ear, depicted in a simple shape, representing the organ of hearing. |
| 👂🏻 | ear: light skin tone | An ear with a light skin tone, illustrating the organ of hearing. |
| 👂🏼 | ear: medium-light skin tone | An ear with a medium-light skin tone, representing the organ of hearing. |
| 👂🏽 | ear: medium skin tone | An ear with a medium skin tone, depicting the organ of hearing. |
| 👂🏾 | ear: medium-dark skin tone | An ear with a medium-dark skin tone, illustrating the organ of hearing. |
| 👂🏿 | ear: dark skin tone | An ear with a dark skin tone, representing the organ of hearing. |
| 🦻 | ear with hearing aid | An ear with a hearing aid, showing a device attached to assist with hearing. |
| 🦻🏻 | ear with hearing aid: light skin tone | An ear with a hearing aid, featuring a light skin tone. |
| 🦻🏼 | ear with hearing aid: medium-light skin tone | An ear with a hearing aid, showcasing a medium-light skin tone. |
| 🦻🏽 | ear with hearing aid: medium skin tone | An ear with a hearing aid, depicted with a medium skin tone. |
| 🦻🏾 | ear with hearing aid: medium-dark skin tone | An ear with a hearing aid, illustrating a medium-dark skin tone. |
| 🦻🏿 | ear with hearing aid: dark skin tone | An ear with a hearing aid, represented with a dark skin tone. |
| 👃 | nose | A nose, depicted in a simple shape, representing the organ of smell. |
| 👃🏻 | nose: light skin tone | A light skin tone nose, depicted in a simple, rounded shape. |
| 👃🏼 | nose: medium-light skin tone | A medium-light skin tone nose, featuring a rounded and smooth shape. |
| 👃🏽 | nose: medium skin tone | A medium skin tone nose, represented with a rounded shape. |
| 👃🏾 | nose: medium-dark skin tone | A medium-dark skin tone nose, shown in a rounded form. |
| 👃🏿 | nose: dark skin tone | A dark skin tone nose, illustrated in a rounded shape. |
| 🧠 | brain | A pinkish brain with a wrinkled surface, resembling the shape of a human brain. |
| 🫀 | anatomical heart | A realistic, red anatomical heart with visible veins and arteries, showing its complex structure. |
| 🫁 | lungs | Two light pink lungs, shaped like a pair of inflated sacs, connected by a trachea. |
| 🦷 | tooth | A single white tooth with a smooth surface and rounded edges. |
| 🦴 | bone | A white bone, shaped like a wishbone or a simplified skeletal bone, with rounded ends. |
| 👀 | eyes | A pair of large, cartoonish eyes with white sclera and dark pupils, conveying a sense of curiosity. |
| 👁️ | eye | A single eye with a white sclera and a dark pupil, representing a simple eye shape. |
| 👅 | tongue | A pink tongue, elongated and slightly curled at the edges, suggesting a playful or tasting expression. |
| 👄 | mouth | A pair of red lips, slightly parted, suggesting a smile or kiss. |
| 🫦 | biting lip | Lips with a slight bite, depicted in a soft pink color, suggesting a flirty or anxious expression. |
| 👶 | baby | A small, round-faced baby with a soft appearance, typically depicted with a neutral expression. |
| 👶🏻 | baby: light skin tone | A light skin tone baby, characterized by a round face and soft features. |
| 👶🏼 | baby: medium-light skin tone | A medium-light skin tone baby, featuring a round face and gentle features. |
| 👶🏽 | baby: medium skin tone | A medium skin tone baby, depicted with a round face and soft, delicate features. |
| 👶🏾 | baby: medium-dark skin tone | A medium-dark skin tone baby, illustrated with a round face and gentle expression. |
| 👶🏿 | baby: dark skin tone | A dark skin tone baby, characterized by a round face and soft features. |
| 🧒 | child | A young child with a bright-eyed expression, depicted with a round face and simple features. |
| 🧒🏻 | child: light skin tone | A light skin tone child, featuring a round face and bright eyes. |
| 🧒🏼 | child: medium-light skin tone | A medium-light skin tone child, illustrated with a round face and cheerful expression. |
| 🧒🏽 | child: medium skin tone | A medium skin tone child, characterized by a round face and bright-eyed look. |
| 🧒🏾 | child: medium-dark skin tone | A medium-dark skin tone child, depicted with a round face and lively expression. |
| 🧒🏿 | child: dark skin tone | A dark skin tone child, featuring a round face and bright-eyed appearance. |
| 👦 | boy | A young boy with a bright-eyed expression, depicted with a round face and simple features. |
| 👦🏻 | boy: light skin tone | A light skin tone boy, characterized by a round face and bright eyes. |
| 👦🏼 | boy: medium-light skin tone | A medium-light skin tone boy, illustrated with a round face and cheerful expression. |
| 👦🏽 | boy: medium skin tone | A medium skin tone boy, depicted with a round face and lively expression. |
| 👦🏾 | boy: medium-dark skin tone | A medium-dark skin tone boy, featuring a round face and bright-eyed look. |
| 👦🏿 | boy: dark skin tone | A dark skin tone boy, characterized by a round face and cheerful expression. |
| 👧 | girl | A young girl with a bright-eyed expression, depicted with a round face and simple features. |
| 👧🏻 | girl: light skin tone | A light skin tone girl, featuring a round face and bright eyes. |
| 👧🏼 | girl: medium-light skin tone | A medium-light skin tone girl, illustrated with a round face and cheerful expression. |
| 👧🏽 | girl: medium skin tone | A medium skin tone girl, depicted with a round face and lively expression. |
| 👧🏾 | girl: medium-dark skin tone | A medium-dark skin tone girl, characterized by a round face and bright-eyed look. |
| 👧🏿 | girl: dark skin tone | A dark skin tone girl, featuring a round face and cheerful expression. |
| 🧑 | person | An adult person with a neutral expression, depicted with a round face and simple features. |
| 🧑🏻 | person: light skin tone | A person with light skin tone, represented as a simple humanoid figure. |
| 🧑🏼 | person: medium-light skin tone | A person with medium-light skin tone, depicted as a basic humanoid figure. |
| 🧑🏽 | person: medium skin tone | A person with medium skin tone, shown as a standard humanoid figure. |
| 🧑🏾 | person: medium-dark skin tone | A person with medium-dark skin tone, illustrated as a typical humanoid figure. |
| 🧑🏿 | person: dark skin tone | A person with dark skin tone, represented as a generic humanoid figure. |
| 👱 | person: blond hair | A person with blond hair, depicted as a basic humanoid figure with a distinct yellow hairstyle. |
| 👱🏻 | person: light skin tone, blond hair | A person with light skin tone and blond hair, shown as a simple humanoid figure with a bright yellow hairstyle. |
| 👱🏼 | person: medium-light skin tone, blond hair | A person with medium-light skin tone and blond hair, illustrated as a standard humanoid figure with a light yellow hairstyle. |
| 👱🏽 | person: medium skin tone, blond hair | A person with medium skin tone and blond hair, depicted as a typical humanoid figure with a golden blond hairstyle. |
| 👱🏾 | person: medium-dark skin tone, blond hair | A person with medium-dark skin tone and blond hair, represented as a humanoid figure with a darker blond hairstyle. |
| 👱🏿 | person: dark skin tone, blond hair | A person with dark skin tone and blond hair, shown as a simple humanoid figure with a deep blond hairstyle. |
| 👨 | man | An adult male figure, depicted as a basic humanoid shape. |
| 👨🏻 | man: light skin tone | An adult male with light skin tone, represented as a humanoid figure. |
| 👨🏼 | man: medium-light skin tone | An adult male with medium-light skin tone, illustrated as a standard humanoid figure. |
| 👨🏽 | man: medium skin tone | An adult male with medium skin tone, shown as a typical humanoid figure. |
| 👨🏾 | man: medium-dark skin tone | An adult male with medium-dark skin tone, depicted as a basic humanoid figure. |
| 👨🏿 | man: dark skin tone | An adult male with dark skin tone, represented as a generic humanoid figure. |
| 🧔 | person: beard | A person with a beard, depicted as a humanoid figure with facial hair. |
| 🧔🏻 | person: light skin tone, beard | A person with light skin tone and a beard, shown as a humanoid figure with light facial hair. |
| 🧔🏼 | person: medium-light skin tone, beard | A person with medium-light skin tone and a beard, illustrated as a standard humanoid figure with light facial hair. |
| 🧔🏽 | person: medium skin tone, beard | A person with medium skin tone and a beard, depicted as a typical humanoid figure with medium facial hair. |
| 🧔🏾 | person: medium-dark skin tone, beard | A person with medium-dark skin tone and a beard, represented as a humanoid figure with darker facial hair. |
| 🧔🏿 | person: dark skin tone, beard | A person with dark skin tone and a beard, shown as a generic humanoid figure with dark facial hair. |
| 🧔♂️ | man: beard | A male figure with a beard, depicted as a humanoid shape with facial hair. |
| 🧔🏻♂️ | man: light skin tone, beard | A male with light skin tone and a beard, represented as a humanoid figure with light facial hair. |
| 🧔🏼♂️ | man: medium-light skin tone, beard | A male with medium-light skin tone and a beard, illustrated as a standard humanoid figure with light facial hair. |
| 🧔🏽♂️ | man: medium skin tone, beard | A male with medium skin tone and a beard, depicted as a typical humanoid figure with medium facial hair. |
| 🧔🏾♂️ | man: medium-dark skin tone, beard | A male with medium-dark skin tone and a beard, represented as a humanoid figure with darker facial hair. |
| 🧔🏿♂️ | man: dark skin tone, beard | A male with dark skin tone and a beard, shown as a generic humanoid figure with dark facial hair. |
| 🧔♀️ | woman: beard | A female figure with a beard, depicted as a humanoid shape with facial hair. |
| 🧔🏻♀️ | woman: light skin tone, beard | A female with light skin tone and a beard, represented as a humanoid figure with light facial hair. |
| 🧔🏼♀️ | woman: medium-light skin tone, beard | A female with medium-light skin tone and a beard, illustrated as a standard humanoid figure with light facial hair. |
| 🧔🏽♀️ | woman: medium skin tone, beard | A female with medium skin tone and a beard, depicted as a typical humanoid figure with medium facial hair. |
| 🧔🏾♀️ | woman: medium-dark skin tone, beard | A female with medium-dark skin tone and a beard, represented as a humanoid figure with darker facial hair. |
| 🧔🏿♀️ | woman: dark skin tone, beard | A female with dark skin tone and a beard, shown as a generic humanoid figure with dark facial hair. |
| 👨🦰 | man: red hair | A male figure with red hair, depicted as a basic humanoid shape. |
| 👨🏻🦰 | man: light skin tone, red hair | A male with light skin tone and red hair, represented as a humanoid figure. |
| 👨🏼🦰 | man: medium-light skin tone, red hair | A male with medium-light skin tone and red hair, illustrated as a standard humanoid figure. |
| 👨🏽🦰 | man: medium skin tone, red hair | A male with medium skin tone and red hair, shown as a typical humanoid figure. |
| 👨🏾🦰 | man: medium-dark skin tone, red hair | A male with medium-dark skin tone and red hair, depicted as a basic humanoid figure. |
| 👨🏿🦰 | man: dark skin tone, red hair | A man with dark skin and bright red curly hair, smiling gently. |
| 👨🦱 | man: curly hair | A man with curly hair, looking straight ahead with a neutral expression. |
| 👨🏻🦱 | man: light skin tone, curly hair | A man with light skin and curly hair, smiling softly. |
| 👨🏼🦱 | man: medium-light skin tone, curly hair | A man with medium-light skin and curly hair, wearing a calm expression. |
| 👨🏽🦱 | man: medium skin tone, curly hair | A man with medium skin tone and curly hair, looking confidently ahead. |
| 👨🏾🦱 | man: medium-dark skin tone, curly hair | A man with medium-dark skin and curly hair, smiling warmly. |
| 👨🏿🦱 | man: dark skin tone, curly hair | A man with dark skin and curly hair, appearing cheerful. |
| 👨🦳 | man: white hair | A man with white hair, looking wise and thoughtful. |
| 👨🏻🦳 | man: light skin tone, white hair | A man with light skin and white hair, smiling gently. |
| 👨🏼🦳 | man: medium-light skin tone, white hair | A man with medium-light skin and white hair, looking serene. |
| 👨🏽🦳 | man: medium skin tone, white hair | A man with medium skin tone and white hair, appearing calm. |
| 👨🏾🦳 | man: medium-dark skin tone, white hair | A man with medium-dark skin and white hair, smiling softly. |
| 👨🏿🦳 | man: dark skin tone, white hair | A man with dark skin and white hair, looking wise and friendly. |
| 👨🦲 | man: bald | A bald man with a neutral expression, looking straight ahead. |
| 👨🏻🦲 | man: light skin tone, bald | A light-skinned bald man, smiling gently. |
| 👨🏼🦲 | man: medium-light skin tone, bald | A medium-light skinned bald man, looking calm. |
| 👨🏽🦲 | man: medium skin tone, bald | A medium-skinned bald man, appearing confident. |
| 👨🏾🦲 | man: medium-dark skin tone, bald | A medium-dark skinned bald man, smiling warmly. |
| 👨🏿🦲 | man: dark skin tone, bald | A dark-skinned bald man, looking cheerful. |
| 👩 | woman | A woman with a neutral expression, looking straight ahead. |
| 👩🏻 | woman: light skin tone | A light-skinned woman, smiling softly. |
| 👩🏼 | woman: medium-light skin tone | A medium-light skinned woman, appearing calm. |
| 👩🏽 | woman: medium skin tone | A medium-skinned woman, looking confidently ahead. |
| 👩🏾 | woman: medium-dark skin tone | A medium-dark skinned woman, smiling warmly. |
| 👩🏿 | woman: dark skin tone | A dark-skinned woman, looking cheerful. |
| 👩🦰 | woman: red hair | A woman with bright red curly hair, smiling gently. |
| 👩🏻🦰 | woman: light skin tone, red hair | A light-skinned woman with red curly hair, looking cheerful. |
| 👩🏼🦰 | woman: medium-light skin tone, red hair | A medium-light skinned woman with red curly hair, appearing calm. |
| 👩🏽🦰 | woman: medium skin tone, red hair | A medium-skinned woman with red curly hair, smiling softly. |
| 👩🏾🦰 | woman: medium-dark skin tone, red hair | A medium-dark skinned woman with red curly hair, looking confidently ahead. |
| 👩🏿🦰 | woman: dark skin tone, red hair | A dark-skinned woman with red curly hair, appearing cheerful. |
| 🧑🦰 | person: red hair | A person with bright red curly hair, smiling gently. |
| 🧑🏻🦰 | person: light skin tone, red hair | A light-skinned person with red curly hair, looking cheerful. |
| 🧑🏼🦰 | person: medium-light skin tone, red hair | A medium-light skinned person with red curly hair, appearing calm. |
| 🧑🏽🦰 | person: medium skin tone, red hair | A medium-skinned person with red curly hair, smiling softly. |
| 🧑🏾🦰 | person: medium-dark skin tone, red hair | A medium-dark skinned person with red curly hair, looking confidently ahead. |
| 🧑🏿🦰 | person: dark skin tone, red hair | A dark-skinned person with red curly hair, appearing cheerful. |
| 👩🦱 | woman: curly hair | A woman with curly hair, looking straight ahead with a neutral expression. |
| 👩🏻🦱 | woman: light skin tone, curly hair | A light-skinned woman with curly hair, smiling softly. |
| 👩🏼🦱 | woman: medium-light skin tone, curly hair | A medium-light skinned woman with curly hair, looking calm. |
| 👩🏽🦱 | woman: medium skin tone, curly hair | A woman with medium skin tone and curly hair, displaying a friendly expression. |
| 👩🏾🦱 | woman: medium-dark skin tone, curly hair | A woman with medium-dark skin tone and curly hair, looking cheerful. |
| 👩🏿🦱 | woman: dark skin tone, curly hair | A woman with dark skin tone and curly hair, wearing a warm smile. |
| 🧑🦱 | person: curly hair | A person with curly hair, exuding a neutral expression. |
| 🧑🏻🦱 | person: light skin tone, curly hair | A person with light skin tone and curly hair, appearing friendly. |
| 🧑🏼🦱 | person: medium-light skin tone, curly hair | A person with medium-light skin tone and curly hair, showing a pleasant demeanor. |
| 🧑🏽🦱 | person: medium skin tone, curly hair | A person with medium skin tone and curly hair, looking approachable. |
| 🧑🏾🦱 | person: medium-dark skin tone, curly hair | A person with medium-dark skin tone and curly hair, smiling warmly. |
| 🧑🏿🦱 | person: dark skin tone, curly hair | A person with dark skin tone and curly hair, radiating a friendly vibe. |
| 👩🦳 | woman: white hair | A woman with striking white hair, presenting a calm expression. |
| 👩🏻🦳 | woman: light skin tone, white hair | A woman with light skin tone and white hair, looking serene. |
| 👩🏼🦳 | woman: medium-light skin tone, white hair | A woman with medium-light skin tone and white hair, exuding a gentle demeanor. |
| 👩🏽🦳 | woman: medium skin tone, white hair | A woman with medium skin tone and white hair, appearing composed. |
| 👩🏾🦳 | woman: medium-dark skin tone, white hair | A woman with medium-dark skin tone and white hair, showing a peaceful expression. |
| 👩🏿🦳 | woman: dark skin tone, white hair | A woman with dark skin tone and white hair, radiating calmness. |
| 🧑🦳 | person: white hair | A person with white hair, conveying a neutral expression. |
| 🧑🏻🦳 | person: light skin tone, white hair | A person with light skin tone and white hair, looking tranquil. |
| 🧑🏼🦳 | person: medium-light skin tone, white hair | A person with medium-light skin tone and white hair, appearing relaxed. |
| 🧑🏽🦳 | person: medium skin tone, white hair | A person with medium skin tone and white hair, showing a composed demeanor. |
| 🧑🏾🦳 | person: medium-dark skin tone, white hair | A person with medium-dark skin tone and white hair, radiating calmness. |
| 🧑🏿🦳 | person: dark skin tone, white hair | A person with dark skin tone and white hair, looking serene. |
| 👩🦲 | woman: bald | A woman with a bald head, conveying a confident expression. |
| 👩🏻🦲 | woman: light skin tone, bald | A woman with light skin tone and a bald head, appearing self-assured. |
| 👩🏼🦲 | woman: medium-light skin tone, bald | A woman with medium-light skin tone and a bald head, exuding confidence. |
| 👩🏽🦲 | woman: medium skin tone, bald | A woman with medium skin tone and a bald head, looking empowered. |
| 👩🏾🦲 | woman: medium-dark skin tone, bald | A woman with medium-dark skin tone and a bald head, radiating strength. |
| 👩🏿🦲 | woman: dark skin tone, bald | A woman with dark skin tone and a bald head, showing determination. |
| 🧑🦲 | person: bald | A person with a bald head, displaying a neutral expression. |
| 🧑🏻🦲 | person: light skin tone, bald | A person with light skin tone and a bald head, looking confident. |
| 🧑🏼🦲 | person: medium-light skin tone, bald | A person with medium-light skin tone and a bald head, appearing self-assured. |
| 🧑🏽🦲 | person: medium skin tone, bald | A person with medium skin tone and a bald head, radiating empowerment. |
| 🧑🏾🦲 | person: medium-dark skin tone, bald | A person with medium-dark skin tone and a bald head, showing strength. |
| 🧑🏿🦲 | person: dark skin tone, bald | A person with dark skin tone and a bald head, conveying determination. |
| 👱♀️ | woman: blond hair | A woman with blond hair, smiling cheerfully. |
| 👱🏻♀️ | woman: light skin tone, blond hair | A woman with light skin tone and blond hair, appearing joyful. |
| 👱🏼♀️ | woman: medium-light skin tone, blond hair | A woman with medium-light skin tone and blond hair, looking happy. |
| 👱🏽♀️ | woman: medium skin tone, blond hair | A woman with medium skin tone and blond hair, radiating positivity. |
| 👱🏾♀️ | woman: medium-dark skin tone, blond hair | A woman with medium-dark skin tone and blond hair, smiling warmly. |
| 👱🏿♀️ | woman: dark skin tone, blond hair | A woman with dark skin tone and blond hair, displaying a bright smile. |
| 👱♂️ | man: blond hair | A man with blond hair, looking cheerful. |
| 👱🏻♂️ | man: light skin tone, blond hair | A man with light skin and short, straight blond hair, looking straight ahead. |
| 👱🏼♂️ | man: medium-light skin tone, blond hair | A man with medium-light skin and short, straight blond hair, looking straight ahead. |
| 👱🏽♂️ | man: medium skin tone, blond hair | A man with medium skin and short, straight blond hair, looking straight ahead. |
| 👱🏾♂️ | man: medium-dark skin tone, blond hair | A man with medium-dark skin and short, straight blond hair, looking straight ahead. |
| 👱🏿♂️ | man: dark skin tone, blond hair | A man with dark skin and short, straight blond hair, looking straight ahead. |
| 🧓 | older person | An older person with gray hair and a neutral expression, wearing a simple outfit. |
| 🧓🏻 | older person: light skin tone | An older person with light skin and gray hair, wearing a simple outfit. |
| 🧓🏼 | older person: medium-light skin tone | An older person with medium-light skin and gray hair, wearing a simple outfit. |
| 🧓🏽 | older person: medium skin tone | An older person with medium skin and gray hair, wearing a simple outfit. |
| 🧓🏾 | older person: medium-dark skin tone | An older person with medium-dark skin and gray hair, wearing a simple outfit. |
| 🧓🏿 | older person: dark skin tone | An older person with dark skin and gray hair, wearing a simple outfit. |
| 👴 | old man | An old man with a bald head and a white beard, looking serious. |
| 👴🏻 | old man: light skin tone | An old man with light skin, a bald head, and a white beard, looking serious. |
| 👴🏼 | old man: medium-light skin tone | An old man with medium-light skin, a bald head, and a white beard, looking serious. |
| 👴🏽 | old man: medium skin tone | An old man with medium skin, a bald head, and a white beard, looking serious. |
| 👴🏾 | old man: medium-dark skin tone | An old man with medium-dark skin, a bald head, and a white beard, looking serious. |
| 👴🏿 | old man: dark skin tone | An old man with dark skin, a bald head, and a white beard, looking serious. |
| 👵 | old woman | An old woman with gray hair, looking kindly. |
| 👵🏻 | old woman: light skin tone | An old woman with light skin and gray hair, looking kindly. |
| 👵🏼 | old woman: medium-light skin tone | An old woman with medium-light skin and gray hair, looking kindly. |
| 👵🏽 | old woman: medium skin tone | An old woman with medium skin and gray hair, looking kindly. |
| 👵🏾 | old woman: medium-dark skin tone | An old woman with medium-dark skin and gray hair, looking kindly. |
| 👵🏿 | old woman: dark skin tone | An old woman with dark skin and gray hair, looking kindly. |
| 🙍 | person frowning | A person with a frown, looking displeased or annoyed. |
| 🙍🏻 | person frowning: light skin tone | A person with light skin and a frown, looking displeased or annoyed. |
| 🙍🏼 | person frowning: medium-light skin tone | A person with medium-light skin and a frown, looking displeased or annoyed. |
| 🙍🏽 | person frowning: medium skin tone | A person with medium skin and a frown, looking displeased or annoyed. |
| 🙍🏾 | person frowning: medium-dark skin tone | A person with medium-dark skin and a frown, looking displeased or annoyed. |
| 🙍🏿 | person frowning: dark skin tone | A person with dark skin and a frown, looking displeased or annoyed. |
| 🙍♂️ | man frowning | A man with a frown, looking displeased or annoyed. |
| 🙍🏻♂️ | man frowning: light skin tone | A man with light skin and a frown, looking displeased or annoyed. |
| 🙍🏼♂️ | man frowning: medium-light skin tone | A man with medium-light skin and a frown, looking displeased or annoyed. |
| 🙍🏽♂️ | man frowning: medium skin tone | A man with medium skin and a frown, looking displeased or annoyed. |
| 🙍🏾♂️ | man frowning: medium-dark skin tone | A man with medium-dark skin and a frown, looking displeased or annoyed. |
| 🙍🏿♂️ | man frowning: dark skin tone | A man with dark skin and a frown, looking displeased or annoyed. |
| 🙍♀️ | woman frowning | A woman with a frown, looking displeased or annoyed. |
| 🙍🏻♀️ | woman frowning: light skin tone | A woman with light skin and a frown, looking displeased or annoyed. |
| 🙍🏼♀️ | woman frowning: medium-light skin tone | A woman with medium-light skin and a frown, looking displeased or annoyed. |
| 🙍🏽♀️ | woman frowning: medium skin tone | A woman with medium skin and a frown, looking displeased or annoyed. |
| 🙍🏾♀️ | woman frowning: medium-dark skin tone | A woman with medium-dark skin and a frown, looking displeased or annoyed. |
| 🙍🏿♀️ | woman frowning: dark skin tone | A woman with dark skin has a frowning expression, her eyebrows furrowed and lips pressed together, conveying discontent. |
| 🙎 | person pouting | A person with a pouting expression, lips protruding and eyebrows slightly raised, suggesting disappointment or annoyance. |
| 🙎🏻 | person pouting: light skin tone | A person with light skin has a pouting expression, lips pushed out and a slight frown, indicating displeasure. |
| 🙎🏼 | person pouting: medium-light skin tone | A person with medium-light skin is pouting, their lips pushed forward and brows slightly furrowed, showing discontent. |
| 🙎🏽 | person pouting: medium skin tone | A person with medium skin displays a pouting expression, lips protruding and eyebrows raised, reflecting a sense of dissatisfaction. |
| 🙎🏾 | person pouting: medium-dark skin tone | A person with medium-dark skin has a pouting look, lips sticking out and eyebrows slightly raised, suggesting annoyance. |
| 🙎🏿 | person pouting: dark skin tone | A person with dark skin is pouting, their lips pushed out and a frown on their face, indicating displeasure. |
| 🙎♂️ | man pouting | A man is pouting, with his lips protruding and a slight frown, suggesting he is unhappy or dissatisfied. |
| 🙎🏻♂️ | man pouting: light skin tone | A man with light skin has a pouting expression, lips pushed out and eyebrows slightly raised, conveying disappointment. |
| 🙎🏼♂️ | man pouting: medium-light skin tone | A man with medium-light skin is pouting, lips protruding and a slight frown, indicating discontent. |
| 🙎🏽♂️ | man pouting: medium skin tone | A man with medium skin shows a pouting expression, lips sticking out and brows raised, reflecting annoyance. |
| 🙎🏾♂️ | man pouting: medium-dark skin tone | A man with medium-dark skin has a pouting look, lips pushed forward and a frown, suggesting displeasure. |
| 🙎🏿♂️ | man pouting: dark skin tone | A man with dark skin is pouting, his lips protruding and a frown on his face, indicating dissatisfaction. |
| 🙎♀️ | woman pouting | A woman is pouting, with her lips pushed out and a slight frown, suggesting she is unhappy or annoyed. |
| 🙎🏻♀️ | woman pouting: light skin tone | A woman with light skin has a pouting expression, lips protruding and eyebrows slightly raised, conveying displeasure. |
| 🙎🏼♀️ | woman pouting: medium-light skin tone | A woman with medium-light skin is pouting, her lips pushed forward and a frown, indicating discontent. |
| 🙎🏽♀️ | woman pouting: medium skin tone | A woman with medium skin displays a pouting expression, lips sticking out and eyebrows raised, reflecting annoyance. |
| 🙎🏾♀️ | woman pouting: medium-dark skin tone | A woman with medium-dark skin has a pouting look, lips pushed out and a frown, suggesting dissatisfaction. |
| 🙎🏿♀️ | woman pouting: dark skin tone | A woman with dark skin is pouting, her lips protruding and a frown on her face, indicating displeasure. |
| 🙅 | person gesturing NO | A person is gesturing ‘no’ with one hand raised and palm facing outward, displaying a clear rejection or denial. |
| 🙅🏻 | person gesturing NO: light skin tone | A person with light skin gestures ‘no’, raising one hand with the palm facing outward, indicating refusal. |
| 🙅🏼 | person gesturing NO: medium-light skin tone | A person with medium-light skin is gesturing ‘no’, their hand raised with the palm out, showing disapproval. |
| 🙅🏽 | person gesturing NO: medium skin tone | A person with medium skin is making a ‘no’ gesture, one hand raised with the palm facing outward, signaling rejection. |
| 🙅🏾 | person gesturing NO: medium-dark skin tone | A person with medium-dark skin gestures ‘no’, raising one hand with the palm outward, indicating denial. |
| 🙅🏿 | person gesturing NO: dark skin tone | A person with dark skin is gesturing ‘no’, their hand raised with the palm facing outwards, showing refusal. |
| 🙅♂️ | man gesturing NO | A man is gesturing ‘no’, with one hand raised and palm outward, clearly indicating rejection. |
| 🙅🏻♂️ | man gesturing NO: light skin tone | A man with light skin gestures ‘no’, raising one hand with the palm facing outward, signaling refusal. |
| 🙅🏼♂️ | man gesturing NO: medium-light skin tone | A man with medium-light skin is making a ‘no’ gesture, his hand raised with the palm out, indicating disapproval. |
| 🙅🏽♂️ | man gesturing NO: medium skin tone | A man with medium skin is gesturing ‘no’, one hand raised with the palm facing outward, signaling denial. |
| 🙅🏾♂️ | man gesturing NO: medium-dark skin tone | A man with medium-dark skin gestures ‘no’, raising one hand with the palm out, indicating rejection. |
| 🙅🏿♂️ | man gesturing NO: dark skin tone | A man with dark skin is gesturing ‘no’, his hand raised with the palm facing outward, showing refusal. |
| 🙅♀️ | woman gesturing NO | A woman is gesturing ‘no’, with one hand raised and palm outward, clearly indicating rejection. |
| 🙅🏻♀️ | woman gesturing NO: light skin tone | A woman with light skin gestures ‘no’, raising one hand with the palm facing outward, signaling refusal. |
| 🙅🏼♀️ | woman gesturing NO: medium-light skin tone | A woman with medium-light skin is making a ‘no’ gesture, her hand raised with the palm out, indicating disapproval. |
| 🙅🏽♀️ | woman gesturing NO: medium skin tone | A woman with medium skin is gesturing ‘no’, one hand raised with the palm facing outward, signaling denial. |
| 🙅🏾♀️ | woman gesturing NO: medium-dark skin tone | A woman with medium-dark skin gestures ‘no’, raising one hand with the palm out, indicating rejection. |
| 🙅🏿♀️ | woman gesturing NO: dark skin tone | A woman with dark skin is gesturing ‘no’, her hand raised with the palm facing outward, showing refusal. |
| 🙆 | person gesturing OK | A person is gesturing ‘OK’, with one hand raised and fingers forming a circle, indicating affirmation. |
| 🙆🏻 | person gesturing OK: light skin tone | A person with light skin is making an ‘OK’ gesture, one hand raised with fingers forming a circle, signaling agreement. |
| 🙆🏼 | person gesturing OK: medium-light skin tone | A person with medium-light skin gestures ‘OK’, their hand raised with fingers forming a circle, indicating affirmation. |
| 🙆🏽 | person gesturing OK: medium skin tone | A person with medium skin tone is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 🙆🏾 | person gesturing OK: medium-dark skin tone | A person with medium-dark skin tone is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 🙆🏿 | person gesturing OK: dark skin tone | A person with dark skin tone is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 🙆♂️ | man gesturing OK | A man is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 🙆🏻♂️ | man gesturing OK: light skin tone | A man with light skin tone is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 🙆🏼♂️ | man gesturing OK: medium-light skin tone | A man with medium-light skin tone is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 🙆🏽♂️ | man gesturing OK: medium skin tone | A man with medium skin tone is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 🙆🏾♂️ | man gesturing OK: medium-dark skin tone | A man with medium-dark skin tone is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 🙆🏿♂️ | man gesturing OK: dark skin tone | A man with dark skin tone is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 🙆♀️ | woman gesturing OK | A woman is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 🙆🏻♀️ | woman gesturing OK: light skin tone | A woman with light skin tone is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 🙆🏼♀️ | woman gesturing OK: medium-light skin tone | A woman with medium-light skin tone is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 🙆🏽♀️ | woman gesturing OK: medium skin tone | A woman with medium skin tone is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 🙆🏾♀️ | woman gesturing OK: medium-dark skin tone | A woman with medium-dark skin tone is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 🙆🏿♀️ | woman gesturing OK: dark skin tone | A woman with dark skin tone is smiling and raising both hands with palms facing outward, forming an ‘OK’ gesture. |
| 💁 | person tipping hand | A person is standing with one hand raised and tilted slightly, suggesting a casual gesture, often interpreted as ‘here’s what I think’. |
| 💁🏻 | person tipping hand: light skin tone | A person with light skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁🏼 | person tipping hand: medium-light skin tone | A person with medium-light skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁🏽 | person tipping hand: medium skin tone | A person with medium skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁🏾 | person tipping hand: medium-dark skin tone | A person with medium-dark skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁🏿 | person tipping hand: dark skin tone | A person with dark skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁♂️ | man tipping hand | A man is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁🏻♂️ | man tipping hand: light skin tone | A man with light skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁🏼♂️ | man tipping hand: medium-light skin tone | A man with medium-light skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁🏽♂️ | man tipping hand: medium skin tone | A man with medium skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁🏾♂️ | man tipping hand: medium-dark skin tone | A man with medium-dark skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁🏿♂️ | man tipping hand: dark skin tone | A man with dark skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁♀️ | woman tipping hand | A woman is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁🏻♀️ | woman tipping hand: light skin tone | A woman with light skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁🏼♀️ | woman tipping hand: medium-light skin tone | A woman with medium-light skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁🏽♀️ | woman tipping hand: medium skin tone | A woman with medium skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁🏾♀️ | woman tipping hand: medium-dark skin tone | A woman with medium-dark skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 💁🏿♀️ | woman tipping hand: dark skin tone | A woman with dark skin tone is standing with one hand raised and tilted slightly, suggesting a casual gesture. |
| 🙋 | person raising hand | A person is smiling and raising one hand high, as if to indicate they want to speak or are volunteering. |
| 🙋🏻 | person raising hand: light skin tone | A person with light skin tone is smiling and raising one hand high, as if to indicate they want to speak or are volunteering. |
| 🙋🏼 | person raising hand: medium-light skin tone | A person with medium-light skin tone is smiling and raising one hand high, as if to indicate they want to speak or are volunteering. |
| 🙋🏽 | person raising hand: medium skin tone | A person with medium skin tone is smiling and raising one hand high, as if to indicate they want to speak or are volunteering. |
| 🙋🏾 | person raising hand: medium-dark skin tone | A person with medium-dark skin tone is smiling and raising one hand high, as if to indicate they want to speak or are volunteering. |
| 🙋🏿 | person raising hand: dark skin tone | A person with dark skin tone is smiling and raising one hand high, as if to indicate they want to speak or are volunteering. |
| 🙋♂️ | man raising hand | A man is smiling and raising one hand high, as if to indicate he wants to speak or is volunteering. |
| 🙋🏻♂️ | man raising hand: light skin tone | A light-skinned man with short hair is raising his right hand, smiling and looking forward. |
| 🙋🏼♂️ | man raising hand: medium-light skin tone | A medium-light-skinned man with short hair is raising his right hand, smiling and looking forward. |
| 🙋🏽♂️ | man raising hand: medium skin tone | A medium-skinned man with short hair is raising his right hand, smiling and looking forward. |
| 🙋🏾♂️ | man raising hand: medium-dark skin tone | A medium-dark-skinned man with short hair is raising his right hand, smiling and looking forward. |
| 🙋🏿♂️ | man raising hand: dark skin tone | A dark-skinned man with short hair is raising his right hand, smiling and looking forward. |
| 🙋♀️ | woman raising hand | A woman with long hair is raising her right hand, smiling and looking forward. |
| 🙋🏻♀️ | woman raising hand: light skin tone | A light-skinned woman with long hair is raising her right hand, smiling and looking forward. |
| 🙋🏼♀️ | woman raising hand: medium-light skin tone | A medium-light-skinned woman with long hair is raising her right hand, smiling and looking forward. |
| 🙋🏽♀️ | woman raising hand: medium skin tone | A medium-skinned woman with long hair is raising her right hand, smiling and looking forward. |
| 🙋🏾♀️ | woman raising hand: medium-dark skin tone | A medium-dark-skinned woman with long hair is raising her right hand, smiling and looking forward. |
| 🙋🏿♀️ | woman raising hand: dark skin tone | A dark-skinned woman with long hair is raising her right hand, smiling and looking forward. |
| 🧏 | deaf person | A person with a neutral expression is making a gesture with one hand near their ear, indicating they are deaf. |
| 🧏🏻 | deaf person: light skin tone | A light-skinned person with a neutral expression is making a gesture with one hand near their ear, indicating they are deaf. |
| 🧏🏼 | deaf person: medium-light skin tone | A medium-light-skinned person with a neutral expression is making a gesture with one hand near their ear, indicating they are deaf. |
| 🧏🏽 | deaf person: medium skin tone | A medium-skinned person with a neutral expression is making a gesture with one hand near their ear, indicating they are deaf. |
| 🧏🏾 | deaf person: medium-dark skin tone | A medium-dark-skinned person with a neutral expression is making a gesture with one hand near their ear, indicating they are deaf. |
| 🧏🏿 | deaf person: dark skin tone | A dark-skinned person with a neutral expression is making a gesture with one hand near their ear, indicating they are deaf. |
| 🧏♂️ | deaf man | A man with a neutral expression is making a gesture with one hand near his ear, indicating he is deaf. |
| 🧏🏻♂️ | deaf man: light skin tone | A light-skinned man with a neutral expression is making a gesture with one hand near his ear, indicating he is deaf. |
| 🧏🏼♂️ | deaf man: medium-light skin tone | A medium-light-skinned man with a neutral expression is making a gesture with one hand near his ear, indicating he is deaf. |
| 🧏🏽♂️ | deaf man: medium skin tone | A medium-skinned man with a neutral expression is making a gesture with one hand near his ear, indicating he is deaf. |
| 🧏🏾♂️ | deaf man: medium-dark skin tone | A medium-dark-skinned man with a neutral expression is making a gesture with one hand near his ear, indicating he is deaf. |
| 🧏🏿♂️ | deaf man: dark skin tone | A dark-skinned man with a neutral expression is making a gesture with one hand near his ear, indicating he is deaf. |
| 🧏♀️ | deaf woman | A woman with a neutral expression is making a gesture with one hand near her ear, indicating she is deaf. |
| 🧏🏻♀️ | deaf woman: light skin tone | A light-skinned woman with a neutral expression is making a gesture with one hand near her ear, indicating she is deaf. |
| 🧏🏼♀️ | deaf woman: medium-light skin tone | A medium-light-skinned woman with a neutral expression is making a gesture with one hand near her ear, indicating she is deaf. |
| 🧏🏽♀️ | deaf woman: medium skin tone | A medium-skinned woman with a neutral expression is making a gesture with one hand near her ear, indicating she is deaf. |
| 🧏🏾♀️ | deaf woman: medium-dark skin tone | A medium-dark-skinned woman with a neutral expression is making a gesture with one hand near her ear, indicating she is deaf. |
| 🧏🏿♀️ | deaf woman: dark skin tone | A dark-skinned woman with a neutral expression is making a gesture with one hand near her ear, indicating she is deaf. |
| 🙇 | person bowing | A person with a neutral expression is bowing forward slightly, with hands clasped together in front. |
| 🙇🏻 | person bowing: light skin tone | A light-skinned person with a neutral expression is bowing forward slightly, with hands clasped together in front. |
| 🙇🏼 | person bowing: medium-light skin tone | A medium-light-skinned person with a neutral expression is bowing forward slightly, with hands clasped together in front. |
| 🙇🏽 | person bowing: medium skin tone | A medium-skinned person with a neutral expression is bowing forward slightly, with hands clasped together in front. |
| 🙇🏾 | person bowing: medium-dark skin tone | A medium-dark-skinned person with a neutral expression is bowing forward slightly, with hands clasped together in front. |
| 🙇🏿 | person bowing: dark skin tone | A dark-skinned person with a neutral expression is bowing forward slightly, with hands clasped together in front. |
| 🙇♂️ | man bowing | A man with a neutral expression is bowing forward slightly, with hands clasped together in front. |
| 🙇🏻♂️ | man bowing: light skin tone | A light-skinned man with a neutral expression is bowing forward slightly, with hands clasped together in front. |
| 🙇🏼♂️ | man bowing: medium-light skin tone | A medium-light-skinned man with a neutral expression is bowing forward slightly, with hands clasped together in front. |
| 🙇🏽♂️ | man bowing: medium skin tone | A medium-skinned man with a neutral expression is bowing forward slightly, with hands clasped together in front. |
| 🙇🏾♂️ | man bowing: medium-dark skin tone | A medium-dark-skinned man with a neutral expression is bowing forward slightly, with hands clasped together in front. |
| 🙇🏿♂️ | man bowing: dark skin tone | A man with dark skin is bowing slightly, his head lowered and hands placed together in front of him. |
| 🙇♀️ | woman bowing | A woman is bowing gracefully, her head lowered and hands together in front of her chest. |
| 🙇🏻♀️ | woman bowing: light skin tone | A woman with light skin is bowing, her head tilted down and hands clasped together in front. |
| 🙇🏼♀️ | woman bowing: medium-light skin tone | A woman with medium-light skin is bowing, her head lowered and hands positioned together at her chest. |
| 🙇🏽♀️ | woman bowing: medium skin tone | A woman with medium skin tone is bowing, her head down and hands held together in a respectful gesture. |
| 🙇🏾♀️ | woman bowing: medium-dark skin tone | A woman with medium-dark skin is bowing, her head lowered and hands clasped in front of her. |
| 🙇🏿♀️ | woman bowing: dark skin tone | A woman with dark skin is bowing slightly, her head down and hands together in a gesture of respect. |
| 🤦 | person facepalming | A person is facepalming, their hand covering their forehead in a gesture of disbelief or exasperation. |
| 🤦🏻 | person facepalming: light skin tone | A person with light skin is facepalming, their hand pressed against their forehead in frustration. |
| 🤦🏼 | person facepalming: medium-light skin tone | A person with medium-light skin is facepalming, their hand covering their forehead in a sign of annoyance. |
| 🤦🏽 | person facepalming: medium skin tone | A person with medium skin tone is facepalming, their hand on their forehead, expressing disbelief. |
| 🤦🏾 | person facepalming: medium-dark skin tone | A person with medium-dark skin is facepalming, their hand resting on their forehead in exasperation. |
| 🤦🏿 | person facepalming: dark skin tone | A person with dark skin is facepalming, their hand covering their forehead in a moment of frustration. |
| 🤦♂️ | man facepalming | A man is facepalming, his hand pressed against his forehead in a gesture of disbelief. |
| 🤦🏻♂️ | man facepalming: light skin tone | A man with light skin is facepalming, his hand covering his forehead in annoyance. |
| 🤦🏼♂️ | man facepalming: medium-light skin tone | A man with medium-light skin is facepalming, his hand on his forehead, showing exasperation. |
| 🤦🏽♂️ | man facepalming: medium skin tone | A man with medium skin tone is facepalming, his hand covering his forehead in disbelief. |
| 🤦🏾♂️ | man facepalming: medium-dark skin tone | A man with medium-dark skin is facepalming, his hand pressed against his forehead in frustration. |
| 🤦🏿♂️ | man facepalming: dark skin tone | A man with dark skin is facepalming, his hand covering his forehead in a moment of exasperation. |
| 🤦♀️ | woman facepalming | A woman is facepalming, her hand covering her forehead in disbelief or frustration. |
| 🤦🏻♀️ | woman facepalming: light skin tone | A woman with light skin is facepalming, her hand pressed against her forehead in annoyance. |
| 🤦🏼♀️ | woman facepalming: medium-light skin tone | A woman with medium-light skin is facepalming, her hand on her forehead, expressing exasperation. |
| 🤦🏽♀️ | woman facepalming: medium skin tone | A woman with medium skin tone is facepalming, her hand covering her forehead in disbelief. |
| 🤦🏾♀️ | woman facepalming: medium-dark skin tone | A woman with medium-dark skin is facepalming, her hand pressed against her forehead in frustration. |
| 🤦🏿♀️ | woman facepalming: dark skin tone | A woman with dark skin is facepalming, her hand covering her forehead in a moment of annoyance. |
| 🤷 | person shrugging | A person is shrugging, raising their shoulders and arms in a gesture of uncertainty or indifference. |
| 🤷🏻 | person shrugging: light skin tone | A person with light skin is shrugging, their shoulders raised and arms outstretched in confusion. |
| 🤷🏼 | person shrugging: medium-light skin tone | A person with medium-light skin is shrugging, their shoulders lifted and arms raised in a questioning gesture. |
| 🤷🏽 | person shrugging: medium skin tone | A person with medium skin tone is shrugging, their shoulders raised and arms outstretched in uncertainty. |
| 🤷🏾 | person shrugging: medium-dark skin tone | A person with medium-dark skin is shrugging, their shoulders lifted and arms raised in indifference. |
| 🤷🏿 | person shrugging: dark skin tone | A person with dark skin is shrugging, their shoulders raised and arms outstretched in a gesture of doubt. |
| 🤷♂️ | man shrugging | A man is shrugging, his shoulders raised and arms outstretched in a gesture of uncertainty. |
| 🤷🏻♂️ | man shrugging: light skin tone | A man with light skin is shrugging, his shoulders lifted and arms raised in confusion. |
| 🤷🏼♂️ | man shrugging: medium-light skin tone | A man with medium-light skin is shrugging, his shoulders raised and arms outstretched in a questioning manner. |
| 🤷🏽♂️ | man shrugging: medium skin tone | A man with medium skin tone is shrugging, his shoulders lifted and arms raised in uncertainty. |
| 🤷🏾♂️ | man shrugging: medium-dark skin tone | A man with medium-dark skin is shrugging, his shoulders raised and arms outstretched in indifference. |
| 🤷🏿♂️ | man shrugging: dark skin tone | A man with dark skin is shrugging, his shoulders lifted and arms raised in a gesture of doubt. |
| 🤷♀️ | woman shrugging | A woman is shrugging, her shoulders raised and arms outstretched in a gesture of uncertainty. |
| 🤷🏻♀️ | woman shrugging: light skin tone | A woman with light skin is shrugging, her shoulders lifted and arms raised in confusion. |
| 🤷🏼♀️ | woman shrugging: medium-light skin tone | A woman with medium-light skin is shrugging, her shoulders raised and arms outstretched in a questioning gesture. |
| 🤷🏽♀️ | woman shrugging: medium skin tone | A woman with medium skin tone raises her shoulders in a shrug, displaying a neutral expression as if to indicate uncertainty or indifference. |
| 🤷🏾♀️ | woman shrugging: medium-dark skin tone | A woman with medium-dark skin tone raises her shoulders in a shrug, showing a calm expression that suggests she doesn’t know or doesn’t care. |
| 🤷🏿♀️ | woman shrugging: dark skin tone | A woman with dark skin tone shrugs her shoulders, her facial expression neutral, conveying a sense of confusion or lack of knowledge. |
| 🧑⚕️ | health worker | A health worker with a neutral skin tone is depicted wearing a medical uniform, symbolizing their role in healthcare. |
| 🧑🏻⚕️ | health worker: light skin tone | A health worker with light skin tone is shown in a medical uniform, representing their profession in healthcare. |
| 🧑🏼⚕️ | health worker: medium-light skin tone | A health worker with medium-light skin tone is depicted in a medical outfit, indicating their role in the health sector. |
| 🧑🏽⚕️ | health worker: medium skin tone | A health worker with medium skin tone is shown wearing a medical uniform, symbolizing their profession in healthcare. |
| 🧑🏾⚕️ | health worker: medium-dark skin tone | A health worker with medium-dark skin tone is depicted in a medical outfit, representing their role in the healthcare field. |
| 🧑🏿⚕️ | health worker: dark skin tone | A health worker with dark skin tone is shown wearing a medical uniform, indicating their profession in healthcare. |
| 👨⚕️ | man health worker | A man health worker is depicted in a medical uniform, representing his role in the healthcare profession. |
| 👨🏻⚕️ | man health worker: light skin tone | A man health worker with light skin tone is shown in a medical outfit, symbolizing his profession in healthcare. |
| 👨🏼⚕️ | man health worker: medium-light skin tone | A man health worker with medium-light skin tone is depicted in a medical uniform, representing his role in healthcare. |
| 👨🏽⚕️ | man health worker: medium skin tone | A man health worker with medium skin tone is shown wearing a medical outfit, indicating his profession in the health sector. |
| 👨🏾⚕️ | man health worker: medium-dark skin tone | A man health worker with medium-dark skin tone is depicted in a medical uniform, symbolizing his role in healthcare. |
| 👨🏿⚕️ | man health worker: dark skin tone | A man health worker with dark skin tone is shown wearing a medical outfit, representing his profession in the healthcare field. |
| 👩⚕️ | woman health worker | A woman health worker is depicted in a medical uniform, symbolizing her role in the healthcare profession. |
| 👩🏻⚕️ | woman health worker: light skin tone | A woman health worker with light skin tone is shown in a medical outfit, representing her profession in healthcare. |
| 👩🏼⚕️ | woman health worker: medium-light skin tone | A woman health worker with medium-light skin tone is depicted in a medical uniform, indicating her role in the health sector. |
| 👩🏽⚕️ | woman health worker: medium skin tone | A woman health worker with medium skin tone is shown wearing a medical outfit, symbolizing her profession in healthcare. |
| 👩🏾⚕️ | woman health worker: medium-dark skin tone | A woman health worker with medium-dark skin tone is depicted in a medical uniform, representing her role in the healthcare field. |
| 👩🏿⚕️ | woman health worker: dark skin tone | A woman health worker with dark skin tone is shown wearing a medical outfit, indicating her profession in healthcare. |
| 🧑🎓 | student | A student is depicted wearing a graduation cap and gown, symbolizing their academic achievement. |
| 🧑🏻🎓 | student: light skin tone | A student with light skin tone is shown in a graduation cap and gown, representing their academic success. |
| 🧑🏼🎓 | student: medium-light skin tone | A student with medium-light skin tone is depicted wearing a graduation cap and gown, indicating their achievement in education. |
| 🧑🏽🎓 | student: medium skin tone | A student with medium skin tone is shown in a graduation outfit, symbolizing their academic accomplishment. |
| 🧑🏾🎓 | student: medium-dark skin tone | A student with medium-dark skin tone is depicted wearing a graduation cap and gown, representing their educational success. |
| 🧑🏿🎓 | student: dark skin tone | A student with dark skin tone is shown in a graduation outfit, indicating their achievement in academics. |
| 👨🎓 | man student | A man student is depicted wearing a graduation cap and gown, symbolizing his academic achievement. |
| 👨🏻🎓 | man student: light skin tone | A man student with light skin tone is shown in a graduation cap and gown, representing his educational success. |
| 👨🏼🎓 | man student: medium-light skin tone | A man student with medium-light skin tone is depicted wearing a graduation cap and gown, indicating his achievement in education. |
| 👨🏽🎓 | man student: medium skin tone | A man student with medium skin tone is shown in a graduation outfit, symbolizing his academic accomplishment. |
| 👨🏾🎓 | man student: medium-dark skin tone | A man student with medium-dark skin tone is depicted wearing a graduation cap and gown, representing his educational success. |
| 👨🏿🎓 | man student: dark skin tone | A man student with dark skin tone is shown in a graduation outfit, indicating his achievement in academics. |
| 👩🎓 | woman student | A woman student is depicted wearing a graduation cap and gown, symbolizing her academic achievement. |
| 👩🏻🎓 | woman student: light skin tone | A woman student with light skin tone is shown in a graduation cap and gown, representing her educational success. |
| 👩🏼🎓 | woman student: medium-light skin tone | A woman student with medium-light skin tone is depicted wearing a graduation cap and gown, indicating her achievement in education. |
| 👩🏽🎓 | woman student: medium skin tone | A woman student with medium skin tone is shown in a graduation outfit, symbolizing her academic accomplishment. |
| 👩🏾🎓 | woman student: medium-dark skin tone | A woman student with medium-dark skin tone is depicted wearing a graduation cap and gown, representing her educational success. |
| 👩🏿🎓 | woman student: dark skin tone | A woman student with dark skin tone is shown in a graduation outfit, indicating her achievement in academics. |
| 🧑🏫 | teacher | A teacher is depicted in professional attire, symbolizing their role in education and instruction. |
| 🧑🏻🏫 | teacher: light skin tone | A person with light skin tone, wearing a black graduation cap and a white shirt, standing with a neutral expression. |
| 🧑🏼🏫 | teacher: medium-light skin tone | A person with medium-light skin tone, wearing a black graduation cap and a white shirt, standing with a neutral expression. |
| 🧑🏽🏫 | teacher: medium skin tone | A person with medium skin tone, wearing a black graduation cap and a white shirt, standing with a neutral expression. |
| 🧑🏾🏫 | teacher: medium-dark skin tone | A person with medium-dark skin tone, wearing a black graduation cap and a white shirt, standing with a neutral expression. |
| 🧑🏿🏫 | teacher: dark skin tone | A person with dark skin tone, wearing a black graduation cap and a white shirt, standing with a neutral expression. |
| 👨🏫 | man teacher | A man with a neutral expression, wearing a black graduation cap and a white shirt, standing confidently. |
| 👨🏻🏫 | man teacher: light skin tone | A man with light skin tone, wearing a black graduation cap and a white shirt, standing confidently. |
| 👨🏼🏫 | man teacher: medium-light skin tone | A man with medium-light skin tone, wearing a black graduation cap and a white shirt, standing confidently. |
| 👨🏽🏫 | man teacher: medium skin tone | A man with medium skin tone, wearing a black graduation cap and a white shirt, standing confidently. |
| 👨🏾🏫 | man teacher: medium-dark skin tone | A man with medium-dark skin tone, wearing a black graduation cap and a white shirt, standing confidently. |
| 👨🏿🏫 | man teacher: dark skin tone | A man with dark skin tone, wearing a black graduation cap and a white shirt, standing confidently. |
| 👩🏫 | woman teacher | A woman with a neutral expression, wearing a black graduation cap and a white shirt, standing confidently. |
| 👩🏻🏫 | woman teacher: light skin tone | A woman with light skin tone, wearing a black graduation cap and a white shirt, standing confidently. |
| 👩🏼🏫 | woman teacher: medium-light skin tone | A woman with medium-light skin tone, wearing a black graduation cap and a white shirt, standing confidently. |
| 👩🏽🏫 | woman teacher: medium skin tone | A woman with medium skin tone, wearing a black graduation cap and a white shirt, standing confidently. |
| 👩🏾🏫 | woman teacher: medium-dark skin tone | A woman with medium-dark skin tone, wearing a black graduation cap and a white shirt, standing confidently. |
| 👩🏿🏫 | woman teacher: dark skin tone | A woman with dark skin tone, wearing a black graduation cap and a white shirt, standing confidently. |
| 🧑⚖️ | judge | A person wearing a black robe and a white collar, with a neutral expression, standing with arms at the sides. |
| 🧑🏻⚖️ | judge: light skin tone | A person with light skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 🧑🏼⚖️ | judge: medium-light skin tone | A person with medium-light skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 🧑🏽⚖️ | judge: medium skin tone | A person with medium skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 🧑🏾⚖️ | judge: medium-dark skin tone | A person with medium-dark skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 🧑🏿⚖️ | judge: dark skin tone | A person with dark skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 👨⚖️ | man judge | A man wearing a black robe and a white collar, with a neutral expression, standing with arms at the sides. |
| 👨🏻⚖️ | man judge: light skin tone | A man with light skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 👨🏼⚖️ | man judge: medium-light skin tone | A man with medium-light skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 👨🏽⚖️ | man judge: medium skin tone | A man with medium skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 👨🏾⚖️ | man judge: medium-dark skin tone | A man with medium-dark skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 👨🏿⚖️ | man judge: dark skin tone | A man with dark skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 👩⚖️ | woman judge | A woman wearing a black robe and a white collar, with a neutral expression, standing with arms at the sides. |
| 👩🏻⚖️ | woman judge: light skin tone | A woman with light skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 👩🏼⚖️ | woman judge: medium-light skin tone | A woman with medium-light skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 👩🏽⚖️ | woman judge: medium skin tone | A woman with medium skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 👩🏾⚖️ | woman judge: medium-dark skin tone | A woman with medium-dark skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 👩🏿⚖️ | woman judge: dark skin tone | A woman with dark skin tone, wearing a black robe and a white collar, with a neutral expression. |
| 🧑🌾 | farmer | A person wearing a straw hat and overalls, with a friendly expression, holding a gardening tool. |
| 🧑🏻🌾 | farmer: light skin tone | A person with light skin tone, wearing a straw hat and overalls, with a friendly expression, holding a gardening tool. |
| 🧑🏼🌾 | farmer: medium-light skin tone | A person with medium-light skin tone, wearing a straw hat and overalls, with a friendly expression, holding a gardening tool. |
| 🧑🏽🌾 | farmer: medium skin tone | A person with medium skin tone, wearing a straw hat and overalls, with a friendly expression, holding a gardening tool. |
| 🧑🏾🌾 | farmer: medium-dark skin tone | A person with medium-dark skin tone, wearing a straw hat and overalls, with a friendly expression, holding a gardening tool. |
| 🧑🏿🌾 | farmer: dark skin tone | A person with dark skin, wearing a straw hat and overalls, stands confidently, holding a farming tool. |
| 👨🌾 | man farmer | A man with short hair, wearing a straw hat and overalls, holds a farming tool with a determined expression. |
| 👨🏻🌾 | man farmer: light skin tone | A man with light skin, wearing a straw hat and overalls, stands with a farming tool, looking ready for work. |
| 👨🏼🌾 | man farmer: medium-light skin tone | A man with medium-light skin, dressed in overalls and a straw hat, holds a farming tool, appearing focused. |
| 👨🏽🌾 | man farmer: medium skin tone | A man with medium skin, wearing a straw hat and overalls, stands with a farming tool, looking determined. |
| 👨🏾🌾 | man farmer: medium-dark skin tone | A man with medium-dark skin, dressed in overalls and a straw hat, confidently holds a farming tool. |
| 👨🏿🌾 | man farmer: dark skin tone | A man with dark skin, wearing a straw hat and overalls, stands with a farming tool, ready for work. |
| 👩🌾 | woman farmer | A woman with long hair, wearing a straw hat and overalls, holds a farming tool with an enthusiastic expression. |
| 👩🏻🌾 | woman farmer: light skin tone | A woman with light skin, dressed in overalls and a straw hat, stands with a farming tool, looking ready to work. |
| 👩🏼🌾 | woman farmer: medium-light skin tone | A woman with medium-light skin, wearing a straw hat and overalls, holds a farming tool, appearing focused. |
| 👩🏽🌾 | woman farmer: medium skin tone | A woman with medium skin, dressed in overalls and a straw hat, stands with a farming tool, looking determined. |
| 👩🏾🌾 | woman farmer: medium-dark skin tone | A woman with medium-dark skin, wearing a straw hat and overalls, confidently holds a farming tool. |
| 👩🏿🌾 | woman farmer: dark skin tone | A woman with dark skin, dressed in overalls and a straw hat, stands with a farming tool, ready for work. |
| 🧑🍳 | cook | A person with a chef’s hat and apron, smiling while holding a cooking utensil, ready to prepare a meal. |
| 🧑🏻🍳 | cook: light skin tone | A person with light skin, wearing a chef’s hat and apron, smiles while holding a cooking utensil. |
| 🧑🏼🍳 | cook: medium-light skin tone | A person with medium-light skin, dressed in a chef’s hat and apron, holds a cooking utensil with a cheerful expression. |
| 🧑🏽🍳 | cook: medium skin tone | A person with medium skin, wearing a chef’s hat and apron, smiles while holding a cooking utensil. |
| 🧑🏾🍳 | cook: medium-dark skin tone | A person with medium-dark skin, dressed in a chef’s hat and apron, holds a cooking utensil with a friendly smile. |
| 🧑🏿🍳 | cook: dark skin tone | A person with dark skin, wearing a chef’s hat and apron, smiles while holding a cooking utensil, ready to cook. |
| 👨🍳 | man cook | A man with short hair, wearing a chef’s hat and apron, smiles while holding a cooking utensil, eager to cook. |
| 👨🏻🍳 | man cook: light skin tone | A man with light skin, dressed in a chef’s hat and apron, holds a cooking utensil with a friendly smile. |
| 👨🏼🍳 | man cook: medium-light skin tone | A man with medium-light skin, wearing a chef’s hat and apron, smiles while holding a cooking utensil. |
| 👨🏽🍳 | man cook: medium skin tone | A man with medium skin, dressed in a chef’s hat and apron, holds a cooking utensil with enthusiasm. |
| 👨🏾🍳 | man cook: medium-dark skin tone | A man with medium-dark skin, wearing a chef’s hat and apron, smiles while holding a cooking utensil. |
| 👨🏿🍳 | man cook: dark skin tone | A man with dark skin, dressed in a chef’s hat and apron, holds a cooking utensil with a cheerful expression. |
| 👩🍳 | woman cook | A woman with long hair, wearing a chef’s hat and apron, smiles while holding a cooking utensil, ready to cook. |
| 👩🏻🍳 | woman cook: light skin tone | A woman with light skin, dressed in a chef’s hat and apron, holds a cooking utensil with a friendly smile. |
| 👩🏼🍳 | woman cook: medium-light skin tone | A woman with medium-light skin, wearing a chef’s hat and apron, smiles while holding a cooking utensil. |
| 👩🏽🍳 | woman cook: medium skin tone | A woman with medium skin, dressed in a chef’s hat and apron, holds a cooking utensil with enthusiasm. |
| 👩🏾🍳 | woman cook: medium-dark skin tone | A woman with medium-dark skin, wearing a chef’s hat and apron, smiles while holding a cooking utensil. |
| 👩🏿🍳 | woman cook: dark skin tone | A woman with dark skin, dressed in a chef’s hat and apron, holds a cooking utensil with a cheerful expression. |
| 🧑🔧 | mechanic | A person with a wrench in hand, wearing a work uniform and a tool belt, looks ready to fix something. |
| 🧑🏻🔧 | mechanic: light skin tone | A person with light skin, dressed in a work uniform and tool belt, holds a wrench with determination. |
| 🧑🏼🔧 | mechanic: medium-light skin tone | A person with medium-light skin, wearing a work uniform and tool belt, stands with a wrench, ready to work. |
| 🧑🏽🔧 | mechanic: medium skin tone | A person with medium skin, dressed in a work uniform and tool belt, confidently holds a wrench. |
| 🧑🏾🔧 | mechanic: medium-dark skin tone | A person with medium-dark skin, wearing a work uniform and tool belt, stands with a wrench, looking prepared. |
| 🧑🏿🔧 | mechanic: dark skin tone | A person with dark skin, dressed in a work uniform and tool belt, confidently holds a wrench, ready for repairs. |
| 👨🔧 | man mechanic | A man with short hair, wearing a work uniform and tool belt, holds a wrench with a focused expression. |
| 👨🏻🔧 | man mechanic: light skin tone | A man with light skin, dressed in a work uniform and tool belt, stands with a wrench, looking ready to work. |
| 👨🏼🔧 | man mechanic: medium-light skin tone | A man with medium-light skin, wearing a work uniform and tool belt, holds a wrench with determination. |
| 👨🏽🔧 | man mechanic: medium skin tone | A man with medium skin tone wearing a blue shirt and holding a wrench, representing a mechanic. |
| 👨🏾🔧 | man mechanic: medium-dark skin tone | A man with medium-dark skin tone dressed in a blue shirt, holding a wrench, symbolizing a mechanic. |
| 👨🏿🔧 | man mechanic: dark skin tone | A man with dark skin tone wearing a blue shirt and holding a wrench, depicting a mechanic. |
| 👩🔧 | woman mechanic | A woman in a blue shirt, holding a wrench, representing a mechanic. |
| 👩🏻🔧 | woman mechanic: light skin tone | A woman with light skin tone dressed in a blue shirt and holding a wrench, symbolizing a mechanic. |
| 👩🏼🔧 | woman mechanic: medium-light skin tone | A woman with medium-light skin tone wearing a blue shirt and holding a wrench, depicting a mechanic. |
| 👩🏽🔧 | woman mechanic: medium skin tone | A woman with medium skin tone in a blue shirt, holding a wrench, representing a mechanic. |
| 👩🏾🔧 | woman mechanic: medium-dark skin tone | A woman with medium-dark skin tone dressed in a blue shirt and holding a wrench, symbolizing a mechanic. |
| 👩🏿🔧 | woman mechanic: dark skin tone | A woman with dark skin tone wearing a blue shirt and holding a wrench, depicting a mechanic. |
| 🧑🏭 | factory worker | A person wearing a hard hat and blue overalls, symbolizing a factory worker. |
| 🧑🏻🏭 | factory worker: light skin tone | A person with light skin tone in blue overalls and a hard hat, representing a factory worker. |
| 🧑🏼🏭 | factory worker: medium-light skin tone | A person with medium-light skin tone wearing blue overalls and a hard hat, depicting a factory worker. |
| 🧑🏽🏭 | factory worker: medium skin tone | A person with medium skin tone dressed in blue overalls and a hard hat, symbolizing a factory worker. |
| 🧑🏾🏭 | factory worker: medium-dark skin tone | A person with medium-dark skin tone in blue overalls and a hard hat, representing a factory worker. |
| 🧑🏿🏭 | factory worker: dark skin tone | A person with dark skin tone wearing blue overalls and a hard hat, depicting a factory worker. |
| 👨🏭 | man factory worker | A man in blue overalls and a hard hat, symbolizing a factory worker. |
| 👨🏻🏭 | man factory worker: light skin tone | A man with light skin tone dressed in blue overalls and a hard hat, representing a factory worker. |
| 👨🏼🏭 | man factory worker: medium-light skin tone | A man with medium-light skin tone wearing blue overalls and a hard hat, depicting a factory worker. |
| 👨🏽🏭 | man factory worker: medium skin tone | A man with medium skin tone in blue overalls and a hard hat, symbolizing a factory worker. |
| 👨🏾🏭 | man factory worker: medium-dark skin tone | A man with medium-dark skin tone dressed in blue overalls and a hard hat, representing a factory worker. |
| 👨🏿🏭 | man factory worker: dark skin tone | A man with dark skin tone wearing blue overalls and a hard hat, depicting a factory worker. |
| 👩🏭 | woman factory worker | A woman in blue overalls and a hard hat, symbolizing a factory worker. |
| 👩🏻🏭 | woman factory worker: light skin tone | A woman with light skin tone dressed in blue overalls and a hard hat, representing a factory worker. |
| 👩🏼🏭 | woman factory worker: medium-light skin tone | A woman with medium-light skin tone wearing blue overalls and a hard hat, depicting a factory worker. |
| 👩🏽🏭 | woman factory worker: medium skin tone | A woman with medium skin tone in blue overalls and a hard hat, symbolizing a factory worker. |
| 👩🏾🏭 | woman factory worker: medium-dark skin tone | A woman with medium-dark skin tone dressed in blue overalls and a hard hat, representing a factory worker. |
| 👩🏿🏭 | woman factory worker: dark skin tone | A woman with dark skin tone wearing blue overalls and a hard hat, depicting a factory worker. |
| 🧑💼 | office worker | A person in a suit and tie, representing an office worker. |
| 🧑🏻💼 | office worker: light skin tone | A person with light skin tone dressed in a suit and tie, symbolizing an office worker. |
| 🧑🏼💼 | office worker: medium-light skin tone | A person with medium-light skin tone wearing a suit and tie, depicting an office worker. |
| 🧑🏽💼 | office worker: medium skin tone | A person with medium skin tone in a suit and tie, representing an office worker. |
| 🧑🏾💼 | office worker: medium-dark skin tone | A person with medium-dark skin tone dressed in a suit and tie, symbolizing an office worker. |
| 🧑🏿💼 | office worker: dark skin tone | A person with dark skin tone wearing a suit and tie, depicting an office worker. |
| 👨💼 | man office worker | A man in a suit and tie, symbolizing an office worker. |
| 👨🏻💼 | man office worker: light skin tone | A man with light skin tone dressed in a suit and tie, representing an office worker. |
| 👨🏼💼 | man office worker: medium-light skin tone | A man with medium-light skin tone wearing a suit and tie, depicting an office worker. |
| 👨🏽💼 | man office worker: medium skin tone | A man with medium skin tone in a suit and tie, symbolizing an office worker. |
| 👨🏾💼 | man office worker: medium-dark skin tone | A man with medium-dark skin tone dressed in a suit and tie, representing an office worker. |
| 👨🏿💼 | man office worker: dark skin tone | A man with dark skin tone wearing a suit and tie, depicting an office worker. |
| 👩💼 | woman office worker | A woman in a suit and tie, symbolizing an office worker. |
| 👩🏻💼 | woman office worker: light skin tone | A woman with light skin tone, wearing a dark blazer and white blouse, exuding a professional demeanor. |
| 👩🏼💼 | woman office worker: medium-light skin tone | A woman with medium-light skin tone, dressed in a dark blazer and white blouse, presenting a confident office worker appearance. |
| 👩🏽💼 | woman office worker: medium skin tone | A woman with medium skin tone, wearing a dark blazer over a white blouse, looking poised and professional. |
| 👩🏾💼 | woman office worker: medium-dark skin tone | A woman with medium-dark skin tone, dressed in a dark suit and white blouse, radiating professionalism. |
| 👩🏿💼 | woman office worker: dark skin tone | A woman with dark skin tone, wearing a dark blazer and white blouse, embodying a strong office presence. |
| 🧑🔬 | scientist | A gender-neutral scientist in a lab coat, holding a test tube, with a focused expression, ready for experimentation. |
| 🧑🏻🔬 | scientist: light skin tone | A scientist with light skin tone, wearing a lab coat and safety glasses, holding a test tube with a curious expression. |
| 🧑🏼🔬 | scientist: medium-light skin tone | A scientist with medium-light skin tone, dressed in a lab coat, looking inquisitive while holding a test tube. |
| 🧑🏽🔬 | scientist: medium skin tone | A scientist with medium skin tone, wearing a lab coat and safety goggles, appearing engaged in scientific work. |
| 🧑🏾🔬 | scientist: medium-dark skin tone | A scientist with medium-dark skin tone, dressed in a lab coat, focused on a test tube with a determined look. |
| 🧑🏿🔬 | scientist: dark skin tone | A scientist with dark skin tone, wearing a lab coat, holding a test tube and looking intently at it. |
| 👨🔬 | man scientist | A man scientist in a lab coat, holding a test tube, with a serious expression, ready to conduct experiments. |
| 👨🏻🔬 | man scientist: light skin tone | A man with light skin tone, dressed in a lab coat and safety glasses, holding a test tube with a thoughtful look. |
| 👨🏼🔬 | man scientist: medium-light skin tone | A man with medium-light skin tone, wearing a lab coat, looking focused while holding a test tube. |
| 👨🏽🔬 | man scientist: medium skin tone | A man with medium skin tone, dressed in a lab coat, appearing engaged in scientific research with a test tube. |
| 👨🏾🔬 | man scientist: medium-dark skin tone | A man with medium-dark skin tone, in a lab coat, looking seriously at a test tube in his hand. |
| 👨🏿🔬 | man scientist: dark skin tone | A man with dark skin tone, wearing a lab coat, holding a test tube and looking intently at it. |
| 👩🔬 | woman scientist | A woman scientist in a lab coat, holding a test tube, with a determined expression, ready to explore. |
| 👩🏻🔬 | woman scientist: light skin tone | A woman with light skin tone, dressed in a lab coat and safety glasses, holding a test tube with a curious gaze. |
| 👩🏼🔬 | woman scientist: medium-light skin tone | A woman with medium-light skin tone, in a lab coat, looking inquisitive while holding a test tube. |
| 👩🏽🔬 | woman scientist: medium skin tone | A woman with medium skin tone, wearing a lab coat and safety goggles, appearing engaged in her scientific work. |
| 👩🏾🔬 | woman scientist: medium-dark skin tone | A woman with medium-dark skin tone, dressed in a lab coat, focused on a test tube with a serious expression. |
| 👩🏿🔬 | woman scientist: dark skin tone | A woman with dark skin tone, wearing a lab coat, holding a test tube and looking intently at it. |
| 🧑💻 | technologist | A gender-neutral technologist sitting at a computer, focused on the screen, with a look of concentration. |
| 🧑🏻💻 | technologist: light skin tone | A technologist with light skin tone, sitting at a computer, typing with a focused expression. |
| 🧑🏼💻 | technologist: medium-light skin tone | A technologist with medium-light skin tone, engaged at a computer, appearing concentrated on their work. |
| 🧑🏽💻 | technologist: medium skin tone | A technologist with medium skin tone, sitting at a computer, looking focused while typing. |
| 🧑🏾💻 | technologist: medium-dark skin tone | A technologist with medium-dark skin tone, working at a computer, with an intense look of concentration. |
| 🧑🏿💻 | technologist: dark skin tone | A technologist with dark skin tone, seated at a computer, deeply focused on the screen. |
| 👨💻 | man technologist | A man technologist at a computer, typing with a serious expression, immersed in his work. |
| 👨🏻💻 | man technologist: light skin tone | A man with light skin tone, sitting at a computer, focused on the screen with a determined look. |
| 👨🏼💻 | man technologist: medium-light skin tone | A man with medium-light skin tone, engaged at a computer, appearing concentrated on his tasks. |
| 👨🏽💻 | man technologist: medium skin tone | A man with medium skin tone, working at a computer, looking focused and intent on his work. |
| 👨🏾💻 | man technologist: medium-dark skin tone | A man with medium-dark skin tone, seated at a computer, deeply focused on the screen. |
| 👨🏿💻 | man technologist: dark skin tone | A man with dark skin tone, sitting at a computer, typing with a serious and concentrated expression. |
| 👩💻 | woman technologist | A woman technologist at a computer, focused on the screen, with a look of determination. |
| 👩🏻💻 | woman technologist: light skin tone | A woman with light skin tone, sitting at a computer, typing with a focused expression. |
| 👩🏼💻 | woman technologist: medium-light skin tone | A woman with medium-light skin tone, engaged at a computer, appearing concentrated on her work. |
| 👩🏽💻 | woman technologist: medium skin tone | A woman with medium skin tone, working at a computer, looking focused while typing. |
| 👩🏾💻 | woman technologist: medium-dark skin tone | A woman with medium-dark skin tone, seated at a computer, deeply focused on the screen. |
| 👩🏿💻 | woman technologist: dark skin tone | A woman with dark skin, wearing glasses, focused on a laptop, representing a technologist. |
| 🧑🎤 | singer | A person with a neutral skin tone, sporting a stylish hairstyle and microphone, embodying a singer. |
| 🧑🏻🎤 | singer: light skin tone | A person with light skin, wearing a trendy outfit and holding a microphone, representing a singer. |
| 🧑🏼🎤 | singer: medium-light skin tone | A person with medium-light skin, dressed in a fashionable outfit and holding a microphone, symbolizing a singer. |
| 🧑🏽🎤 | singer: medium skin tone | A person with medium skin tone, dressed in a cool outfit and holding a microphone, representing a singer. |
| 🧑🏾🎤 | singer: medium-dark skin tone | A person with medium-dark skin, wearing a stylish outfit and holding a microphone, embodying a singer. |
| 🧑🏿🎤 | singer: dark skin tone | A person with dark skin, sporting a trendy hairstyle and microphone, representing a singer. |
| 👨🎤 | man singer | A man with a neutral skin tone, wearing a stylish outfit and microphone, embodying a singer. |
| 👨🏻🎤 | man singer: light skin tone | A man with light skin, dressed in a fashionable outfit and holding a microphone, representing a singer. |
| 👨🏼🎤 | man singer: medium-light skin tone | A man with medium-light skin, wearing a trendy outfit and holding a microphone, symbolizing a singer. |
| 👨🏽🎤 | man singer: medium skin tone | A man with medium skin tone, dressed in a cool outfit and holding a microphone, representing a singer. |
| 👨🏾🎤 | man singer: medium-dark skin tone | A man with medium-dark skin, wearing a stylish outfit and holding a microphone, embodying a singer. |
| 👨🏿🎤 | man singer: dark skin tone | A man with dark skin, sporting a trendy hairstyle and microphone, representing a singer. |
| 👩🎤 | woman singer | A woman with a neutral skin tone, wearing a fashionable outfit and holding a microphone, embodying a singer. |
| 👩🏻🎤 | woman singer: light skin tone | A woman with light skin, dressed in a stylish outfit and holding a microphone, representing a singer. |
| 👩🏼🎤 | woman singer: medium-light skin tone | A woman with medium-light skin, wearing a trendy outfit and holding a microphone, symbolizing a singer. |
| 👩🏽🎤 | woman singer: medium skin tone | A woman with medium skin tone, dressed in a cool outfit and holding a microphone, representing a singer. |
| 👩🏾🎤 | woman singer: medium-dark skin tone | A woman with medium-dark skin, wearing a stylish outfit and holding a microphone, embodying a singer. |
| 👩🏿🎤 | woman singer: dark skin tone | A woman with dark skin, sporting a trendy hairstyle and microphone, representing a singer. |
| 🧑🎨 | artist | A person with a neutral skin tone, holding a palette and brush, representing an artist. |
| 🧑🏻🎨 | artist: light skin tone | A person with light skin, holding a palette and brush, representing an artist. |
| 🧑🏼🎨 | artist: medium-light skin tone | A person with medium-light skin, holding a palette and brush, representing an artist. |
| 🧑🏽🎨 | artist: medium skin tone | A person with medium skin tone, holding a palette and brush, representing an artist. |
| 🧑🏾🎨 | artist: medium-dark skin tone | A person with medium-dark skin, holding a palette and brush, representing an artist. |
| 🧑🏿🎨 | artist: dark skin tone | A person with dark skin, holding a palette and brush, representing an artist. |
| 👨🎨 | man artist | A man with a neutral skin tone, holding a palette and brush, embodying an artist. |
| 👨🏻🎨 | man artist: light skin tone | A man with light skin, holding a palette and brush, representing an artist. |
| 👨🏼🎨 | man artist: medium-light skin tone | A man with medium-light skin, holding a palette and brush, representing an artist. |
| 👨🏽🎨 | man artist: medium skin tone | A man with medium skin tone, holding a palette and brush, representing an artist. |
| 👨🏾🎨 | man artist: medium-dark skin tone | A man with medium-dark skin, holding a palette and brush, representing an artist. |
| 👨🏿🎨 | man artist: dark skin tone | A man with dark skin, holding a palette and brush, representing an artist. |
| 👩🎨 | woman artist | A woman with a neutral skin tone, holding a palette and brush, embodying an artist. |
| 👩🏻🎨 | woman artist: light skin tone | A woman with light skin, holding a palette and brush, representing an artist. |
| 👩🏼🎨 | woman artist: medium-light skin tone | A woman with medium-light skin, holding a palette and brush, representing an artist. |
| 👩🏽🎨 | woman artist: medium skin tone | A woman with medium skin tone, holding a palette and brush, representing an artist. |
| 👩🏾🎨 | woman artist: medium-dark skin tone | A woman with medium-dark skin, holding a palette and brush, representing an artist. |
| 👩🏿🎨 | woman artist: dark skin tone | A woman with dark skin, holding a palette and brush, representing an artist. |
| 🧑✈️ | pilot | A person with a neutral skin tone, dressed in a pilot’s uniform, representing a pilot. |
| 🧑🏻✈️ | pilot: light skin tone | A person with light skin, dressed in a pilot’s uniform, representing a pilot. |
| 🧑🏼✈️ | pilot: medium-light skin tone | A person with medium-light skin, dressed in a pilot’s uniform, representing a pilot. |
| 🧑🏽✈️ | pilot: medium skin tone | A person with medium skin tone wearing a pilot’s uniform, complete with a jacket and a cap, looking confidently forward. |
| 🧑🏾✈️ | pilot: medium-dark skin tone | A person with medium-dark skin tone dressed in a pilot’s uniform, featuring a jacket and cap, exuding a sense of authority. |
| 🧑🏿✈️ | pilot: dark skin tone | A person with dark skin tone in a pilot’s uniform, including a jacket and cap, appearing professional and focused. |
| 👨✈️ | man pilot | A man in a pilot’s uniform, characterized by a jacket and cap, with a determined expression. |
| 👨🏻✈️ | man pilot: light skin tone | A man with light skin tone wearing a pilot’s uniform, complete with a jacket and cap, looking confidently ahead. |
| 👨🏼✈️ | man pilot: medium-light skin tone | A man with medium-light skin tone dressed in a pilot’s uniform, featuring a jacket and cap, displaying a professional demeanor. |
| 👨🏽✈️ | man pilot: medium skin tone | A man with medium skin tone in a pilot’s uniform, including a jacket and cap, looking focused and ready for flight. |
| 👨🏾✈️ | man pilot: medium-dark skin tone | A man with medium-dark skin tone wearing a pilot’s uniform, characterized by a jacket and cap, appearing authoritative. |
| 👨🏿✈️ | man pilot: dark skin tone | A man with dark skin tone dressed in a pilot’s uniform, complete with a jacket and cap, exuding confidence. |
| 👩✈️ | woman pilot | A woman in a pilot’s uniform, featuring a jacket and cap, with a determined expression on her face. |
| 👩🏻✈️ | woman pilot: light skin tone | A woman with light skin tone wearing a pilot’s uniform, characterized by a jacket and cap, looking confidently forward. |
| 👩🏼✈️ | woman pilot: medium-light skin tone | A woman with medium-light skin tone dressed in a pilot’s uniform, including a jacket and cap, displaying a professional attitude. |
| 👩🏽✈️ | woman pilot: medium skin tone | A woman with medium skin tone in a pilot’s uniform, complete with a jacket and cap, looking focused and ready for action. |
| 👩🏾✈️ | woman pilot: medium-dark skin tone | A woman with medium-dark skin tone wearing a pilot’s uniform, characterized by a jacket and cap, appearing confident. |
| 👩🏿✈️ | woman pilot: dark skin tone | A woman with dark skin tone dressed in a pilot’s uniform, including a jacket and cap, exuding professionalism. |
| 🧑🚀 | astronaut | A person in a space suit, complete with a helmet, looking ready for an adventure in outer space. |
| 🧑🏻🚀 | astronaut: light skin tone | A person with light skin tone wearing a space suit and helmet, prepared for a journey into space. |
| 🧑🏼🚀 | astronaut: medium-light skin tone | A person with medium-light skin tone dressed in a space suit and helmet, looking ready for space exploration. |
| 🧑🏽🚀 | astronaut: medium skin tone | A person with medium skin tone in a space suit and helmet, appearing eager for an adventure in space. |
| 🧑🏾🚀 | astronaut: medium-dark skin tone | A person with medium-dark skin tone wearing a space suit and helmet, looking prepared for space travel. |
| 🧑🏿🚀 | astronaut: dark skin tone | A person with dark skin tone dressed in a space suit and helmet, exuding excitement for space exploration. |
| 👨🚀 | man astronaut | A man in a space suit with a helmet, looking ready for an adventure among the stars. |
| 👨🏻🚀 | man astronaut: light skin tone | A man with light skin tone wearing a space suit and helmet, prepared for a journey into outer space. |
| 👨🏼🚀 | man astronaut: medium-light skin tone | A man with medium-light skin tone dressed in a space suit and helmet, looking eager for space exploration. |
| 👨🏽🚀 | man astronaut: medium skin tone | A man with medium skin tone in a space suit and helmet, appearing ready for an exciting space mission. |
| 👨🏾🚀 | man astronaut: medium-dark skin tone | A man with medium-dark skin tone wearing a space suit and helmet, looking prepared for an adventure in space. |
| 👨🏿🚀 | man astronaut: dark skin tone | A man with dark skin tone dressed in a space suit and helmet, exuding enthusiasm for space travel. |
| 👩🚀 | woman astronaut | A woman in a space suit with a helmet, looking ready for an adventure in the cosmos. |
| 👩🏻🚀 | woman astronaut: light skin tone | A woman with light skin tone wearing a space suit and helmet, prepared for a journey into space. |
| 👩🏼🚀 | woman astronaut: medium-light skin tone | A woman with medium-light skin tone dressed in a space suit and helmet, looking eager for space exploration. |
| 👩🏽🚀 | woman astronaut: medium skin tone | A woman with medium skin tone in a space suit and helmet, appearing ready for an exciting mission in space. |
| 👩🏾🚀 | woman astronaut: medium-dark skin tone | A woman with medium-dark skin tone wearing a space suit and helmet, looking prepared for an adventure in the stars. |
| 👩🏿🚀 | woman astronaut: dark skin tone | A woman with dark skin tone dressed in a space suit and helmet, exuding excitement for space exploration. |
| 🧑🚒 | firefighter | A person in firefighter gear, including a helmet and jacket, looking ready to tackle a fire emergency. |
| 🧑🏻🚒 | firefighter: light skin tone | A person with light skin tone wearing firefighter gear, complete with a helmet and jacket, appearing prepared for action. |
| 🧑🏼🚒 | firefighter: medium-light skin tone | A person with medium-light skin tone dressed in firefighter gear, including a helmet and jacket, looking determined. |
| 🧑🏽🚒 | firefighter: medium skin tone | A person with medium skin tone in firefighter gear, complete with a helmet and jacket, ready for a fire emergency. |
| 🧑🏾🚒 | firefighter: medium-dark skin tone | A person with medium-dark skin tone wearing firefighter gear, characterized by a helmet and jacket, appearing focused. |
| 🧑🏿🚒 | firefighter: dark skin tone | A person with dark skin tone dressed in firefighter gear, including a helmet and jacket, exuding readiness for action. |
| 👨🚒 | man firefighter | A man in firefighter gear, complete with a helmet and jacket, looking prepared to respond to a fire emergency. |
| 👨🏻🚒 | man firefighter: light skin tone | A man with light skin tone wearing a firefighter’s helmet and uniform, standing confidently with a determined expression. |
| 👨🏼🚒 | man firefighter: medium-light skin tone | A man with medium-light skin tone dressed in a firefighter’s uniform and helmet, looking ready for action with a focused expression. |
| 👨🏽🚒 | man firefighter: medium skin tone | A man with medium skin tone in a firefighter’s uniform and helmet, displaying a serious demeanor as he stands prepared for emergencies. |
| 👨🏾🚒 | man firefighter: medium-dark skin tone | A man with medium-dark skin tone wearing a firefighter’s helmet and uniform, exhibiting a brave expression as he stands alert. |
| 👨🏿🚒 | man firefighter: dark skin tone | A man with dark skin tone in a firefighter’s uniform and helmet, showing a composed and determined look as he stands ready. |
| 👩🚒 | woman firefighter | A woman in a firefighter’s uniform and helmet, poised and ready for action, with a determined expression on her face. |
| 👩🏻🚒 | woman firefighter: light skin tone | A woman with light skin tone dressed in a firefighter’s uniform and helmet, looking resolute and prepared for any situation. |
| 👩🏼🚒 | woman firefighter: medium-light skin tone | A woman with medium-light skin tone in a firefighter’s uniform and helmet, displaying a confident expression as she stands ready. |
| 👩🏽🚒 | woman firefighter: medium skin tone | A woman with medium skin tone wearing a firefighter’s helmet and uniform, exuding readiness and determination. |
| 👩🏾🚒 | woman firefighter: medium-dark skin tone | A woman with medium-dark skin tone in a firefighter’s uniform and helmet, showing a focused expression as she stands prepared. |
| 👩🏿🚒 | woman firefighter: dark skin tone | A woman with dark skin tone dressed in a firefighter’s uniform and helmet, displaying a serious and determined demeanor. |
| 👮 | police officer | A police officer in a uniform, standing with a serious expression, ready to enforce the law. |
| 👮🏻 | police officer: light skin tone | A police officer with light skin tone wearing a uniform, looking authoritative and prepared to take action. |
| 👮🏼 | police officer: medium-light skin tone | A police officer with medium-light skin tone in a uniform, displaying a confident and ready expression. |
| 👮🏽 | police officer: medium skin tone | A police officer with medium skin tone dressed in a uniform, exhibiting a serious demeanor as they stand alert. |
| 👮🏾 | police officer: medium-dark skin tone | A police officer with medium-dark skin tone in a uniform, showing a determined expression as they stand ready for duty. |
| 👮🏿 | police officer: dark skin tone | A police officer with dark skin tone wearing a uniform, looking serious and prepared to uphold the law. |
| 👮♂️ | man police officer | A man in a police officer’s uniform, standing with a serious expression, ready to enforce the law. |
| 👮🏻♂️ | man police officer: light skin tone | A man police officer with light skin tone in uniform, looking authoritative and prepared for action. |
| 👮🏼♂️ | man police officer: medium-light skin tone | A man police officer with medium-light skin tone dressed in a uniform, showing a confident and serious demeanor. |
| 👮🏽♂️ | man police officer: medium skin tone | A man police officer with medium skin tone in a uniform, standing alert with a determined expression. |
| 👮🏾♂️ | man police officer: medium-dark skin tone | A man police officer with medium-dark skin tone dressed in a uniform, exhibiting a serious and ready demeanor. |
| 👮🏿♂️ | man police officer: dark skin tone | A man police officer with dark skin tone wearing a uniform, looking serious and prepared for duty. |
| 👮♀️ | woman police officer | A woman in a police officer’s uniform, standing with a serious expression, ready to enforce the law. |
| 👮🏻♀️ | woman police officer: light skin tone | A woman police officer with light skin tone in uniform, looking authoritative and prepared for action. |
| 👮🏼♀️ | woman police officer: medium-light skin tone | A woman police officer with medium-light skin tone dressed in a uniform, displaying a confident and serious demeanor. |
| 👮🏽♀️ | woman police officer: medium skin tone | A woman police officer with medium skin tone in a uniform, standing alert with a determined expression. |
| 👮🏾♀️ | woman police officer: medium-dark skin tone | A woman police officer with medium-dark skin tone dressed in a uniform, showing a focused expression as she stands ready. |
| 👮🏿♀️ | woman police officer: dark skin tone | A woman police officer with dark skin tone wearing a uniform, looking serious and prepared to uphold the law. |
| 🕵️ | detective | A detective wearing a trench coat and fedora, looking inquisitive and observant, ready to solve a mystery. |
| 🕵🏻 | detective: light skin tone | A detective with light skin tone in a trench coat and fedora, displaying a curious expression as they investigate. |
| 🕵🏼 | detective: medium-light skin tone | A detective with medium-light skin tone dressed in a trench coat and fedora, looking focused and ready to uncover clues. |
| 🕵🏽 | detective: medium skin tone | A detective with medium skin tone wearing a trench coat and fedora, exhibiting a serious and observant demeanor. |
| 🕵🏾 | detective: medium-dark skin tone | A detective with medium-dark skin tone in a trench coat and fedora, showing a determined expression as they search for answers. |
| 🕵🏿 | detective: dark skin tone | A detective with dark skin tone dressed in a trench coat and fedora, looking serious and ready to solve a case. |
| 🕵️♂️ | man detective | A man detective wearing a trench coat and fedora, looking inquisitive and ready to investigate. |
| 🕵🏻♂️ | man detective: light skin tone | A man detective with light skin tone in a trench coat and fedora, displaying a curious expression as he investigates. |
| 🕵🏼♂️ | man detective: medium-light skin tone | A man detective with medium-light skin tone dressed in a trench coat and fedora, looking focused and observant. |
| 🕵🏽♂️ | man detective: medium skin tone | A man detective with medium skin tone wearing a trench coat and fedora, exhibiting a serious demeanor as he searches for clues. |
| 🕵🏾♂️ | man detective: medium-dark skin tone | A man detective with medium-dark skin tone in a trench coat and fedora, showing determination as he investigates. |
| 🕵🏿♂️ | man detective: dark skin tone | A man dressed in a black trench coat and hat, with dark skin tone, holding a magnifying glass as if investigating. |
| 🕵️♀️ | woman detective | A woman wearing a black trench coat and hat, holding a magnifying glass, with a focused expression as if solving a mystery. |
| 🕵🏻♀️ | woman detective: light skin tone | A woman detective with light skin tone, dressed in a black trench coat and hat, holding a magnifying glass with a determined look. |
| 🕵🏼♀️ | woman detective: medium-light skin tone | A woman with medium-light skin tone, wearing a black trench coat and hat, holding a magnifying glass, appearing inquisitive. |
| 🕵🏽♀️ | woman detective: medium skin tone | A woman detective with medium skin tone, dressed in a black trench coat and hat, holding a magnifying glass and looking curious. |
| 🕵🏾♀️ | woman detective: medium-dark skin tone | A woman with medium-dark skin tone, wearing a black trench coat and hat, holding a magnifying glass, looking intently as if on a case. |
| 🕵🏿♀️ | woman detective: dark skin tone | A woman detective with dark skin tone, dressed in a black trench coat and hat, holding a magnifying glass, with a serious expression. |
| 💂 | guard | A guard in a tall black hat, wearing a red tunic and black trousers, standing at attention with a serious expression. |
| 💂🏻 | guard: light skin tone | A guard with light skin tone, wearing a tall black hat and a red tunic, standing firmly with a serious demeanor. |
| 💂🏼 | guard: medium-light skin tone | A guard with medium-light skin tone, dressed in a red tunic and a tall black hat, standing at attention with a focused look. |
| 💂🏽 | guard: medium skin tone | A guard with medium skin tone, wearing a tall black hat and a red uniform, standing proudly with a serious expression. |
| 💂🏾 | guard: medium-dark skin tone | A guard with medium-dark skin tone, dressed in a red tunic and a tall black hat, standing at attention with a stern look. |
| 💂🏿 | guard: dark skin tone | A guard with dark skin tone, wearing a tall black hat and a red uniform, standing firmly with a serious expression. |
| 💂♂️ | man guard | A man guard in a tall black hat and red tunic, standing at attention with a serious expression. |
| 💂🏻♂️ | man guard: light skin tone | A man guard with light skin tone, dressed in a red tunic and a tall black hat, standing firmly with a serious demeanor. |
| 💂🏼♂️ | man guard: medium-light skin tone | A man guard with medium-light skin tone, wearing a tall black hat and a red uniform, standing at attention with a focused look. |
| 💂🏽♂️ | man guard: medium skin tone | A man guard with medium skin tone, dressed in a red tunic and a tall black hat, standing proudly with a serious expression. |
| 💂🏾♂️ | man guard: medium-dark skin tone | A man guard with medium-dark skin tone, wearing a tall black hat and a red uniform, standing at attention with a stern look. |
| 💂🏿♂️ | man guard: dark skin tone | A man guard with dark skin tone, dressed in a red tunic and a tall black hat, standing firmly with a serious expression. |
| 💂♀️ | woman guard | A woman guard in a tall black hat and red tunic, standing at attention with a serious expression. |
| 💂🏻♀️ | woman guard: light skin tone | A woman guard with light skin tone, dressed in a red tunic and a tall black hat, standing firmly with a serious demeanor. |
| 💂🏼♀️ | woman guard: medium-light skin tone | A woman guard with medium-light skin tone, wearing a tall black hat and a red uniform, standing at attention with a focused look. |
| 💂🏽♀️ | woman guard: medium skin tone | A woman guard with medium skin tone, dressed in a red tunic and a tall black hat, standing proudly with a serious expression. |
| 💂🏾♀️ | woman guard: medium-dark skin tone | A woman guard with medium-dark skin tone, wearing a tall black hat and a red uniform, standing at attention with a stern look. |
| 💂🏿♀️ | woman guard: dark skin tone | A woman guard with dark skin tone, dressed in a red tunic and a tall black hat, standing firmly with a serious expression. |
| 🥷 | ninja | A ninja dressed entirely in black, with a mask covering the lower part of the face, appearing stealthy and ready for action. |
| 🥷🏻 | ninja: light skin tone | A ninja with light skin tone, dressed in black with a mask covering the lower face, looking stealthy and prepared. |
| 🥷🏼 | ninja: medium-light skin tone | A ninja with medium-light skin tone, dressed in black with a mask, appearing stealthy and alert. |
| 🥷🏽 | ninja: medium skin tone | A ninja with medium skin tone, wearing a black outfit and mask, looking ready for action and stealthy. |
| 🥷🏾 | ninja: medium-dark skin tone | A ninja with medium-dark skin tone, dressed in black with a mask, appearing stealthy and poised for action. |
| 🥷🏿 | ninja: dark skin tone | A ninja with dark skin tone, dressed in black with a mask covering the lower face, looking stealthy and ready for action. |
| 👷 | construction worker | A construction worker wearing a yellow hard hat and blue overalls, looking focused and ready for work. |
| 👷🏻 | construction worker: light skin tone | A construction worker with light skin tone, wearing a yellow hard hat and blue overalls, appearing diligent and ready to work. |
| 👷🏼 | construction worker: medium-light skin tone | A construction worker with medium-light skin tone, dressed in blue overalls and a yellow hard hat, looking focused and prepared. |
| 👷🏽 | construction worker: medium skin tone | A construction worker with medium skin tone, wearing a yellow hard hat and blue overalls, looking determined and ready for work. |
| 👷🏾 | construction worker: medium-dark skin tone | A construction worker with medium-dark skin tone, dressed in blue overalls and a yellow hard hat, appearing diligent and ready to work. |
| 👷🏿 | construction worker: dark skin tone | A construction worker with dark skin tone, wearing a yellow hard hat and blue overalls, looking focused and ready for action. |
| 👷♂️ | man construction worker | A man construction worker wearing a yellow hard hat and blue overalls, looking determined and ready for work. |
| 👷🏻♂️ | man construction worker: light skin tone | A man construction worker with light skin tone, dressed in blue overalls and a yellow hard hat, appearing diligent and ready to work. |
| 👷🏼♂️ | man construction worker: medium-light skin tone | A man construction worker with medium-light skin tone, wearing a yellow hard hat and blue overalls, looking focused and ready for action. |
| 👷🏽♂️ | man construction worker: medium skin tone | A man wearing a hard hat and work clothes, with medium skin tone, standing upright, ready for construction work. |
| 👷🏾♂️ | man construction worker: medium-dark skin tone | A man in a hard hat and work attire, with medium-dark skin tone, positioned confidently as a construction worker. |
| 👷🏿♂️ | man construction worker: dark skin tone | A man dressed in construction gear and a hard hat, showcasing dark skin tone, standing in a work-ready pose. |
| 👷♀️ | woman construction worker | A woman wearing a hard hat and construction outfit, standing confidently, representing a construction worker. |
| 👷🏻♀️ | woman construction worker: light skin tone | A woman in a hard hat and work clothes, with light skin tone, standing upright as a construction worker. |
| 👷🏼♀️ | woman construction worker: medium-light skin tone | A woman dressed in construction attire and a hard hat, with medium-light skin tone, ready for work. |
| 👷🏽♀️ | woman construction worker: medium skin tone | A woman wearing a hard hat and work clothes, with medium skin tone, standing confidently as a construction worker. |
| 👷🏾♀️ | woman construction worker: medium-dark skin tone | A woman in a hard hat and construction gear, with medium-dark skin tone, posed as a dedicated worker. |
| 👷🏿♀️ | woman construction worker: dark skin tone | A woman dressed in construction clothing and a hard hat, showcasing dark skin tone, standing ready for work. |
| 🫅 | person with crown | A person wearing a crown, exuding a regal presence, with a neutral expression. |
| 🫅🏻 | person with crown: light skin tone | A person with light skin tone wearing a crown, radiating a noble aura. |
| 🫅🏼 | person with crown: medium-light skin tone | A person with medium-light skin tone adorned with a crown, embodying a royal demeanor. |
| 🫅🏽 | person with crown: medium skin tone | A person with medium skin tone wearing a crown, presenting a regal appearance. |
| 🫅🏾 | person with crown: medium-dark skin tone | A person with medium-dark skin tone wearing a crown, exuding a noble presence. |
| 🫅🏿 | person with crown: dark skin tone | A person with dark skin tone adorned with a crown, radiating a royal essence. |
| 🤴 | prince | A prince wearing a crown, dressed in royal attire, with a confident smile. |
| 🤴🏻 | prince: light skin tone | A prince with light skin tone, wearing a crown and royal clothing, smiling confidently. |
| 🤴🏼 | prince: medium-light skin tone | A prince with medium-light skin tone, adorned with a crown and dressed in regal attire, smiling. |
| 🤴🏽 | prince: medium skin tone | A prince with medium skin tone, wearing a crown and royal outfit, exuding confidence. |
| 🤴🏾 | prince: medium-dark skin tone | A prince with medium-dark skin tone, dressed in royal attire and wearing a crown, smiling proudly. |
| 🤴🏿 | prince: dark skin tone | A prince with dark skin tone, wearing a crown and regal clothing, radiating confidence. |
| 👸 | princess | A princess wearing a crown, dressed in elegant attire, with a gentle smile. |
| 👸🏻 | princess: light skin tone | A princess with light skin tone, adorned with a crown and wearing a beautiful gown, smiling softly. |
| 👸🏼 | princess: medium-light skin tone | A princess with medium-light skin tone, wearing a crown and elegant dress, smiling gracefully. |
| 👸🏽 | princess: medium skin tone | A princess with medium skin tone, dressed in royal attire and wearing a crown, smiling warmly. |
| 👸🏾 | princess: medium-dark skin tone | A princess with medium-dark skin tone, adorned with a crown and elegant clothing, smiling sweetly. |
| 👸🏿 | princess: dark skin tone | A princess with dark skin tone, wearing a crown and beautiful gown, radiating grace. |
| 👳 | person wearing turban | A person wearing a turban, with a neutral expression, representing cultural attire. |
| 👳🏻 | person wearing turban: light skin tone | A person with light skin tone wearing a turban, embodying cultural significance. |
| 👳🏼 | person wearing turban: medium-light skin tone | A person with medium-light skin tone adorned with a turban, representing cultural attire. |
| 👳🏽 | person wearing turban: medium skin tone | A person with medium skin tone wearing a turban, showcasing cultural heritage. |
| 👳🏾 | person wearing turban: medium-dark skin tone | A person with medium-dark skin tone wearing a turban, reflecting cultural identity. |
| 👳🏿 | person wearing turban: dark skin tone | A person with dark skin tone adorned with a turban, representing cultural significance. |
| 👳♂️ | man wearing turban | A man wearing a turban, standing upright with a neutral expression, representing cultural attire. |
| 👳🏻♂️ | man wearing turban: light skin tone | A man with light skin tone wearing a turban, reflecting cultural significance. |
| 👳🏼♂️ | man wearing turban: medium-light skin tone | A man with medium-light skin tone adorned with a turban, showcasing cultural attire. |
| 👳🏽♂️ | man wearing turban: medium skin tone | A man with medium skin tone wearing a turban, representing cultural heritage. |
| 👳🏾♂️ | man wearing turban: medium-dark skin tone | A man with medium-dark skin tone wearing a turban, embodying cultural identity. |
| 👳🏿♂️ | man wearing turban: dark skin tone | A man with dark skin tone adorned with a turban, reflecting cultural significance. |
| 👳♀️ | woman wearing turban | A woman wearing a turban, standing confidently with a neutral expression, representing cultural attire. |
| 👳🏻♀️ | woman wearing turban: light skin tone | A woman with light skin tone wearing a white turban, looking straight ahead with a neutral expression. |
| 👳🏼♀️ | woman wearing turban: medium-light skin tone | A woman with medium-light skin tone wearing a white turban, gazing forward with a calm demeanor. |
| 👳🏽♀️ | woman wearing turban: medium skin tone | A woman with medium skin tone adorned in a white turban, presenting a composed expression. |
| 👳🏾♀️ | woman wearing turban: medium-dark skin tone | A woman with medium-dark skin tone wearing a white turban, looking ahead with a serene expression. |
| 👳🏿♀️ | woman wearing turban: dark skin tone | A woman with dark skin tone sporting a white turban, facing forward with a gentle expression. |
| 👲 | person with skullcap | A person wearing a traditional skullcap, with a neutral expression, facing forward. |
| 👲🏻 | person with skullcap: light skin tone | A person with light skin tone wearing a white skullcap, looking directly ahead with a calm expression. |
| 👲🏼 | person with skullcap: medium-light skin tone | A person with medium-light skin tone donning a white skullcap, gazing forward with a composed demeanor. |
| 👲🏽 | person with skullcap: medium skin tone | A person with medium skin tone in a white skullcap, presenting a neutral expression. |
| 👲🏾 | person with skullcap: medium-dark skin tone | A person with medium-dark skin tone wearing a white skullcap, looking straight ahead with a serene expression. |
| 👲🏿 | person with skullcap: dark skin tone | A person with dark skin tone sporting a white skullcap, facing forward with a gentle demeanor. |
| 🧕 | woman with headscarf | A woman wearing a headscarf that covers her hair, looking straight ahead with a composed expression. |
| 🧕🏻 | woman with headscarf: light skin tone | A woman with light skin tone wearing a light-colored headscarf, gazing forward with a calm demeanor. |
| 🧕🏼 | woman with headscarf: medium-light skin tone | A woman with medium-light skin tone in a light-colored headscarf, looking ahead with a serene expression. |
| 🧕🏽 | woman with headscarf: medium skin tone | A woman with medium skin tone wearing a headscarf, presenting a neutral expression. |
| 🧕🏾 | woman with headscarf: medium-dark skin tone | A woman with medium-dark skin tone in a headscarf, looking straight ahead with a gentle demeanor. |
| 🧕🏿 | woman with headscarf: dark skin tone | A woman with dark skin tone wearing a dark-colored headscarf, facing forward with a composed expression. |
| 🤵 | person in tuxedo | A person in a formal black tuxedo, looking straight ahead with a neutral expression. |
| 🤵🏻 | person in tuxedo: light skin tone | A person with light skin tone dressed in a black tuxedo, gazing forward with a calm demeanor. |
| 🤵🏼 | person in tuxedo: medium-light skin tone | A person with medium-light skin tone wearing a black tuxedo, looking straight ahead with a composed expression. |
| 🤵🏽 | person in tuxedo: medium skin tone | A person with medium skin tone in a black tuxedo, presenting a neutral expression. |
| 🤵🏾 | person in tuxedo: medium-dark skin tone | A person with medium-dark skin tone dressed in a black tuxedo, looking forward with a serene expression. |
| 🤵🏿 | person in tuxedo: dark skin tone | A person with dark skin tone in a black tuxedo, facing forward with a gentle demeanor. |
| 🤵♂️ | man in tuxedo | A man in a formal black tuxedo, looking straight ahead with a neutral expression. |
| 🤵🏻♂️ | man in tuxedo: light skin tone | A man with light skin tone dressed in a black tuxedo, gazing forward with a calm demeanor. |
| 🤵🏼♂️ | man in tuxedo: medium-light skin tone | A man with medium-light skin tone in a black tuxedo, looking straight ahead with a composed expression. |
| 🤵🏽♂️ | man in tuxedo: medium skin tone | A man with medium skin tone wearing a black tuxedo, presenting a neutral expression. |
| 🤵🏾♂️ | man in tuxedo: medium-dark skin tone | A man with medium-dark skin tone dressed in a black tuxedo, looking forward with a serene expression. |
| 🤵🏿♂️ | man in tuxedo: dark skin tone | A man with dark skin tone in a black tuxedo, facing forward with a gentle demeanor. |
| 🤵♀️ | woman in tuxedo | A woman in a formal black tuxedo, looking straight ahead with a neutral expression. |
| 🤵🏻♀️ | woman in tuxedo: light skin tone | A woman with light skin tone dressed in a black tuxedo, gazing forward with a calm demeanor. |
| 🤵🏼♀️ | woman in tuxedo: medium-light skin tone | A woman with medium-light skin tone in a black tuxedo, looking straight ahead with a composed expression. |
| 🤵🏽♀️ | woman in tuxedo: medium skin tone | A woman with medium skin tone wearing a black tuxedo, presenting a neutral expression. |
| 🤵🏾♀️ | woman in tuxedo: medium-dark skin tone | A woman with medium-dark skin tone dressed in a black tuxedo, looking forward with a serene expression. |
| 🤵🏿♀️ | woman in tuxedo: dark skin tone | A woman with dark skin tone in a black tuxedo, facing forward with a gentle demeanor. |
| 👰 | person with veil | A person wearing a wedding veil, looking straight ahead with a serene expression. |
| 👰🏻 | person with veil: light skin tone | A person with light skin tone adorned with a white veil, gazing forward with a calm demeanor. |
| 👰🏼 | person with veil: medium-light skin tone | A person with medium-light skin tone wearing a white veil, looking straight ahead with a composed expression. |
| 👰🏽 | person with veil: medium skin tone | A person with medium skin tone in a wedding veil, presenting a neutral expression. |
| 👰🏾 | person with veil: medium-dark skin tone | A person with medium-dark skin tone wearing a white veil, looking forward with a gentle demeanor. |
| 👰🏿 | person with veil: dark skin tone | A woman in a white wedding dress with a dark skin tone, wearing a delicate veil that covers her hair. |
| 👰♂️ | man with veil | A man dressed in a formal suit with a white shirt and a black tie, wearing a veil over his head. |
| 👰🏻♂️ | man with veil: light skin tone | A man in a formal suit with a light skin tone, wearing a white shirt and a black tie, topped with a veil. |
| 👰🏼♂️ | man with veil: medium-light skin tone | A man with a medium-light skin tone, dressed in a suit and tie, wearing a white veil. |
| 👰🏽♂️ | man with veil: medium skin tone | A man in a formal suit with a medium skin tone, wearing a white shirt, black tie, and a veil. |
| 👰🏾♂️ | man with veil: medium-dark skin tone | A man with a medium-dark skin tone in a formal suit, wearing a veil that covers his hair. |
| 👰🏿♂️ | man with veil: dark skin tone | A man in a formal suit with a dark skin tone, wearing a veil that drapes over his head. |
| 👰♀️ | woman with veil | A woman in a white wedding dress with a veil covering her hair, smiling gently. |
| 👰🏻♀️ | woman with veil: light skin tone | A woman with a light skin tone in a white wedding dress, wearing a delicate veil. |
| 👰🏼♀️ | woman with veil: medium-light skin tone | A woman with medium-light skin tone in a white wedding dress and a veil, looking serene. |
| 👰🏽♀️ | woman with veil: medium skin tone | A woman in a white wedding dress with a medium skin tone, wearing a veil that softly frames her face. |
| 👰🏾♀️ | woman with veil: medium-dark skin tone | A woman in a white wedding dress with a medium-dark skin tone, adorned with a veil. |
| 👰🏿♀️ | woman with veil: dark skin tone | A woman with a dark skin tone in a white wedding dress, her hair covered by a flowing veil. |
| 🤰 | pregnant woman | A woman with a rounded belly, wearing a simple dress, looking down affectionately at her pregnancy. |
| 🤰🏻 | pregnant woman: light skin tone | A pregnant woman with a light skin tone, gently cradling her rounded belly while wearing a simple dress. |
| 🤰🏼 | pregnant woman: medium-light skin tone | A pregnant woman with medium-light skin tone, looking down at her belly with a soft smile. |
| 🤰🏽 | pregnant woman: medium skin tone | A pregnant woman with medium skin tone, wearing a dress and cradling her rounded belly. |
| 🤰🏾 | pregnant woman: medium-dark skin tone | A pregnant woman with medium-dark skin tone, gently holding her belly and smiling down at it. |
| 🤰🏿 | pregnant woman: dark skin tone | A pregnant woman with a dark skin tone, wearing a dress and affectionately cradling her belly. |
| 🫃 | pregnant man | A man with a rounded belly, appearing bloated, dressed casually and looking down at his stomach. |
| 🫃🏻 | pregnant man: light skin tone | A light-skinned man with a rounded belly, casually dressed and looking down at his stomach. |
| 🫃🏼 | pregnant man: medium-light skin tone | A medium-light skinned man with a rounded belly, dressed casually and gazing at his stomach. |
| 🫃🏽 | pregnant man: medium skin tone | A medium-skinned man with a rounded belly, looking down at his stomach while dressed casually. |
| 🫃🏾 | pregnant man: medium-dark skin tone | A medium-dark skinned man with a rounded belly, casually dressed and gazing at his stomach. |
| 🫃🏿 | pregnant man: dark skin tone | A dark-skinned man with a rounded belly, dressed casually and looking down at his stomach. |
| 🫄 | pregnant person | A person with a rounded belly, appearing pregnant, dressed simply and looking down affectionately. |
| 🫄🏻 | pregnant person: light skin tone | A light-skinned person with a rounded belly, casually dressed and looking down at their stomach. |
| 🫄🏼 | pregnant person: medium-light skin tone | A medium-light skinned person with a rounded belly, dressed simply and gazing down at their stomach. |
| 🫄🏽 | pregnant person: medium skin tone | A medium-skinned person with a rounded belly, looking down at their stomach while dressed casually. |
| 🫄🏾 | pregnant person: medium-dark skin tone | A medium-dark skinned person with a rounded belly, casually dressed and gazing at their stomach. |
| 🫄🏿 | pregnant person: dark skin tone | A dark-skinned person with a rounded belly, dressed simply and looking down affectionately. |
| 🤱 | breast-feeding | A woman sitting and breastfeeding a baby, looking down lovingly at the child in her arms. |
| 🤱🏻 | breast-feeding: light skin tone | A light-skinned woman breastfeeding a baby, gently cradling the child while looking down affectionately. |
| 🤱🏼 | breast-feeding: medium-light skin tone | A medium-light skinned woman breastfeeding a baby, smiling softly as she looks down at the child. |
| 🤱🏽 | breast-feeding: medium skin tone | A medium-skinned woman breastfeeding a baby, cradling the child lovingly in her arms. |
| 🤱🏾 | breast-feeding: medium-dark skin tone | A medium-dark skinned woman breastfeeding a baby, looking down with a warm smile. |
| 🤱🏿 | breast-feeding: dark skin tone | A dark-skinned woman breastfeeding a baby, gently cradling the child and looking down affectionately. |
| 👩🍼 | woman feeding baby | A woman holding a baby in one arm while feeding it from a bottle, looking down with a nurturing expression. |
| 👩🏻🍼 | woman feeding baby: light skin tone | A light-skinned woman feeding a baby with a bottle, cradling the child and smiling gently. |
| 👩🏼🍼 | woman feeding baby: medium-light skin tone | A medium-light skinned woman holding a baby and feeding it from a bottle, looking lovingly at the child. |
| 👩🏽🍼 | woman feeding baby: medium skin tone | A woman with medium skin tone is gently holding a baby while feeding them, wearing a soft smile. |
| 👩🏾🍼 | woman feeding baby: medium-dark skin tone | A woman with medium-dark skin tone is lovingly feeding a baby, her expression warm and nurturing. |
| 👩🏿🍼 | woman feeding baby: dark skin tone | A woman with dark skin tone is cradling a baby in her arms as she feeds them, showing a caring demeanor. |
| 👨🍼 | man feeding baby | A man is feeding a baby, holding them securely in one arm while offering a bottle with a gentle expression. |
| 👨🏻🍼 | man feeding baby: light skin tone | A man with light skin tone is feeding a baby, his face displaying a tender smile as he cradles the child. |
| 👨🏼🍼 | man feeding baby: medium-light skin tone | A man with medium-light skin tone is feeding a baby, looking down with affection and care. |
| 👨🏽🍼 | man feeding baby: medium skin tone | A man with medium skin tone is feeding a baby, his expression soft and attentive as he holds the child. |
| 👨🏾🍼 | man feeding baby: medium-dark skin tone | A man with medium-dark skin tone is nurturing a baby, feeding them with a loving gaze. |
| 👨🏿🍼 | man feeding baby: dark skin tone | A man with dark skin tone is gently feeding a baby, showcasing a caring and protective demeanor. |
| 🧑🍼 | person feeding baby | A person is feeding a baby, holding them close with a kind expression, embodying warmth and care. |
| 🧑🏻🍼 | person feeding baby: light skin tone | A person with light skin tone is lovingly feeding a baby, their face reflecting tenderness. |
| 🧑🏼🍼 | person feeding baby: medium-light skin tone | A person with medium-light skin tone is feeding a baby, showing a gentle smile and nurturing presence. |
| 🧑🏽🍼 | person feeding baby: medium skin tone | A person with medium skin tone is cradling a baby while feeding them, their expression serene and caring. |
| 🧑🏾🍼 | person feeding baby: medium-dark skin tone | A person with medium-dark skin tone is feeding a baby, radiating warmth and affection. |
| 🧑🏿🍼 | person feeding baby: dark skin tone | A person with dark skin tone is gently feeding a baby, their demeanor calm and loving. |
| 👼 | baby angel | A small angelic baby with a cherubic face, wearing a white robe and wings, exuding innocence and purity. |
| 👼🏻 | baby angel: light skin tone | A baby angel with light skin tone, dressed in a white robe and wings, looking sweet and innocent. |
| 👼🏼 | baby angel: medium-light skin tone | A baby angel with medium-light skin tone, wearing a white robe and delicate wings, radiating purity. |
| 👼🏽 | baby angel: medium skin tone | A baby angel with medium skin tone, adorned in a white robe and wings, embodying innocence. |
| 👼🏾 | baby angel: medium-dark skin tone | A baby angel with medium-dark skin tone, dressed in a white robe and wings, appearing gentle and pure. |
| 👼🏿 | baby angel: dark skin tone | A baby angel with dark skin tone, wearing a white robe and wings, looking sweet and innocent. |
| 🎅 | Santa Claus | A jolly Santa Claus with a white beard, red suit, and black belt, smiling warmly as he embodies the spirit of Christmas. |
| 🎅🏻 | Santa Claus: light skin tone | A Santa Claus with light skin tone, wearing a traditional red suit and white beard, exuding joy and cheer. |
| 🎅🏼 | Santa Claus: medium-light skin tone | A Santa Claus with medium-light skin tone, dressed in a red suit and white beard, looking festive and cheerful. |
| 🎅🏽 | Santa Claus: medium skin tone | A Santa Claus with medium skin tone, wearing a classic red suit and white beard, radiating holiday spirit. |
| 🎅🏾 | Santa Claus: medium-dark skin tone | A Santa Claus with medium-dark skin tone, dressed in a red suit and white beard, smiling with warmth. |
| 🎅🏿 | Santa Claus: dark skin tone | A Santa Claus with dark skin tone, wearing a red suit and white beard, embodying the joy of Christmas. |
| 🤶 | Mrs. Claus | Mrs. Claus is smiling warmly, dressed in a red dress with white trim, radiating kindness and holiday cheer. |
| 🤶🏻 | Mrs. Claus: light skin tone | Mrs. Claus with light skin tone, wearing a festive red dress and white trim, looking cheerful and welcoming. |
| 🤶🏼 | Mrs. Claus: medium-light skin tone | Mrs. Claus with medium-light skin tone, dressed in a red dress with white trim, exuding warmth and joy. |
| 🤶🏽 | Mrs. Claus: medium skin tone | Mrs. Claus with medium skin tone, wearing a red dress with white trim, smiling with a friendly demeanor. |
| 🤶🏾 | Mrs. Claus: medium-dark skin tone | Mrs. Claus with medium-dark skin tone, dressed in a red dress with white trim, radiating holiday spirit. |
| 🤶🏿 | Mrs. Claus: dark skin tone | Mrs. Claus with dark skin tone, wearing a red dress with white trim, embodying warmth and cheer. |
| 🧑🎄 | Mx Claus | Mx Claus is smiling, dressed in a festive outfit with red and white accents, embodying the spirit of the holidays. |
| 🧑🏻🎄 | Mx Claus: light skin tone | Mx Claus with light skin tone, dressed in a festive outfit, looking cheerful and inviting. |
| 🧑🏼🎄 | Mx Claus: medium-light skin tone | Mx Claus with medium-light skin tone, wearing a festive outfit, radiating holiday cheer. |
| 🧑🏽🎄 | Mx Claus: medium skin tone | Mx Claus with medium skin tone, dressed in a festive outfit, smiling warmly. |
| 🧑🏾🎄 | Mx Claus: medium-dark skin tone | Mx Claus with medium-dark skin tone, wearing a festive outfit, exuding joy and warmth. |
| 🧑🏿🎄 | Mx Claus: dark skin tone | Mx Claus with dark skin tone, dressed in a festive outfit, embodying the spirit of celebration. |
| 🦸 | superhero | A superhero figure in a dynamic pose, wearing a colorful costume with a cape, exuding strength and confidence. |
| 🦸🏻 | superhero: light skin tone | A superhero with light skin tone, wearing a colorful costume and a cape, striking a confident pose with one arm raised. |
| 🦸🏼 | superhero: medium-light skin tone | A superhero with medium-light skin tone, dressed in a vibrant outfit and cape, standing heroically with one fist clenched. |
| 🦸🏽 | superhero: medium skin tone | A superhero with medium skin tone, showcasing a bold costume and cape, posed with determination and one arm extended. |
| 🦸🏾 | superhero: medium-dark skin tone | A superhero with medium-dark skin tone, wearing a dynamic costume and flowing cape, confidently standing with a strong stance. |
| 🦸🏿 | superhero: dark skin tone | A superhero with dark skin tone, donned in a striking outfit and cape, posing assertively with a raised arm. |
| 🦸♂️ | man superhero | A male superhero in a colorful costume and cape, standing proudly with a confident expression. |
| 🦸🏻♂️ | man superhero: light skin tone | A light-skinned male superhero in a vibrant costume and cape, posed heroically with one arm raised. |
| 🦸🏼♂️ | man superhero: medium-light skin tone | A medium-light-skinned male superhero, dressed in a bright outfit and cape, standing with a determined expression. |
| 🦸🏽♂️ | man superhero: medium skin tone | A medium-skinned male superhero in a colorful costume and cape, confidently posing with one arm extended. |
| 🦸🏾♂️ | man superhero: medium-dark skin tone | A medium-dark-skinned male superhero, wearing a dynamic outfit and flowing cape, standing strong with a proud stance. |
| 🦸🏿♂️ | man superhero: dark skin tone | A dark-skinned male superhero in a striking costume and cape, posed assertively with a raised arm. |
| 🦸♀️ | woman superhero | A female superhero in a colorful costume and cape, standing confidently with a determined expression. |
| 🦸🏻♀️ | woman superhero: light skin tone | A light-skinned female superhero in a vibrant outfit and cape, posed heroically with one arm raised. |
| 🦸🏼♀️ | woman superhero: medium-light skin tone | A medium-light-skinned female superhero, dressed in a bright costume and cape, standing with a strong stance. |
| 🦸🏽♀️ | woman superhero: medium skin tone | A medium-skinned female superhero in a colorful outfit and flowing cape, confidently posing with one arm extended. |
| 🦸🏾♀️ | woman superhero: medium-dark skin tone | A medium-dark-skinned female superhero, wearing a dynamic costume and cape, standing proudly with a determined expression. |
| 🦸🏿♀️ | woman superhero: dark skin tone | A dark-skinned female superhero in a striking outfit and cape, posed assertively with a raised arm. |
| 🦹 | supervillain | A supervillain with a menacing expression, dressed in dark, dramatic attire with a cape, often posed with hands on hips. |
| 🦹🏻 | supervillain: light skin tone | A light-skinned supervillain in a dark costume and cape, striking a villainous pose with a sly smile. |
| 🦹🏼 | supervillain: medium-light skin tone | A medium-light-skinned supervillain, dressed in a dramatic outfit and cape, posed with a cunning expression. |
| 🦹🏽 | supervillain: medium skin tone | A medium-skinned supervillain in a dark, edgy costume and cape, confidently standing with a mischievous grin. |
| 🦹🏾 | supervillain: medium-dark skin tone | A medium-dark-skinned supervillain, wearing a striking outfit and cape, posed with a sinister smile. |
| 🦹🏿 | supervillain: dark skin tone | A dark-skinned supervillain in a dramatic costume and cape, standing menacingly with a confident expression. |
| 🦹♂️ | man supervillain | A male supervillain in a dark, dramatic outfit and cape, posed with a sly grin and arms crossed. |
| 🦹🏻♂️ | man supervillain: light skin tone | A light-skinned male supervillain in a dark costume and cape, striking a villainous pose with a devious smile. |
| 🦹🏼♂️ | man supervillain: medium-light skin tone | A medium-light-skinned male supervillain, dressed in a dramatic outfit and cape, posed with a cunning expression. |
| 🦹🏽♂️ | man supervillain: medium skin tone | A medium-skinned male supervillain in a dark costume and cape, confidently standing with a mischievous grin. |
| 🦹🏾♂️ | man supervillain: medium-dark skin tone | A medium-dark-skinned male supervillain, wearing a striking outfit and cape, posed with a sinister smile. |
| 🦹🏿♂️ | man supervillain: dark skin tone | A dark-skinned male supervillain in a dramatic costume and cape, standing menacingly with a confident expression. |
| 🦹♀️ | woman supervillain | A female supervillain in a dark, dramatic outfit and cape, posed with a sly smile and hands on hips. |
| 🦹🏻♀️ | woman supervillain: light skin tone | A light-skinned female supervillain in a dark costume and cape, striking a villainous pose with a devious grin. |
| 🦹🏼♀️ | woman supervillain: medium-light skin tone | A medium-light-skinned female supervillain, dressed in a dramatic outfit and cape, posed with a cunning expression. |
| 🦹🏽♀️ | woman supervillain: medium skin tone | A medium-skinned female supervillain in a dark costume and cape, confidently standing with a mischievous smile. |
| 🦹🏾♀️ | woman supervillain: medium-dark skin tone | A medium-dark-skinned female supervillain, wearing a striking outfit and cape, posed with a sinister smile. |
| 🦹🏿♀️ | woman supervillain: dark skin tone | A dark-skinned female supervillain in a dramatic costume and cape, standing menacingly with a confident expression. |
| 🧙 | mage | A mage wearing a long robe and pointed hat, often depicted with a mystical expression and holding a magical staff. |
| 🧙🏻 | mage: light skin tone | A light-skinned mage in a long robe and pointed hat, holding a staff and exuding a magical aura. |
| 🧙🏼 | mage: medium-light skin tone | A medium-light-skinned mage dressed in a flowing robe and pointed hat, posed with a staff and a wise expression. |
| 🧙🏽 | mage: medium skin tone | A medium-skinned mage in a colorful robe and pointed hat, confidently holding a staff with a mystical aura. |
| 🧙🏾 | mage: medium-dark skin tone | A medium-dark-skinned mage wearing a dramatic robe and pointed hat, posed with a staff and a wise expression. |
| 🧙🏿 | mage: dark skin tone | A male mage with dark skin, wearing a long, flowing robe and a pointed hat, exuding a mystical aura. |
| 🧙♂️ | man mage | A male mage with a long beard, dressed in a robe and pointed hat, holding a staff, suggesting wisdom and magic. |
| 🧙🏻♂️ | man mage: light skin tone | A male mage with light skin, adorned in a traditional robe and pointed hat, radiating an air of enchantment. |
| 🧙🏼♂️ | man mage: medium-light skin tone | A male mage with medium-light skin, wearing a robe and pointed hat, embodying a sense of fantasy and magic. |
| 🧙🏽♂️ | man mage: medium skin tone | A male mage with medium skin, dressed in a classic robe and pointed hat, evoking a sense of mystique. |
| 🧙🏾♂️ | man mage: medium-dark skin tone | A male mage with medium-dark skin, clad in a robe and pointed hat, exuding magical energy. |
| 🧙🏿♂️ | man mage: dark skin tone | A male mage with dark skin, wearing a flowing robe and pointed hat, suggesting power and wisdom in magic. |
| 🧙♀️ | woman mage | A female mage with a mystical expression, wearing a long robe and a pointed hat, holding a staff, embodying enchantment. |
| 🧙🏻♀️ | woman mage: light skin tone | A female mage with light skin, dressed in a robe and pointed hat, radiating a magical presence. |
| 🧙🏼♀️ | woman mage: medium-light skin tone | A female mage with medium-light skin, adorned in a robe and pointed hat, suggesting a connection to the mystical. |
| 🧙🏽♀️ | woman mage: medium skin tone | A female mage with medium skin, wearing a robe and pointed hat, exuding an aura of magic and mystery. |
| 🧙🏾♀️ | woman mage: medium-dark skin tone | A female mage with medium-dark skin, dressed in a robe and pointed hat, embodying the essence of fantasy. |
| 🧙🏿♀️ | woman mage: dark skin tone | A female mage with dark skin, wearing a long robe and pointed hat, suggesting wisdom and magical prowess. |
| 🧚 | fairy | A whimsical fairy with delicate wings, a playful expression, and a vibrant outfit, embodying enchantment. |
| 🧚🏻 | fairy: light skin tone | A fairy with light skin, featuring delicate wings and a colorful outfit, exuding a joyful and magical aura. |
| 🧚🏼 | fairy: medium-light skin tone | A fairy with medium-light skin, adorned with delicate wings and a bright outfit, radiating charm and magic. |
| 🧚🏽 | fairy: medium skin tone | A fairy with medium skin, showcasing delicate wings and a vibrant outfit, embodying a sense of wonder. |
| 🧚🏾 | fairy: medium-dark skin tone | A fairy with medium-dark skin, featuring beautiful wings and a colorful outfit, exuding an enchanting presence. |
| 🧚🏿 | fairy: dark skin tone | A fairy with dark skin, adorned with delicate wings and a bright outfit, radiating magic and whimsy. |
| 🧚♂️ | man fairy | A male fairy with delicate wings, wearing a playful outfit and a charming smile, embodying fantasy. |
| 🧚🏻♂️ | man fairy: light skin tone | A male fairy with light skin, featuring delicate wings and a colorful outfit, exuding a cheerful aura. |
| 🧚🏼♂️ | man fairy: medium-light skin tone | A male fairy with medium-light skin, adorned with wings and a vibrant outfit, radiating joy and magic. |
| 🧚🏽♂️ | man fairy: medium skin tone | A male fairy with medium skin, showcasing delicate wings and a playful outfit, embodying fantasy. |
| 🧚🏾♂️ | man fairy: medium-dark skin tone | A male fairy with medium-dark skin, featuring beautiful wings and a colorful outfit, exuding charm. |
| 🧚🏿♂️ | man fairy: dark skin tone | A male fairy with dark skin, adorned with delicate wings and a bright outfit, radiating magic and whimsy. |
| 🧚♀️ | woman fairy | A female fairy with delicate wings, a joyful expression, and a vibrant outfit, embodying enchantment. |
| 🧚🏻♀️ | woman fairy: light skin tone | A female fairy with light skin, featuring beautiful wings and a colorful outfit, radiating joy and magic. |
| 🧚🏼♀️ | woman fairy: medium-light skin tone | A female fairy with medium-light skin, adorned with delicate wings and a bright outfit, embodying charm. |
| 🧚🏽♀️ | woman fairy: medium skin tone | A female fairy with medium skin, showcasing delicate wings and a vibrant outfit, exuding a sense of wonder. |
| 🧚🏾♀️ | woman fairy: medium-dark skin tone | A female fairy with medium-dark skin, featuring beautiful wings and a colorful outfit, radiating enchantment. |
| 🧚🏿♀️ | woman fairy: dark skin tone | A female fairy with dark skin, adorned with delicate wings and a bright outfit, embodying magic and whimsy. |
| 🧛 | vampire | A vampire with pale skin, sharp fangs, and a dark cape, exuding a mysterious and eerie presence. |
| 🧛🏻 | vampire: light skin tone | A vampire with light skin, sharp fangs, and a dark cloak, suggesting a classic horror character. |
| 🧛🏼 | vampire: medium-light skin tone | A vampire with medium-light skin, featuring fangs and a dark cloak, embodying a supernatural aura. |
| 🧛🏽 | vampire: medium skin tone | A vampire with medium skin, sharp fangs, and a dark cape, exuding a sense of mystery and danger. |
| 🧛🏾 | vampire: medium-dark skin tone | A vampire with medium-dark skin, showcasing fangs and a dark cloak, radiating an eerie charm. |
| 🧛🏿 | vampire: dark skin tone | A vampire with dark skin, sharp fangs, and a dark cape, embodying a classic horror figure. |
| 🧛♂️ | man vampire | A male vampire with pale skin, dressed in a dark cloak, exuding an air of mystery and danger. |
| 🧛🏻♂️ | man vampire: light skin tone | A male vampire with light skin, featuring fangs and a dark cloak, suggesting a classic horror character. |
| 🧛🏼♂️ | man vampire: medium-light skin tone | A male vampire with medium-light skin, showcasing fangs and a dark cloak, radiating an eerie presence. |
| 🧛🏽♂️ | man vampire: medium skin tone | A man with medium skin tone, dressed in a dark cape, has sharp fangs and a pale face, exuding a mysterious and eerie aura. |
| 🧛🏾♂️ | man vampire: medium-dark skin tone | A man with medium-dark skin tone, wearing a dark cloak, features pointed ears and fangs, presenting a sinister yet charming expression. |
| 🧛🏿♂️ | man vampire: dark skin tone | A man with dark skin tone, clad in a flowing black cape, has a pale complexion and sharp fangs, looking both alluring and menacing. |
| 🧛♀️ | woman vampire | A woman vampire with a pale face, sharp fangs, and long dark hair, dressed in a flowing dark gown that adds to her mysterious allure. |
| 🧛🏻♀️ | woman vampire: light skin tone | A woman vampire with light skin tone, featuring sharp fangs and dark hair, dressed in a dramatic black outfit, radiating an eerie charm. |
| 🧛🏼♀️ | woman vampire: medium-light skin tone | A woman vampire with medium-light skin tone, sharp fangs, and long dark hair, wearing a dark, flowing dress that enhances her mystical appearance. |
| 🧛🏽♀️ | woman vampire: medium skin tone | A woman vampire with medium skin tone, sharp fangs, and dark hair, dressed in a dark cape, exuding a captivating yet eerie presence. |
| 🧛🏾♀️ | woman vampire: medium-dark skin tone | A woman vampire with medium-dark skin tone, sharp fangs, and long dark hair, wearing a flowing dark gown that adds to her enchanting aura. |
| 🧛🏿♀️ | woman vampire: dark skin tone | A woman vampire with dark skin tone, dressed in a dramatic black outfit, sharp fangs, and a pale face, giving her a hauntingly beautiful look. |
| 🧜 | merperson | A merperson with a fish tail, featuring long hair and a serene expression, often depicted with a shimmering tail that reflects ocean colors. |
| 🧜🏻 | merperson: light skin tone | A merperson with light skin tone, long flowing hair, and a shimmering tail, radiating a tranquil and enchanting oceanic vibe. |
| 🧜🏼 | merperson: medium-light skin tone | A merperson with medium-light skin tone, adorned with long hair and a sparkling tail, exuding a magical presence from the sea. |
| 🧜🏽 | merperson: medium skin tone | A merperson with medium skin tone, long hair, and a vibrant tail, embodying the enchanting essence of the ocean. |
| 🧜🏾 | merperson: medium-dark skin tone | A merperson with medium-dark skin tone, featuring long hair and a shimmering tail, exuding a captivating and mystical aura. |
| 🧜🏿 | merperson: dark skin tone | A merperson with dark skin tone, long flowing hair, and a dazzling tail, representing the enchanting beauty of the sea. |
| 🧜♂️ | merman | A merman with a fish tail, long hair, and a calm expression, embodying the enchanting allure of the ocean depths. |
| 🧜🏻♂️ | merman: light skin tone | A merman with light skin tone, long hair, and a shimmering tail, exuding a serene and captivating oceanic charm. |
| 🧜🏼♂️ | merman: medium-light skin tone | A merman with medium-light skin tone, featuring long hair and a sparkling tail, radiating a magical essence from the sea. |
| 🧜🏽♂️ | merman: medium skin tone | A merman with medium skin tone, long hair, and a vibrant tail, embodying the enchanting spirit of the ocean. |
| 🧜🏾♂️ | merman: medium-dark skin tone | A merman with medium-dark skin tone, long flowing hair, and a dazzling tail, exuding a captivating and mystical presence. |
| 🧜🏿♂️ | merman: dark skin tone | A merman with dark skin tone, long hair, and a shimmering tail, representing the enchanting beauty of the ocean depths. |
| 🧜♀️ | mermaid | A mermaid with a fish tail, long hair, and a serene expression, embodying the enchanting allure of the sea. |
| 🧜🏻♀️ | mermaid: light skin tone | A mermaid with light skin tone, long hair, and a shimmering tail, radiating a tranquil and magical oceanic vibe. |
| 🧜🏼♀️ | mermaid: medium-light skin tone | A mermaid with medium-light skin tone, adorned with long hair and a sparkling tail, exuding a magical presence from the sea. |
| 🧜🏽♀️ | mermaid: medium skin tone | A mermaid with medium skin tone, long hair, and a vibrant tail, embodying the enchanting essence of the ocean. |
| 🧜🏾♀️ | mermaid: medium-dark skin tone | A mermaid with medium-dark skin tone, featuring long hair and a shimmering tail, exuding a captivating and mystical aura. |
| 🧜🏿♀️ | mermaid: dark skin tone | A mermaid with dark skin tone, long flowing hair, and a dazzling tail, representing the enchanting beauty of the sea. |
| 🧝 | elf | An elf with pointed ears, dressed in a flowing outfit, often depicted with a serene expression and an air of magic and enchantment. |
| 🧝🏻 | elf: light skin tone | An elf with light skin tone, pointed ears, and a graceful outfit, exuding a mystical and enchanting presence. |
| 🧝🏼 | elf: medium-light skin tone | An elf with medium-light skin tone, featuring pointed ears and a flowing outfit, radiating an aura of magic and fantasy. |
| 🧝🏽 | elf: medium skin tone | An elf with medium skin tone, pointed ears, and a graceful outfit, embodying the enchanting spirit of folklore. |
| 🧝🏾 | elf: medium-dark skin tone | An elf with medium-dark skin tone, adorned with pointed ears and a flowing outfit, exuding a captivating and magical presence. |
| 🧝🏿 | elf: dark skin tone | An elf with dark skin tone, pointed ears, and a graceful outfit, representing the enchanting essence of fantasy. |
| 🧝♂️ | man elf | A man elf with pointed ears, dressed in a flowing outfit, radiating a serene and magical presence. |
| 🧝🏻♂️ | man elf: light skin tone | A man elf with light skin tone, pointed ears, and a graceful outfit, embodying an enchanting and mystical aura. |
| 🧝🏼♂️ | man elf: medium-light skin tone | A man elf with medium-light skin tone, featuring pointed ears and a flowing outfit, exuding a magical essence. |
| 🧝🏽♂️ | man elf: medium skin tone | A man elf with medium skin tone, pointed ears, and a graceful outfit, representing the enchanting spirit of folklore. |
| 🧝🏾♂️ | man elf: medium-dark skin tone | A man elf with medium-dark skin tone, adorned with pointed ears and a flowing outfit, radiating a captivating and magical presence. |
| 🧝🏿♂️ | man elf: dark skin tone | A man elf with dark skin tone, pointed ears, and a graceful outfit, embodying the enchanting essence of fantasy. |
| 🧝♀️ | woman elf | A woman elf with pointed ears, dressed in a flowing outfit, radiating a serene and magical presence. |
| 🧝🏻♀️ | woman elf: light skin tone | A woman with pointed ears and long hair, wearing a green dress and a leafy crown, representing an elf with light skin tone. |
| 🧝🏼♀️ | woman elf: medium-light skin tone | A woman with pointed ears and long hair, dressed in a green outfit with a leafy crown, representing an elf with medium-light skin tone. |
| 🧝🏽♀️ | woman elf: medium skin tone | A woman with pointed ears and long hair, adorned in a green dress and a leafy crown, representing an elf with medium skin tone. |
| 🧝🏾♀️ | woman elf: medium-dark skin tone | A woman with pointed ears and long hair, wearing a green dress and a leafy crown, representing an elf with medium-dark skin tone. |
| 🧝🏿♀️ | woman elf: dark skin tone | A woman with pointed ears and long hair, dressed in a green outfit with a leafy crown, representing an elf with dark skin tone. |
| 🧞 | genie | A whimsical genie with a blue skin tone, wearing a golden belt and a turban, emerging from a lamp with smoke swirling around. |
| 🧞♂️ | man genie | A male genie with blue skin, wearing a turban and golden belt, appearing from a lamp with wisps of smoke around him. |
| 🧞♀️ | woman genie | A female genie with blue skin, adorned with a turban and golden accessories, emerging from a lamp with swirling smoke. |
| 🧟 | zombie | A zombie with a decayed appearance, featuring greenish skin, tattered clothing, and a vacant stare, representing the undead. |
| 🧟♂️ | man zombie | A male zombie with a rotting appearance, greenish skin, and tattered clothes, exhibiting a vacant and eerie expression. |
| 🧟♀️ | woman zombie | A female zombie with a decayed look, greenish skin, and torn clothing, showcasing a vacant and haunting stare. |
| 🧌 | troll | A troll with a large, bulbous nose, shaggy hair, and an oversized body, often depicted with a mischievous expression. |
| 💆 | person getting massage | A person with closed eyes and a relaxed expression, sitting with their head tilted slightly back, receiving a massage. |
| 💆🏻 | person getting massage: light skin tone | A person with light skin, eyes closed and a relaxed expression, sitting back while receiving a massage. |
| 💆🏼 | person getting massage: medium-light skin tone | A person with medium-light skin, eyes closed and a serene expression, enjoying a massage while sitting back. |
| 💆🏽 | person getting massage: medium skin tone | A person with medium skin, eyes closed and a calm expression, leaning back while receiving a massage. |
| 💆🏾 | person getting massage: medium-dark skin tone | A person with medium-dark skin, eyes closed and a peaceful expression, sitting back and enjoying a massage. |
| 💆🏿 | person getting massage: dark skin tone | A person with dark skin, eyes closed and a relaxed expression, leaning back while receiving a massage. |
| 💆♂️ | man getting massage | A man with closed eyes and a serene expression, sitting back and enjoying a massage. |
| 💆🏻♂️ | man getting massage: light skin tone | A man with light skin, eyes closed and a relaxed expression, receiving a massage while seated. |
| 💆🏼♂️ | man getting massage: medium-light skin tone | A man with medium-light skin, eyes closed and a calm expression, leaning back while getting a massage. |
| 💆🏽♂️ | man getting massage: medium skin tone | A man with medium skin, eyes closed and a peaceful expression, sitting back and enjoying a massage. |
| 💆🏾♂️ | man getting massage: medium-dark skin tone | A man with medium-dark skin, eyes closed and a relaxed expression, leaning back while receiving a massage. |
| 💆🏿♂️ | man getting massage: dark skin tone | A man with dark skin, eyes closed and a serene expression, sitting back and enjoying a massage. |
| 💆♀️ | woman getting massage | A woman with closed eyes and a relaxed expression, sitting back and enjoying a massage. |
| 💆🏻♀️ | woman getting massage: light skin tone | A woman with light skin, eyes closed and a serene expression, receiving a massage while seated. |
| 💆🏼♀️ | woman getting massage: medium-light skin tone | A woman with medium-light skin, eyes closed and a calm expression, leaning back while getting a massage. |
| 💆🏽♀️ | woman getting massage: medium skin tone | A woman with medium skin, eyes closed and a peaceful expression, sitting back and enjoying a massage. |
| 💆🏾♀️ | woman getting massage: medium-dark skin tone | A woman with medium-dark skin, eyes closed and a relaxed expression, leaning back while receiving a massage. |
| 💆🏿♀️ | woman getting massage: dark skin tone | A woman with dark skin, eyes closed and a serene expression, sitting back and enjoying a massage. |
| 💇 | person getting haircut | A person with short hair, sitting in a chair, having their hair cut by a stylist, looking relaxed. |
| 💇🏻 | person getting haircut: light skin tone | A person with light skin, sitting in a chair with short hair, having their hair cut, looking relaxed. |
| 💇🏼 | person getting haircut: medium-light skin tone | A person with medium-light skin, sitting in a chair with short hair, receiving a haircut, appearing calm. |
| 💇🏽 | person getting haircut: medium skin tone | A person with medium skin, sitting in a chair with short hair, getting a haircut, looking relaxed. |
| 💇🏾 | person getting haircut: medium-dark skin tone | A person with medium-dark skin, sitting in a chair with short hair, having their hair cut, appearing serene. |
| 💇🏿 | person getting haircut: dark skin tone | A person with dark skin, sitting in a chair with short hair, receiving a haircut, looking relaxed. |
| 💇♂️ | man getting haircut | A man with short hair, sitting in a chair, getting a haircut from a stylist, looking calm. |
| 💇🏻♂️ | man getting haircut: light skin tone | A man with light skin, sitting in a chair with short hair, having his hair cut, appearing relaxed. |
| 💇🏼♂️ | man getting haircut: medium-light skin tone | A man with medium-light skin, sitting in a chair with short hair, receiving a haircut, looking calm. |
| 💇🏽♂️ | man getting haircut: medium skin tone | A man with medium skin, sitting in a chair with short hair, getting a haircut, looking relaxed. |
| 💇🏾♂️ | man getting haircut: medium-dark skin tone | A man with medium-dark skin is sitting in a salon chair, with a stylist cutting his hair. |
| 💇🏿♂️ | man getting haircut: dark skin tone | A man with dark skin is seated in a salon chair, while a stylist trims his hair. |
| 💇♀️ | woman getting haircut | A woman with long hair is sitting in a salon chair, as a stylist cuts her hair. |
| 💇🏻♀️ | woman getting haircut: light skin tone | A woman with light skin and long hair is in a salon chair, with a stylist cutting her hair. |
| 💇🏼♀️ | woman getting haircut: medium-light skin tone | A woman with medium-light skin is seated in a salon chair, while a stylist is cutting her hair. |
| 💇🏽♀️ | woman getting haircut: medium skin tone | A woman with medium skin is sitting in a salon chair, as a stylist trims her hair. |
| 💇🏾♀️ | woman getting haircut: medium-dark skin tone | A woman with medium-dark skin is seated in a salon chair, with a stylist cutting her hair. |
| 💇🏿♀️ | woman getting haircut: dark skin tone | A woman with dark skin is in a salon chair, while a stylist is cutting her hair. |
| 🚶 | person walking | A person is walking with a neutral expression, legs in motion. |
| 🚶🏻 | person walking: light skin tone | A person with light skin is walking, legs in motion, with a neutral expression. |
| 🚶🏼 | person walking: medium-light skin tone | A person with medium-light skin is walking, legs in motion, with a neutral expression. |
| 🚶🏽 | person walking: medium skin tone | A person with medium skin is walking, legs in motion, with a neutral expression. |
| 🚶🏾 | person walking: medium-dark skin tone | A person with medium-dark skin is walking, legs in motion, with a neutral expression. |
| 🚶🏿 | person walking: dark skin tone | A person with dark skin is walking, legs in motion, with a neutral expression. |
| 🚶♂️ | man walking | A man is walking with a neutral expression, legs in motion. |
| 🚶🏻♂️ | man walking: light skin tone | A man with light skin is walking, legs in motion, with a neutral expression. |
| 🚶🏼♂️ | man walking: medium-light skin tone | A man with medium-light skin is walking, legs in motion, with a neutral expression. |
| 🚶🏽♂️ | man walking: medium skin tone | A man with medium skin is walking, legs in motion, with a neutral expression. |
| 🚶🏾♂️ | man walking: medium-dark skin tone | A man with medium-dark skin is walking, legs in motion, with a neutral expression. |
| 🚶🏿♂️ | man walking: dark skin tone | A man with dark skin is walking, legs in motion, with a neutral expression. |
| 🚶♀️ | woman walking | A woman is walking with a neutral expression, legs in motion. |
| 🚶🏻♀️ | woman walking: light skin tone | A woman with light skin is walking, legs in motion, with a neutral expression. |
| 🚶🏼♀️ | woman walking: medium-light skin tone | A woman with medium-light skin is walking, legs in motion, with a neutral expression. |
| 🚶🏽♀️ | woman walking: medium skin tone | A woman with medium skin is walking, legs in motion, with a neutral expression. |
| 🚶🏾♀️ | woman walking: medium-dark skin tone | A woman with medium-dark skin is walking, legs in motion, with a neutral expression. |
| 🚶🏿♀️ | woman walking: dark skin tone | A woman with dark skin is walking, legs in motion, with a neutral expression. |
| 🚶➡️ | person walking facing right | A person is walking with a neutral expression, facing to the right. |
| 🚶🏻➡️ | person walking facing right: light skin tone | A person with light skin is walking, facing to the right, with a neutral expression. |
| 🚶🏼➡️ | person walking facing right: medium-light skin tone | A person with medium-light skin is walking, facing to the right, with a neutral expression. |
| 🚶🏽➡️ | person walking facing right: medium skin tone | A person with medium skin is walking, facing to the right, with a neutral expression. |
| 🚶🏾➡️ | person walking facing right: medium-dark skin tone | A person with medium-dark skin is walking, facing to the right, with a neutral expression. |
| 🚶🏿➡️ | person walking facing right: dark skin tone | A person with dark skin is walking, facing to the right, with a neutral expression. |
| 🚶♀️➡️ | woman walking facing right | A woman is walking, facing to the right, with a neutral expression. |
| 🚶🏻♀️➡️ | woman walking facing right: light skin tone | A woman with light skin is walking, facing to the right, with a neutral expression. |
| 🚶🏼♀️➡️ | woman walking facing right: medium-light skin tone | A woman with medium-light skin is walking, facing to the right, with a neutral expression. |
| 🚶🏽♀️➡️ | woman walking facing right: medium skin tone | A woman with medium skin is walking, facing to the right, with a neutral expression. |
| 🚶🏾♀️➡️ | woman walking facing right: medium-dark skin tone | A woman with medium-dark skin is walking, facing to the right, with a neutral expression. |
| 🚶🏿♀️➡️ | woman walking facing right: dark skin tone | A woman with dark skin is walking, facing to the right, with a neutral expression. |
| 🚶♂️➡️ | man walking facing right | A man is walking, facing to the right, with a neutral expression. |
| 🚶🏻♂️➡️ | man walking facing right: light skin tone | A man with light skin is walking, facing to the right, with a neutral expression. |
| 🚶🏼♂️➡️ | man walking facing right: medium-light skin tone | A man with medium-light skin tone is walking to the right, depicted in a casual pose with one foot raised as if in mid-step. |
| 🚶🏽♂️➡️ | man walking facing right: medium skin tone | A man with medium skin tone is walking to the right, shown in a dynamic walking pose with one leg lifted. |
| 🚶🏾♂️➡️ | man walking facing right: medium-dark skin tone | A man with medium-dark skin tone is depicted walking to the right, with one foot in the air, suggesting movement. |
| 🚶🏿♂️➡️ | man walking facing right: dark skin tone | A man with dark skin tone is shown walking to the right, captured mid-stride with one leg lifted. |
| 🧍 | person standing | A standing person is depicted in a neutral pose, facing forward with arms relaxed at the sides. |
| 🧍🏻 | person standing: light skin tone | A person with light skin tone is standing upright, facing forward with arms at their sides. |
| 🧍🏼 | person standing: medium-light skin tone | A person with medium-light skin tone stands upright, facing forward with a calm demeanor. |
| 🧍🏽 | person standing: medium skin tone | A person with medium skin tone is depicted standing straight, looking forward with arms relaxed. |
| 🧍🏾 | person standing: medium-dark skin tone | A person with medium-dark skin tone stands upright, facing forward with a composed expression. |
| 🧍🏿 | person standing: dark skin tone | A person with dark skin tone is shown standing, facing forward in a relaxed posture. |
| 🧍♂️ | man standing | A man is depicted standing upright, facing forward with arms at his sides. |
| 🧍🏻♂️ | man standing: light skin tone | A man with light skin tone stands upright, looking forward with a neutral expression. |
| 🧍🏼♂️ | man standing: medium-light skin tone | A man with medium-light skin tone stands facing forward, arms relaxed at his sides. |
| 🧍🏽♂️ | man standing: medium skin tone | A man with medium skin tone is depicted standing straight, looking ahead with a calm demeanor. |
| 🧍🏾♂️ | man standing: medium-dark skin tone | A man with medium-dark skin tone stands upright, facing forward with arms relaxed. |
| 🧍🏿♂️ | man standing: dark skin tone | A man with dark skin tone is shown standing, facing forward in a relaxed posture. |
| 🧍♀️ | woman standing | A woman is depicted standing upright, facing forward with arms at her sides. |
| 🧍🏻♀️ | woman standing: light skin tone | A woman with light skin tone stands upright, looking forward with a neutral expression. |
| 🧍🏼♀️ | woman standing: medium-light skin tone | A woman with medium-light skin tone stands facing forward, arms relaxed at her sides. |
| 🧍🏽♀️ | woman standing: medium skin tone | A woman with medium skin tone is depicted standing straight, looking ahead with a calm demeanor. |
| 🧍🏾♀️ | woman standing: medium-dark skin tone | A woman with medium-dark skin tone stands upright, facing forward with arms relaxed. |
| 🧍🏿♀️ | woman standing: dark skin tone | A woman with dark skin tone is shown standing, facing forward in a relaxed posture. |
| 🧎 | person kneeling | A person is depicted kneeling on both knees, with a neutral expression and hands resting on their thighs. |
| 🧎🏻 | person kneeling: light skin tone | A person with light skin tone is shown kneeling, with a calm demeanor and hands resting on their knees. |
| 🧎🏼 | person kneeling: medium-light skin tone | A person with medium-light skin tone kneels with a relaxed posture, hands on their thighs. |
| 🧎🏽 | person kneeling: medium skin tone | A person with medium skin tone is depicted kneeling, hands resting on their knees with a composed expression. |
| 🧎🏾 | person kneeling: medium-dark skin tone | A person with medium-dark skin tone kneels with a neutral expression, hands resting on their thighs. |
| 🧎🏿 | person kneeling: dark skin tone | A person with dark skin tone is shown kneeling, hands on their knees, appearing calm. |
| 🧎♂️ | man kneeling | A man is depicted kneeling on both knees, with a neutral expression and hands resting on his thighs. |
| 🧎🏻♂️ | man kneeling: light skin tone | A man with light skin tone kneels with a calm demeanor, hands resting on his knees. |
| 🧎🏼♂️ | man kneeling: medium-light skin tone | A man with medium-light skin tone is shown kneeling, hands on his thighs in a relaxed posture. |
| 🧎🏽♂️ | man kneeling: medium skin tone | A man with medium skin tone kneels with a composed expression, hands resting on his knees. |
| 🧎🏾♂️ | man kneeling: medium-dark skin tone | A man with medium-dark skin tone is depicted kneeling, hands resting on his thighs with a neutral expression. |
| 🧎🏿♂️ | man kneeling: dark skin tone | A man with dark skin tone is shown kneeling, hands on his knees, appearing calm. |
| 🧎♀️ | woman kneeling | A woman is depicted kneeling on both knees, with a neutral expression and hands resting on her thighs. |
| 🧎🏻♀️ | woman kneeling: light skin tone | A woman with light skin tone kneels with a calm demeanor, hands resting on her knees. |
| 🧎🏼♀️ | woman kneeling: medium-light skin tone | A woman with medium-light skin tone is shown kneeling, hands on her thighs in a relaxed posture. |
| 🧎🏽♀️ | woman kneeling: medium skin tone | A woman with medium skin tone kneels with a composed expression, hands resting on her knees. |
| 🧎🏾♀️ | woman kneeling: medium-dark skin tone | A woman with medium-dark skin tone is depicted kneeling, hands resting on her thighs with a neutral expression. |
| 🧎🏿♀️ | woman kneeling: dark skin tone | A woman with dark skin tone is shown kneeling, hands on her knees, appearing calm. |
| 🧎➡️ | person kneeling facing right | A person kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏻➡️ | person kneeling facing right: light skin tone | A person with light skin kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏼➡️ | person kneeling facing right: medium-light skin tone | A person with medium-light skin kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏽➡️ | person kneeling facing right: medium skin tone | A person with medium skin kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏾➡️ | person kneeling facing right: medium-dark skin tone | A person with medium-dark skin kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏿➡️ | person kneeling facing right: dark skin tone | A person with dark skin kneeling on one knee, facing right, with a neutral expression. |
| 🧎♀️➡️ | woman kneeling facing right | A woman kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏻♀️➡️ | woman kneeling facing right: light skin tone | A woman with light skin kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏼♀️➡️ | woman kneeling facing right: medium-light skin tone | A woman with medium-light skin kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏽♀️➡️ | woman kneeling facing right: medium skin tone | A woman with medium skin kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏾♀️➡️ | woman kneeling facing right: medium-dark skin tone | A woman with medium-dark skin kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏿♀️➡️ | woman kneeling facing right: dark skin tone | A woman with dark skin kneeling on one knee, facing right, with a neutral expression. |
| 🧎♂️➡️ | man kneeling facing right | A man kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏻♂️➡️ | man kneeling facing right: light skin tone | A man with light skin kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏼♂️➡️ | man kneeling facing right: medium-light skin tone | A man with medium-light skin kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏽♂️➡️ | man kneeling facing right: medium skin tone | A man with medium skin kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏾♂️➡️ | man kneeling facing right: medium-dark skin tone | A man with medium-dark skin kneeling on one knee, facing right, with a neutral expression. |
| 🧎🏿♂️➡️ | man kneeling facing right: dark skin tone | A man with dark skin kneeling on one knee, facing right, with a neutral expression. |
| 🧑🦯 | person with white cane | A person holding a white cane, indicating they may be visually impaired, with a neutral expression. |
| 🧑🏻🦯 | person with white cane: light skin tone | A person with light skin holding a white cane, indicating they may be visually impaired, with a neutral expression. |
| 🧑🏼🦯 | person with white cane: medium-light skin tone | A person with medium-light skin holding a white cane, indicating they may be visually impaired, with a neutral expression. |
| 🧑🏽🦯 | person with white cane: medium skin tone | A person with medium skin holding a white cane, indicating they may be visually impaired, with a neutral expression. |
| 🧑🏾🦯 | person with white cane: medium-dark skin tone | A person with medium-dark skin holding a white cane, indicating they may be visually impaired, with a neutral expression. |
| 🧑🏿🦯 | person with white cane: dark skin tone | A person with dark skin holding a white cane, indicating they may be visually impaired, with a neutral expression. |
| 🧑🦯➡️ | person with white cane facing right | A person holding a white cane, facing right, indicating they may be visually impaired. |
| 🧑🏻🦯➡️ | person with white cane facing right: light skin tone | A person with light skin holding a white cane, facing right, indicating they may be visually impaired. |
| 🧑🏼🦯➡️ | person with white cane facing right: medium-light skin tone | A person with medium-light skin holding a white cane, facing right, indicating they may be visually impaired. |
| 🧑🏽🦯➡️ | person with white cane facing right: medium skin tone | A person with medium skin holding a white cane, facing right, indicating they may be visually impaired. |
| 🧑🏾🦯➡️ | person with white cane facing right: medium-dark skin tone | A person with medium-dark skin holding a white cane, facing right, indicating they may be visually impaired. |
| 🧑🏿🦯➡️ | person with white cane facing right: dark skin tone | A person with dark skin holding a white cane, facing right, indicating they may be visually impaired. |
| 👨🦯 | man with white cane | A man holding a white cane, indicating he may be visually impaired, with a neutral expression. |
| 👨🏻🦯 | man with white cane: light skin tone | A man with light skin holding a white cane, indicating he may be visually impaired, with a neutral expression. |
| 👨🏼🦯 | man with white cane: medium-light skin tone | A man with medium-light skin holding a white cane, indicating he may be visually impaired, with a neutral expression. |
| 👨🏽🦯 | man with white cane: medium skin tone | A man with medium skin holding a white cane, indicating he may be visually impaired, with a neutral expression. |
| 👨🏾🦯 | man with white cane: medium-dark skin tone | A man with medium-dark skin holding a white cane, indicating he may be visually impaired, with a neutral expression. |
| 👨🏿🦯 | man with white cane: dark skin tone | A man with dark skin holding a white cane, indicating he may be visually impaired, with a neutral expression. |
| 👨🦯➡️ | man with white cane facing right | A man holding a white cane, facing right, indicating he may be visually impaired. |
| 👨🏻🦯➡️ | man with white cane facing right: light skin tone | A man with light skin holding a white cane, facing right, indicating he may be visually impaired. |
| 👨🏼🦯➡️ | man with white cane facing right: medium-light skin tone | A man with medium-light skin holding a white cane, facing right, indicating he may be visually impaired. |
| 👨🏽🦯➡️ | man with white cane facing right: medium skin tone | A man with medium skin holding a white cane, facing right, indicating he may be visually impaired. |
| 👨🏾🦯➡️ | man with white cane facing right: medium-dark skin tone | A man with medium-dark skin tone holds a white cane and is facing to the right. |
| 👨🏿🦯➡️ | man with white cane facing right: dark skin tone | A man with dark skin tone holds a white cane and is facing to the right. |
| 👩🦯 | woman with white cane | A woman with a white cane stands upright, indicating she may be visually impaired. |
| 👩🏻🦯 | woman with white cane: light skin tone | A woman with light skin tone holds a white cane, suggesting she may be visually impaired. |
| 👩🏼🦯 | woman with white cane: medium-light skin tone | A woman with medium-light skin tone holds a white cane, indicating she may be visually impaired. |
| 👩🏽🦯 | woman with white cane: medium skin tone | A woman with medium skin tone holds a white cane, suggesting she may be visually impaired. |
| 👩🏾🦯 | woman with white cane: medium-dark skin tone | A woman with medium-dark skin tone holds a white cane, indicating she may be visually impaired. |
| 👩🏿🦯 | woman with white cane: dark skin tone | A woman with dark skin tone holds a white cane, suggesting she may be visually impaired. |
| 👩🦯➡️ | woman with white cane facing right | A woman with a white cane is facing to the right. |
| 👩🏻🦯➡️ | woman with white cane facing right: light skin tone | A woman with light skin tone holds a white cane and is facing to the right. |
| 👩🏼🦯➡️ | woman with white cane facing right: medium-light skin tone | A woman with medium-light skin tone holds a white cane and is facing to the right. |
| 👩🏽🦯➡️ | woman with white cane facing right: medium skin tone | A woman with medium skin tone holds a white cane and is facing to the right. |
| 👩🏾🦯➡️ | woman with white cane facing right: medium-dark skin tone | A woman with medium-dark skin tone holds a white cane and is facing to the right. |
| 👩🏿🦯➡️ | woman with white cane facing right: dark skin tone | A woman with dark skin tone holds a white cane and is facing to the right. |
| 🧑🦼 | person in motorized wheelchair | A person sits in a motorized wheelchair, indicating mobility assistance. |
| 🧑🏻🦼 | person in motorized wheelchair: light skin tone | A person with light skin tone sits in a motorized wheelchair. |
| 🧑🏼🦼 | person in motorized wheelchair: medium-light skin tone | A person with medium-light skin tone sits in a motorized wheelchair. |
| 🧑🏽🦼 | person in motorized wheelchair: medium skin tone | A person with medium skin tone sits in a motorized wheelchair. |
| 🧑🏾🦼 | person in motorized wheelchair: medium-dark skin tone | A person with medium-dark skin tone sits in a motorized wheelchair. |
| 🧑🏿🦼 | person in motorized wheelchair: dark skin tone | A person with dark skin tone sits in a motorized wheelchair. |
| 🧑🦼➡️ | person in motorized wheelchair facing right | A person in a motorized wheelchair is facing to the right. |
| 🧑🏻🦼➡️ | person in motorized wheelchair facing right: light skin tone | A person with light skin tone in a motorized wheelchair is facing to the right. |
| 🧑🏼🦼➡️ | person in motorized wheelchair facing right: medium-light skin tone | A person with medium-light skin tone in a motorized wheelchair is facing to the right. |
| 🧑🏽🦼➡️ | person in motorized wheelchair facing right: medium skin tone | A person with medium skin tone in a motorized wheelchair is facing to the right. |
| 🧑🏾🦼➡️ | person in motorized wheelchair facing right: medium-dark skin tone | A person with medium-dark skin tone in a motorized wheelchair is facing to the right. |
| 🧑🏿🦼➡️ | person in motorized wheelchair facing right: dark skin tone | A person with dark skin tone in a motorized wheelchair is facing to the right. |
| 👨🦼 | man in motorized wheelchair | A man sits in a motorized wheelchair, indicating mobility assistance. |
| 👨🏻🦼 | man in motorized wheelchair: light skin tone | A man with light skin tone sits in a motorized wheelchair. |
| 👨🏼🦼 | man in motorized wheelchair: medium-light skin tone | A man with medium-light skin tone sits in a motorized wheelchair. |
| 👨🏽🦼 | man in motorized wheelchair: medium skin tone | A man with medium skin tone sits in a motorized wheelchair. |
| 👨🏾🦼 | man in motorized wheelchair: medium-dark skin tone | A man with medium-dark skin tone sits in a motorized wheelchair. |
| 👨🏿🦼 | man in motorized wheelchair: dark skin tone | A man with dark skin tone sits in a motorized wheelchair. |
| 👨🦼➡️ | man in motorized wheelchair facing right | A man in a motorized wheelchair is facing to the right. |
| 👨🏻🦼➡️ | man in motorized wheelchair facing right: light skin tone | A man with light skin tone in a motorized wheelchair is facing to the right. |
| 👨🏼🦼➡️ | man in motorized wheelchair facing right: medium-light skin tone | A man with medium-light skin tone in a motorized wheelchair is facing to the right. |
| 👨🏽🦼➡️ | man in motorized wheelchair facing right: medium skin tone | A man with medium skin tone in a motorized wheelchair is facing to the right. |
| 👨🏾🦼➡️ | man in motorized wheelchair facing right: medium-dark skin tone | A man with medium-dark skin tone in a motorized wheelchair is facing to the right. |
| 👨🏿🦼➡️ | man in motorized wheelchair facing right: dark skin tone | A man with dark skin tone in a motorized wheelchair is facing to the right. |
| 👩🦼 | woman in motorized wheelchair | A woman sits in a motorized wheelchair, indicating mobility assistance. |
| 👩🏻🦼 | woman in motorized wheelchair: light skin tone | A woman with light skin tone sits in a motorized wheelchair. |
| 👩🏼🦼 | woman in motorized wheelchair: medium-light skin tone | A woman with medium-light skin tone sitting in a motorized wheelchair, looking forward with a neutral expression. |
| 👩🏽🦼 | woman in motorized wheelchair: medium skin tone | A woman with medium skin tone seated in a motorized wheelchair, facing forward with a calm demeanor. |
| 👩🏾🦼 | woman in motorized wheelchair: medium-dark skin tone | A woman with medium-dark skin tone in a motorized wheelchair, gazing ahead with a composed look. |
| 👩🏿🦼 | woman in motorized wheelchair: dark skin tone | A woman with dark skin tone in a motorized wheelchair, looking straight ahead with a serene expression. |
| 👩🦼➡️ | woman in motorized wheelchair facing right | A woman in a motorized wheelchair, positioned to face right, appearing focused and ready to move. |
| 👩🏻🦼➡️ | woman in motorized wheelchair facing right: light skin tone | A woman with light skin tone in a motorized wheelchair, turned to the right, displaying a determined expression. |
| 👩🏼🦼➡️ | woman in motorized wheelchair facing right: medium-light skin tone | A woman with medium-light skin tone in a motorized wheelchair, facing right with an intent look. |
| 👩🏽🦼➡️ | woman in motorized wheelchair facing right: medium skin tone | A woman with medium skin tone in a motorized wheelchair, oriented to the right, showing a calm demeanor. |
| 👩🏾🦼➡️ | woman in motorized wheelchair facing right: medium-dark skin tone | A woman with medium-dark skin tone in a motorized wheelchair, looking right with a composed expression. |
| 👩🏿🦼➡️ | woman in motorized wheelchair facing right: dark skin tone | A woman with dark skin tone in a motorized wheelchair, facing right with a peaceful look. |
| 🧑🦽 | person in manual wheelchair | A person in a manual wheelchair, appearing neutral and upright, with no specific facial expression. |
| 🧑🏻🦽 | person in manual wheelchair: light skin tone | A person with light skin tone seated in a manual wheelchair, maintaining a neutral posture. |
| 🧑🏼🦽 | person in manual wheelchair: medium-light skin tone | A person with medium-light skin tone in a manual wheelchair, sitting upright with a calm demeanor. |
| 🧑🏽🦽 | person in manual wheelchair: medium skin tone | A person with medium skin tone in a manual wheelchair, looking straight ahead with a neutral expression. |
| 🧑🏾🦽 | person in manual wheelchair: medium-dark skin tone | A person with medium-dark skin tone in a manual wheelchair, appearing composed and upright. |
| 🧑🏿🦽 | person in manual wheelchair: dark skin tone | A person with dark skin tone in a manual wheelchair, sitting straight with a neutral look. |
| 🧑🦽➡️ | person in manual wheelchair facing right | A person in a manual wheelchair, oriented to the right, ready to move forward. |
| 🧑🏻🦽➡️ | person in manual wheelchair facing right: light skin tone | A person with light skin tone in a manual wheelchair, facing right with a determined posture. |
| 🧑🏼🦽➡️ | person in manual wheelchair facing right: medium-light skin tone | A person with medium-light skin tone in a manual wheelchair, turned to the right, showing intent. |
| 🧑🏽🦽➡️ | person in manual wheelchair facing right: medium skin tone | A person with medium skin tone in a manual wheelchair, oriented to the right with a calm demeanor. |
| 🧑🏾🦽➡️ | person in manual wheelchair facing right: medium-dark skin tone | A person with medium-dark skin tone in a manual wheelchair, facing right with a composed look. |
| 🧑🏿🦽➡️ | person in manual wheelchair facing right: dark skin tone | A person with dark skin tone in a manual wheelchair, looking right with a serene expression. |
| 👨🦽 | man in manual wheelchair | A man in a manual wheelchair, appearing neutral and seated upright, without a specific expression. |
| 👨🏻🦽 | man in manual wheelchair: light skin tone | A man with light skin tone in a manual wheelchair, maintaining a neutral posture. |
| 👨🏼🦽 | man in manual wheelchair: medium-light skin tone | A man with medium-light skin tone in a manual wheelchair, sitting upright with a calm demeanor. |
| 👨🏽🦽 | man in manual wheelchair: medium skin tone | A man with medium skin tone in a manual wheelchair, looking straight ahead with a neutral expression. |
| 👨🏾🦽 | man in manual wheelchair: medium-dark skin tone | A man with medium-dark skin tone in a manual wheelchair, appearing composed and upright. |
| 👨🏿🦽 | man in manual wheelchair: dark skin tone | A man with dark skin tone in a manual wheelchair, sitting straight with a neutral look. |
| 👨🦽➡️ | man in manual wheelchair facing right | A man in a manual wheelchair, oriented to the right, ready to move forward. |
| 👨🏻🦽➡️ | man in manual wheelchair facing right: light skin tone | A man with light skin tone in a manual wheelchair, facing right with a determined posture. |
| 👨🏼🦽➡️ | man in manual wheelchair facing right: medium-light skin tone | A man with medium-light skin tone in a manual wheelchair, turned to the right, showing intent. |
| 👨🏽🦽➡️ | man in manual wheelchair facing right: medium skin tone | A man with medium skin tone in a manual wheelchair, oriented to the right with a calm demeanor. |
| 👨🏾🦽➡️ | man in manual wheelchair facing right: medium-dark skin tone | A man with medium-dark skin tone in a manual wheelchair, facing right with a composed look. |
| 👨🏿🦽➡️ | man in manual wheelchair facing right: dark skin tone | A man with dark skin tone in a manual wheelchair, looking right with a serene expression. |
| 👩🦽 | woman in manual wheelchair | A woman in a manual wheelchair, appearing neutral and seated upright, without a specific expression. |
| 👩🏻🦽 | woman in manual wheelchair: light skin tone | A woman with light skin tone in a manual wheelchair, maintaining a neutral posture. |
| 👩🏼🦽 | woman in manual wheelchair: medium-light skin tone | A woman with medium-light skin tone in a manual wheelchair, sitting upright with a calm demeanor. |
| 👩🏽🦽 | woman in manual wheelchair: medium skin tone | A woman with medium skin tone in a manual wheelchair, looking straight ahead with a neutral expression. |
| 👩🏾🦽 | woman in manual wheelchair: medium-dark skin tone | A woman with medium-dark skin tone in a manual wheelchair, appearing composed and upright. |
| 👩🏿🦽 | woman in manual wheelchair: dark skin tone | A woman with dark skin tone in a manual wheelchair, sitting straight with a neutral look. |
| 👩🦽➡️ | woman in manual wheelchair facing right | A woman with long hair is seated in a manual wheelchair, facing right, with a determined expression. |
| 👩🏻🦽➡️ | woman in manual wheelchair facing right: light skin tone | A woman with light skin and long hair is seated in a manual wheelchair, facing right, with a determined expression. |
| 👩🏼🦽➡️ | woman in manual wheelchair facing right: medium-light skin tone | A woman with medium-light skin and long hair is seated in a manual wheelchair, facing right, with a determined expression. |
| 👩🏽🦽➡️ | woman in manual wheelchair facing right: medium skin tone | A woman with medium skin and long hair is seated in a manual wheelchair, facing right, with a determined expression. |
| 👩🏾🦽➡️ | woman in manual wheelchair facing right: medium-dark skin tone | A woman with medium-dark skin and long hair is seated in a manual wheelchair, facing right, with a determined expression. |
| 👩🏿🦽➡️ | woman in manual wheelchair facing right: dark skin tone | A woman with dark skin and long hair is seated in a manual wheelchair, facing right, with a determined expression. |
| 🏃 | person running | A person is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏻 | person running: light skin tone | A person with light skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏼 | person running: medium-light skin tone | A person with medium-light skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏽 | person running: medium skin tone | A person with medium skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏾 | person running: medium-dark skin tone | A person with medium-dark skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏿 | person running: dark skin tone | A person with dark skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃♂️ | man running | A man is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏻♂️ | man running: light skin tone | A man with light skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏼♂️ | man running: medium-light skin tone | A man with medium-light skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏽♂️ | man running: medium skin tone | A man with medium skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏾♂️ | man running: medium-dark skin tone | A man with medium-dark skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏿♂️ | man running: dark skin tone | A man with dark skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃♀️ | woman running | A woman is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏻♀️ | woman running: light skin tone | A woman with light skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏼♀️ | woman running: medium-light skin tone | A woman with medium-light skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏽♀️ | woman running: medium skin tone | A woman with medium skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏾♀️ | woman running: medium-dark skin tone | A woman with medium-dark skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃🏿♀️ | woman running: dark skin tone | A woman with dark skin is depicted in mid-stride, arms pumping and legs moving quickly, suggesting a fast running motion. |
| 🏃➡️ | person running facing right | A person is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃🏻➡️ | person running facing right: light skin tone | A person with light skin is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃🏼➡️ | person running facing right: medium-light skin tone | A person with medium-light skin is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃🏽➡️ | person running facing right: medium skin tone | A person with medium skin is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃🏾➡️ | person running facing right: medium-dark skin tone | A person with medium-dark skin is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃🏿➡️ | person running facing right: dark skin tone | A person with dark skin is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃♀️➡️ | woman running facing right | A woman is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃🏻♀️➡️ | woman running facing right: light skin tone | A woman with light skin is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃🏼♀️➡️ | woman running facing right: medium-light skin tone | A woman with medium-light skin is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃🏽♀️➡️ | woman running facing right: medium skin tone | A woman with medium skin is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃🏾♀️➡️ | woman running facing right: medium-dark skin tone | A woman with medium-dark skin is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃🏿♀️➡️ | woman running facing right: dark skin tone | A woman with dark skin is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃♂️➡️ | man running facing right | A man is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃🏻♂️➡️ | man running facing right: light skin tone | A man with light skin is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃🏼♂️➡️ | man running facing right: medium-light skin tone | A man with medium-light skin is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃🏽♂️➡️ | man running facing right: medium skin tone | A man with medium skin is depicted running while facing right, arms pumping and legs moving quickly. |
| 🏃🏾♂️➡️ | man running facing right: medium-dark skin tone | A man with medium-dark skin tone is running to the right, wearing a determined expression. |
| 🏃🏿♂️➡️ | man running facing right: dark skin tone | A man with dark skin tone is running to the right, showcasing a focused expression. |
| 💃 | woman dancing | A woman in a vibrant red dress is dancing joyfully, with her arms raised and a spirited expression. |
| 💃🏻 | woman dancing: light skin tone | A woman with light skin tone is dancing in a lively red dress, arms lifted in celebration. |
| 💃🏼 | woman dancing: medium-light skin tone | A woman with medium-light skin tone is dancing elegantly in a bright red dress, arms raised in excitement. |
| 💃🏽 | woman dancing: medium skin tone | A woman with medium skin tone is dancing in a flowing red dress, her arms lifted and a joyful expression on her face. |
| 💃🏾 | woman dancing: medium-dark skin tone | A woman with medium-dark skin tone is dancing energetically in a red dress, her arms raised in a festive pose. |
| 💃🏿 | woman dancing: dark skin tone | A woman with dark skin tone is dancing gracefully in a vibrant red dress, her arms lifted in celebration. |
| 🕺 | man dancing | A man is dancing with a joyful expression, dressed in a stylish outfit, arms raised in a festive manner. |
| 🕺🏻 | man dancing: light skin tone | A man with light skin tone is dancing, wearing a smart outfit and displaying a cheerful expression. |
| 🕺🏼 | man dancing: medium-light skin tone | A man with medium-light skin tone is dancing in a stylish outfit, with a lively expression. |
| 🕺🏽 | man dancing: medium skin tone | A man with medium skin tone is dancing joyfully, dressed in a fashionable outfit and smiling. |
| 🕺🏾 | man dancing: medium-dark skin tone | A man with medium-dark skin tone is dancing energetically, wearing a smart outfit and exuding joy. |
| 🕺🏿 | man dancing: dark skin tone | A man with dark skin tone is dancing with enthusiasm, dressed in a stylish outfit and displaying a cheerful expression. |
| 🕴️ | person in suit levitating | A person in a suit is levitating above the ground, arms slightly extended and a confident expression. |
| 🕴🏻 | person in suit levitating: light skin tone | A person with light skin tone in a suit is levitating, arms outstretched and looking confident. |
| 🕴🏼 | person in suit levitating: medium-light skin tone | A person with medium-light skin tone is levitating in a suit, arms extended and a self-assured expression. |
| 🕴🏽 | person in suit levitating: medium skin tone | A person with medium skin tone is levitating in a suit, arms raised slightly and wearing a confident look. |
| 🕴🏾 | person in suit levitating: medium-dark skin tone | A person with medium-dark skin tone is levitating in a suit, arms outstretched and exuding confidence. |
| 🕴🏿 | person in suit levitating: dark skin tone | A person with dark skin tone is levitating in a suit, arms extended and displaying a self-assured expression. |
| 👯 | people with bunny ears | Two people are standing side by side, both wearing bunny ears and smiling, ready to dance. |
| 👯♂️ | men with bunny ears | Two men are standing together, both wearing bunny ears and smiling, ready to perform. |
| 👯♀️ | women with bunny ears | Two women are standing side by side, both wearing bunny ears and smiling, prepared to dance. |
| 🧖 | person in steamy room | A person is sitting in a steamy room, looking relaxed and content, with steam rising around them. |
| 🧖🏻 | person in steamy room: light skin tone | A person with light skin tone is sitting in a steamy room, appearing relaxed and at ease amidst the steam. |
| 🧖🏼 | person in steamy room: medium-light skin tone | A person with medium-light skin tone is sitting in a steamy room, looking calm and content as steam surrounds them. |
| 🧖🏽 | person in steamy room: medium skin tone | A person with medium skin tone is sitting in a steamy room, appearing relaxed and enjoying the warmth. |
| 🧖🏾 | person in steamy room: medium-dark skin tone | A person with medium-dark skin tone is sitting in a steamy room, looking serene and content as steam envelops them. |
| 🧖🏿 | person in steamy room: dark skin tone | A person with dark skin tone is sitting in a steamy room, appearing relaxed and at peace amidst the steam. |
| 🧖♂️ | man in steamy room | A man is sitting in a steamy room, looking relaxed and enjoying the warmth around him. |
| 🧖🏻♂️ | man in steamy room: light skin tone | A man with light skin tone is sitting in a steamy room, appearing calm and content in the warm atmosphere. |
| 🧖🏼♂️ | man in steamy room: medium-light skin tone | A man with medium-light skin tone is sitting in a steamy room, looking relaxed and enjoying the soothing steam. |
| 🧖🏽♂️ | man in steamy room: medium skin tone | A man with medium skin tone is sitting in a steamy room, appearing at ease and enjoying the warmth. |
| 🧖🏾♂️ | man in steamy room: medium-dark skin tone | A man with medium-dark skin tone is sitting in a steamy room, looking serene and content amidst the steam. |
| 🧖🏿♂️ | man in steamy room: dark skin tone | A man with dark skin tone is sitting in a steamy room, appearing relaxed and enjoying the warm, steamy environment. |
| 🧖♀️ | woman in steamy room | A woman is sitting in a steamy room, looking relaxed and content, with steam rising around her. |
| 🧖🏻♀️ | woman in steamy room: light skin tone | A woman with light skin tone is sitting in a steamy room, appearing calm and at ease amidst the steam. |
| 🧖🏼♀️ | woman in steamy room: medium-light skin tone | A woman with medium-light skin tone is sitting in a steamy room, looking relaxed and enjoying the soothing steam. |
| 🧖🏽♀️ | woman in steamy room: medium skin tone | A woman with medium skin tone is sitting in a steamy room, appearing at ease and enjoying the warmth. |
| 🧖🏾♀️ | woman in steamy room: medium-dark skin tone | A woman with medium-dark skin tone is sitting in a steamy room, looking serene and content amidst the steam. |
| 🧖🏿♀️ | woman in steamy room: dark skin tone | A woman with dark skin is relaxing in a steamy room, wearing a towel wrapped around her body and a towel on her head. |
| 🧗 | person climbing | A person is climbing a rock face, with a determined expression, wearing climbing gear and reaching for a handhold. |
| 🧗🏻 | person climbing: light skin tone | A person with light skin is climbing a rock face, focused and wearing climbing gear. |
| 🧗🏼 | person climbing: medium-light skin tone | A person with medium-light skin is climbing, showing concentration and wearing climbing equipment. |
| 🧗🏽 | person climbing: medium skin tone | A person with medium skin is engaged in climbing, displaying a look of determination with climbing gear on. |
| 🧗🏾 | person climbing: medium-dark skin tone | A person with medium-dark skin is climbing, focused and equipped with climbing gear. |
| 🧗🏿 | person climbing: dark skin tone | A person with dark skin is scaling a rock face, wearing climbing gear and looking determined. |
| 🧗♂️ | man climbing | A man is climbing a rock face, looking focused and wearing climbing gear. |
| 🧗🏻♂️ | man climbing: light skin tone | A man with light skin is climbing, showing determination and wearing climbing equipment. |
| 🧗🏼♂️ | man climbing: medium-light skin tone | A man with medium-light skin is engaged in climbing, focused and equipped with climbing gear. |
| 🧗🏽♂️ | man climbing: medium skin tone | A man with medium skin is climbing a rock face, displaying concentration and wearing climbing gear. |
| 🧗🏾♂️ | man climbing: medium-dark skin tone | A man with medium-dark skin is climbing, looking determined and wearing climbing equipment. |
| 🧗🏿♂️ | man climbing: dark skin tone | A man with dark skin is climbing a rock face, focused and equipped with climbing gear. |
| 🧗♀️ | woman climbing | A woman is climbing, looking determined and wearing climbing gear. |
| 🧗🏻♀️ | woman climbing: light skin tone | A woman with light skin is climbing, showing focus and wearing climbing equipment. |
| 🧗🏼♀️ | woman climbing: medium-light skin tone | A woman with medium-light skin is engaged in climbing, displaying concentration and wearing climbing gear. |
| 🧗🏽♀️ | woman climbing: medium skin tone | A woman with medium skin is climbing, looking determined and equipped with climbing gear. |
| 🧗🏾♀️ | woman climbing: medium-dark skin tone | A woman with medium-dark skin is climbing, focused and wearing climbing equipment. |
| 🧗🏿♀️ | woman climbing: dark skin tone | A woman with dark skin is scaling a rock face, wearing climbing gear and looking determined. |
| 🤺 | person fencing | A person is in a fencing stance, wearing a mask and protective gear, holding a sword in a ready position. |
| 🏇 | horse racing | A jockey is riding a galloping horse, leaning forward with determination, wearing a helmet and racing attire. |
| 🏇🏻 | horse racing: light skin tone | A jockey with light skin is racing on a horse, leaning forward in a riding posture, wearing a helmet. |
| 🏇🏼 | horse racing: medium-light skin tone | A jockey with medium-light skin is riding a horse, showing focus and wearing a helmet. |
| 🏇🏽 | horse racing: medium skin tone | A jockey with medium skin is racing on a horse, leaning forward in a determined posture. |
| 🏇🏾 | horse racing: medium-dark skin tone | A jockey with medium-dark skin is riding a galloping horse, focused and wearing a helmet. |
| 🏇🏿 | horse racing: dark skin tone | A jockey with dark skin is riding a horse, leaning forward with determination, wearing a helmet. |
| ⛷️ | skier | A skier is in a crouched position, wearing a helmet and ski gear, ready to descend a slope. |
| 🏂 | snowboarder | A snowboarder is in a dynamic pose, balancing on a snowboard while descending a slope. |
| 🏂🏻 | snowboarder: light skin tone | A snowboarder with light skin is riding down a slope, wearing a helmet and snow gear. |
| 🏂🏼 | snowboarder: medium-light skin tone | A snowboarder with medium-light skin is in a riding position, wearing a helmet and snow gear. |
| 🏂🏽 | snowboarder: medium skin tone | A snowboarder with medium skin is balancing on a snowboard, wearing a helmet and snow attire. |
| 🏂🏾 | snowboarder: medium-dark skin tone | A snowboarder with medium-dark skin is riding down a slope, focused and wearing snow gear. |
| 🏂🏿 | snowboarder: dark skin tone | A snowboarder with dark skin is in a dynamic pose on a snowboard, wearing a helmet and snow gear. |
| 🏌️ | person golfing | A person is preparing to hit a golf ball, holding a golf club and wearing casual golf attire. |
| 🏌🏻 | person golfing: light skin tone | A person with light skin is about to swing a golf club, dressed in golf attire. |
| 🏌🏼 | person golfing: medium-light skin tone | A person with medium-light skin is preparing to hit a golf ball, wearing golf clothes. |
| 🏌🏽 | person golfing: medium skin tone | A person with medium skin is poised to swing a golf club, dressed in casual golf attire. |
| 🏌🏾 | person golfing: medium-dark skin tone | A person with medium-dark skin is getting ready to hit a golf ball, wearing golf attire. |
| 🏌🏿 | person golfing: dark skin tone | A person with dark skin is about to swing a golf club, dressed in golf clothing. |
| 🏌️♂️ | man golfing | A man is preparing to hit a golf ball, holding a golf club and wearing casual golf attire. |
| 🏌🏻♂️ | man golfing: light skin tone | A man with light skin tone is poised to swing a golf club, wearing a cap and a golf outfit. |
| 🏌🏼♂️ | man golfing: medium-light skin tone | A man with medium-light skin tone stands ready with a golf club, dressed in sporty attire and a cap. |
| 🏌🏽♂️ | man golfing: medium skin tone | A man with medium skin tone is in a golfing stance, holding a golf club, wearing a cap and golf clothing. |
| 🏌🏾♂️ | man golfing: medium-dark skin tone | A man with medium-dark skin tone is positioned to hit a golf ball, wearing a cap and golf outfit. |
| 🏌🏿♂️ | man golfing: dark skin tone | A man with dark skin tone is ready to swing a golf club, dressed in a golf outfit and cap. |
| 🏌️♀️ | woman golfing | A woman is in a golfing stance, holding a golf club, dressed in sporty attire and a cap. |
| 🏌🏻♀️ | woman golfing: light skin tone | A woman with light skin tone is poised to swing a golf club, wearing a cap and golf attire. |
| 🏌🏼♀️ | woman golfing: medium-light skin tone | A woman with medium-light skin tone stands ready with a golf club, dressed in sporty clothing and a cap. |
| 🏌🏽♀️ | woman golfing: medium skin tone | A woman with medium skin tone is in a golfing position, holding a golf club, wearing a cap and golf outfit. |
| 🏌🏾♀️ | woman golfing: medium-dark skin tone | A woman with medium-dark skin tone is prepared to hit a golf ball, dressed in a cap and golf attire. |
| 🏌🏿♀️ | woman golfing: dark skin tone | A woman with dark skin tone is ready to swing a golf club, wearing a cap and golf outfit. |
| 🏄 | person surfing | A person is riding a surfboard on a wave, arms outstretched for balance, wearing swimwear. |
| 🏄🏻 | person surfing: light skin tone | A person with light skin tone is surfing on a wave, arms extended for balance, dressed in swimwear. |
| 🏄🏼 | person surfing: medium-light skin tone | A person with medium-light skin tone is on a surfboard, balancing on a wave in swimwear. |
| 🏄🏽 | person surfing: medium skin tone | A person with medium skin tone is surfing, arms outstretched for balance, wearing swimwear. |
| 🏄🏾 | person surfing: medium-dark skin tone | A person with medium-dark skin tone is riding a wave on a surfboard, arms extended for balance. |
| 🏄🏿 | person surfing: dark skin tone | A person with dark skin tone is surfing on a wave, balancing on a surfboard in swimwear. |
| 🏄♂️ | man surfing | A man is surfing on a wave, arms spread wide for balance, wearing swimwear. |
| 🏄🏻♂️ | man surfing: light skin tone | A man with light skin tone is riding a surfboard on a wave, arms extended for balance, dressed in swimwear. |
| 🏄🏼♂️ | man surfing: medium-light skin tone | A man with medium-light skin tone is surfing, balancing on a wave, wearing swimwear. |
| 🏄🏽♂️ | man surfing: medium skin tone | A man with medium skin tone is on a surfboard, arms outstretched for balance while riding a wave. |
| 🏄🏾♂️ | man surfing: medium-dark skin tone | A man with medium-dark skin tone is surfing on a wave, balancing on a surfboard in swimwear. |
| 🏄🏿♂️ | man surfing: dark skin tone | A man with dark skin tone is riding a surfboard on a wave, arms spread for balance, dressed in swimwear. |
| 🏄♀️ | woman surfing | A woman is surfing on a wave, arms extended for balance, wearing swimwear. |
| 🏄🏻♀️ | woman surfing: light skin tone | A woman with light skin tone is riding a surfboard on a wave, balancing with arms outstretched, dressed in swimwear. |
| 🏄🏼♀️ | woman surfing: medium-light skin tone | A woman with medium-light skin tone is surfing, balancing on a wave in swimwear. |
| 🏄🏽♀️ | woman surfing: medium skin tone | A woman with medium skin tone is on a surfboard, arms outstretched for balance while riding a wave. |
| 🏄🏾♀️ | woman surfing: medium-dark skin tone | A woman with medium-dark skin tone is surfing on a wave, balancing on a surfboard in swimwear. |
| 🏄🏿♀️ | woman surfing: dark skin tone | A woman with dark skin tone is riding a surfboard on a wave, arms spread for balance, dressed in swimwear. |
| 🚣 | person rowing boat | A person is sitting in a small boat, holding an oar, ready to row on the water. |
| 🚣🏻 | person rowing boat: light skin tone | A person with light skin tone is rowing a boat, holding an oar, seated in the boat. |
| 🚣🏼 | person rowing boat: medium-light skin tone | A person with medium-light skin tone is in a boat, rowing with an oar. |
| 🚣🏽 | person rowing boat: medium skin tone | A person with medium skin tone is seated in a boat, holding an oar to row. |
| 🚣🏾 | person rowing boat: medium-dark skin tone | A person with medium-dark skin tone is rowing a boat, seated and holding an oar. |
| 🚣🏿 | person rowing boat: dark skin tone | A person with dark skin tone is in a boat, holding an oar and ready to row. |
| 🚣♂️ | man rowing boat | A man is seated in a small boat, holding an oar, prepared to row. |
| 🚣🏻♂️ | man rowing boat: light skin tone | A man with light skin tone is rowing a boat, seated and gripping an oar. |
| 🚣🏼♂️ | man rowing boat: medium-light skin tone | A man with medium-light skin tone is in a boat, holding an oar to row. |
| 🚣🏽♂️ | man rowing boat: medium skin tone | A man with medium skin tone is seated in a boat, ready to row with an oar. |
| 🚣🏾♂️ | man rowing boat: medium-dark skin tone | A man with medium-dark skin tone is rowing a boat, seated and holding an oar. |
| 🚣🏿♂️ | man rowing boat: dark skin tone | A man with dark skin tone is seated in a small boat, using an oar to row forward, with a focused expression. |
| 🚣♀️ | woman rowing boat | A woman is seated in a small boat, actively rowing with an oar, her hair flowing back as she moves through the water. |
| 🚣🏻♀️ | woman rowing boat: light skin tone | A woman with light skin tone is rowing a boat, gripping an oar with determination, her hair styled back. |
| 🚣🏼♀️ | woman rowing boat: medium-light skin tone | A woman with medium-light skin tone is seated in a boat, rowing with an oar, her expression showing concentration. |
| 🚣🏽♀️ | woman rowing boat: medium skin tone | A woman with medium skin tone is rowing a boat, her oar slicing through the water as she focuses ahead. |
| 🚣🏾♀️ | woman rowing boat: medium-dark skin tone | A woman with medium-dark skin tone is actively rowing a boat, her hair flowing as she maneuvers the oar. |
| 🚣🏿♀️ | woman rowing boat: dark skin tone | A woman with dark skin tone is seated in a boat, rowing with an oar, displaying a determined expression. |
| 🏊 | person swimming | A person is swimming in a freestyle position, arms extended forward, with water splashing around them. |
| 🏊🏻 | person swimming: light skin tone | A person with light skin tone is swimming, arms in motion and a focused expression, creating ripples in the water. |
| 🏊🏼 | person swimming: medium-light skin tone | A person with medium-light skin tone is swimming, arms outstretched in a freestyle stroke, splashing water around. |
| 🏊🏽 | person swimming: medium skin tone | A person with medium skin tone is swimming, their arms moving rhythmically through the water, creating waves. |
| 🏊🏾 | person swimming: medium-dark skin tone | A person with medium-dark skin tone is swimming, showcasing a strong freestyle stroke with water splashing around. |
| 🏊🏿 | person swimming: dark skin tone | A person with dark skin tone is swimming, arms moving powerfully through the water, creating a trail of splashes. |
| 🏊♂️ | man swimming | A man is swimming in a freestyle position, arms extended forward, with water splashing around him. |
| 🏊🏻♂️ | man swimming: light skin tone | A man with light skin tone is swimming, arms moving in a freestyle stroke, creating ripples in the water. |
| 🏊🏼♂️ | man swimming: medium-light skin tone | A man with medium-light skin tone is swimming, his arms in motion and a determined look on his face. |
| 🏊🏽♂️ | man swimming: medium skin tone | A man with medium skin tone is swimming, his arms moving rhythmically through the water, causing splashes. |
| 🏊🏾♂️ | man swimming: medium-dark skin tone | A man with medium-dark skin tone is swimming, showcasing a strong stroke with water splashing around him. |
| 🏊🏿♂️ | man swimming: dark skin tone | A man with dark skin tone is swimming, arms moving powerfully through the water, creating a trail of splashes. |
| 🏊♀️ | woman swimming | A woman is swimming in a freestyle position, arms extended forward, with water splashing around her. |
| 🏊🏻♀️ | woman swimming: light skin tone | A woman with light skin tone is swimming, her arms moving in a freestyle stroke, creating ripples in the water. |
| 🏊🏼♀️ | woman swimming: medium-light skin tone | A woman with medium-light skin tone is swimming, arms in motion and a focused expression, splashing water around. |
| 🏊🏽♀️ | woman swimming: medium skin tone | A woman with medium skin tone is swimming, her arms moving rhythmically through the water, causing waves. |
| 🏊🏾♀️ | woman swimming: medium-dark skin tone | A woman with medium-dark skin tone is swimming, showcasing a strong freestyle stroke with water splashing around her. |
| 🏊🏿♀️ | woman swimming: dark skin tone | A woman with dark skin tone is swimming, arms moving powerfully through the water, creating a trail of splashes. |
| ⛹️ | person bouncing ball | A person is bouncing a basketball, poised in a dynamic stance, with an energetic expression. |
| ⛹🏻 | person bouncing ball: light skin tone | A person with light skin tone is bouncing a basketball, showing enthusiasm and focus in their stance. |
| ⛹🏼 | person bouncing ball: medium-light skin tone | A person with medium-light skin tone is bouncing a basketball, displaying a lively expression and athletic posture. |
| ⛹🏽 | person bouncing ball: medium skin tone | A person with medium skin tone is bouncing a basketball, showcasing energy and determination in their stance. |
| ⛹🏾 | person bouncing ball: medium-dark skin tone | A person with medium-dark skin tone is bouncing a basketball, exuding confidence and focus. |
| ⛹🏿 | person bouncing ball: dark skin tone | A person with dark skin tone is bouncing a basketball, displaying an energetic and dynamic pose. |
| ⛹️♂️ | man bouncing ball | A man is bouncing a basketball, poised in an athletic stance with a determined expression. |
| ⛹🏻♂️ | man bouncing ball: light skin tone | A man with light skin tone is bouncing a basketball, showing enthusiasm and focus in his stance. |
| ⛹🏼♂️ | man bouncing ball: medium-light skin tone | A man with medium-light skin tone is bouncing a basketball, displaying a lively expression and athletic posture. |
| ⛹🏽♂️ | man bouncing ball: medium skin tone | A man with medium skin tone is bouncing a basketball, showcasing energy and determination in his stance. |
| ⛹🏾♂️ | man bouncing ball: medium-dark skin tone | A man with medium-dark skin tone is bouncing a basketball, exuding confidence and focus. |
| ⛹🏿♂️ | man bouncing ball: dark skin tone | A man with dark skin tone is bouncing a basketball, displaying an energetic and dynamic pose. |
| ⛹️♀️ | woman bouncing ball | A woman is bouncing a basketball, poised in a dynamic stance, with an energetic expression. |
| ⛹🏻♀️ | woman bouncing ball: light skin tone | A woman with light skin tone is bouncing a basketball, showing enthusiasm and focus in her stance. |
| ⛹🏼♀️ | woman bouncing ball: medium-light skin tone | A woman with medium-light skin tone is bouncing a basketball, displaying a lively expression and athletic posture. |
| ⛹🏽♀️ | woman bouncing ball: medium skin tone | A woman with medium skin tone is energetically bouncing a basketball, wearing a sporty outfit and showing a focused expression. |
| ⛹🏾♀️ | woman bouncing ball: medium-dark skin tone | A woman with medium-dark skin tone is bouncing a basketball, dressed in athletic wear and displaying a determined look. |
| ⛹🏿♀️ | woman bouncing ball: dark skin tone | A woman with dark skin tone is actively bouncing a basketball, dressed in sports attire and exuding concentration. |
| 🏋️ | person lifting weights | A person is lifting a heavy barbell overhead, showcasing strength and determination with a neutral expression. |
| 🏋🏻 | person lifting weights: light skin tone | A person with light skin tone is lifting a barbell, muscles tense and focused, dressed in athletic gear. |
| 🏋🏼 | person lifting weights: medium-light skin tone | A person with medium-light skin tone is raising a barbell above their head, showing effort and concentration in their expression. |
| 🏋🏽 | person lifting weights: medium skin tone | A person with medium skin tone is lifting a barbell, demonstrating strength with a serious expression. |
| 🏋🏾 | person lifting weights: medium-dark skin tone | A person with medium-dark skin tone is lifting weights above their head, displaying a strong and focused demeanor. |
| 🏋🏿 | person lifting weights: dark skin tone | A person with dark skin tone is lifting a heavy barbell, showing determination and strength in their posture. |
| 🏋️♂️ | man lifting weights | A man is lifting a barbell overhead, showcasing his strength with a determined look on his face. |
| 🏋🏻♂️ | man lifting weights: light skin tone | A man with light skin tone is lifting weights, muscles flexed and focused expression as he exerts effort. |
| 🏋🏼♂️ | man lifting weights: medium-light skin tone | A man with medium-light skin tone is raising a barbell, showing concentration and strength in his expression. |
| 🏋🏽♂️ | man lifting weights: medium skin tone | A man with medium skin tone is lifting weights, displaying effort and determination in his focused expression. |
| 🏋🏾♂️ | man lifting weights: medium-dark skin tone | A man with medium-dark skin tone is lifting a heavy barbell, showing strength and concentration. |
| 🏋🏿♂️ | man lifting weights: dark skin tone | A man with dark skin tone is lifting weights overhead, demonstrating strength and a serious demeanor. |
| 🏋️♀️ | woman lifting weights | A woman is lifting a barbell above her head, showcasing strength and determination with a focused expression. |
| 🏋🏻♀️ | woman lifting weights: light skin tone | A woman with light skin tone is lifting weights, showing effort and concentration in her expression. |
| 🏋🏼♀️ | woman lifting weights: medium-light skin tone | A woman with medium-light skin tone is raising a barbell, demonstrating strength with a serious look. |
| 🏋🏽♀️ | woman lifting weights: medium skin tone | A woman with medium skin tone is lifting weights overhead, displaying determination and focus. |
| 🏋🏾♀️ | woman lifting weights: medium-dark skin tone | A woman with medium-dark skin tone is lifting a barbell, showing strength and concentration. |
| 🏋🏿♀️ | woman lifting weights: dark skin tone | A woman with dark skin tone is lifting weights, demonstrating effort and a serious expression. |
| 🚴 | person biking | A person is riding a bicycle, leaning slightly forward with a focused expression, dressed in sporty attire. |
| 🚴🏻 | person biking: light skin tone | A person with light skin tone is biking, leaning forward with determination, wearing athletic clothing. |
| 🚴🏼 | person biking: medium-light skin tone | A person with medium-light skin tone is riding a bike, showing focus and wearing cycling gear. |
| 🚴🏽 | person biking: medium skin tone | A person with medium skin tone is biking, leaning forward with concentration, dressed in sporty attire. |
| 🚴🏾 | person biking: medium-dark skin tone | A person with medium-dark skin tone is riding a bicycle, displaying focus and determination in their expression. |
| 🚴🏿 | person biking: dark skin tone | A person with dark skin tone is biking, leaning forward with a serious look, dressed in athletic wear. |
| 🚴♂️ | man biking | A man is riding a bicycle, leaning forward with a focused expression, dressed in sporty clothing. |
| 🚴🏻♂️ | man biking: light skin tone | A man with light skin tone is biking, showing determination and wearing athletic gear. |
| 🚴🏼♂️ | man biking: medium-light skin tone | A man with medium-light skin tone is riding a bike, demonstrating focus and wearing cycling attire. |
| 🚴🏽♂️ | man biking: medium skin tone | A man with medium skin tone is biking, leaning forward with concentration, dressed in sporty clothing. |
| 🚴🏾♂️ | man biking: medium-dark skin tone | A man with medium-dark skin tone is riding a bicycle, showing determination and focus. |
| 🚴🏿♂️ | man biking: dark skin tone | A man with dark skin tone is biking, leaning forward with a serious expression, dressed in athletic wear. |
| 🚴♀️ | woman biking | A woman is riding a bicycle, leaning slightly forward with a focused look, dressed in sporty attire. |
| 🚴🏻♀️ | woman biking: light skin tone | A woman with light skin tone is biking, showing determination and wearing athletic clothing. |
| 🚴🏼♀️ | woman biking: medium-light skin tone | A woman with medium-light skin tone is riding a bike, demonstrating focus and wearing cycling gear. |
| 🚴🏽♀️ | woman biking: medium skin tone | A woman with medium skin tone is biking, leaning forward with concentration, dressed in sporty attire. |
| 🚴🏾♀️ | woman biking: medium-dark skin tone | A woman with medium-dark skin tone is riding a bicycle, showing determination and focus. |
| 🚴🏿♀️ | woman biking: dark skin tone | A woman with dark skin tone is biking, leaning forward with a serious expression, dressed in athletic wear. |
| 🚵 | person mountain biking | A person is mountain biking, navigating rough terrain with a focused expression and wearing protective gear. |
| 🚵🏻 | person mountain biking: light skin tone | A person with light skin tone is riding a mountain bike, wearing a helmet, and leaning forward as they navigate a rugged terrain. |
| 🚵🏼 | person mountain biking: medium-light skin tone | A person with medium-light skin tone is mountain biking, sporting a helmet and an enthusiastic posture as they ride over a challenging path. |
| 🚵🏽 | person mountain biking: medium skin tone | A person with medium skin tone is actively mountain biking, wearing a helmet and appearing focused as they tackle the trail. |
| 🚵🏾 | person mountain biking: medium-dark skin tone | A person with medium-dark skin tone is seen mountain biking, leaning into the ride with a helmet on, showcasing determination. |
| 🚵🏿 | person mountain biking: dark skin tone | A person with dark skin tone is riding a mountain bike, helmet securely fastened, and exhibiting a strong posture as they navigate the terrain. |
| 🚵♂️ | man mountain biking | A man is mountain biking, wearing a helmet and leaning forward on his bike as he rides over uneven ground. |
| 🚵🏻♂️ | man mountain biking: light skin tone | A man with light skin tone is mountain biking, wearing a helmet and showing excitement as he rides downhill. |
| 🚵🏼♂️ | man mountain biking: medium-light skin tone | A man with medium-light skin tone is riding a mountain bike, helmet on, with a determined expression as he maneuvers through the landscape. |
| 🚵🏽♂️ | man mountain biking: medium skin tone | A man with medium skin tone is mountain biking, leaning forward with a helmet, displaying focus and energy on the trail. |
| 🚵🏾♂️ | man mountain biking: medium-dark skin tone | A man with medium-dark skin tone is seen mountain biking, wearing a helmet and showing determination as he rides over rough terrain. |
| 🚵🏿♂️ | man mountain biking: dark skin tone | A man with dark skin tone is actively mountain biking, helmet on, with a strong posture as he navigates the trail. |
| 🚵♀️ | woman mountain biking | A woman is mountain biking, wearing a helmet and leaning forward on her bike as she tackles a rugged path. |
| 🚵🏻♀️ | woman mountain biking: light skin tone | A woman with light skin tone is mountain biking, helmet securely fastened, and showing excitement as she rides downhill. |
| 🚵🏼♀️ | woman mountain biking: medium-light skin tone | A woman with medium-light skin tone is riding a mountain bike, wearing a helmet and appearing focused as she navigates the trail. |
| 🚵🏽♀️ | woman mountain biking: medium skin tone | A woman with medium skin tone is mountain biking, leaning forward with a helmet, displaying energy and enthusiasm. |
| 🚵🏾♀️ | woman mountain biking: medium-dark skin tone | A woman with medium-dark skin tone is seen mountain biking, wearing a helmet and showing determination as she rides through the terrain. |
| 🚵🏿♀️ | woman mountain biking: dark skin tone | A woman with dark skin tone is actively mountain biking, helmet on, and exhibiting a strong posture as she navigates the trail. |
| 🤸 | person cartwheeling | A person is performing a cartwheel, arms and legs extended in a dynamic pose, showcasing excitement and energy. |
| 🤸🏻 | person cartwheeling: light skin tone | A person with light skin tone is cartwheeling, arms and legs spread wide, displaying joy and enthusiasm. |
| 🤸🏼 | person cartwheeling: medium-light skin tone | A person with medium-light skin tone is seen mid-cartwheel, with limbs extended and a joyful expression. |
| 🤸🏽 | person cartwheeling: medium skin tone | A person with medium skin tone is performing a cartwheel, limbs outstretched, exuding energy and excitement. |
| 🤸🏾 | person cartwheeling: medium-dark skin tone | A person with medium-dark skin tone is cartwheeling, arms and legs extended in a lively pose, radiating enthusiasm. |
| 🤸🏿 | person cartwheeling: dark skin tone | A person with dark skin tone is seen mid-cartwheel, limbs spread wide, showcasing an energetic and joyful expression. |
| 🤸♂️ | man cartwheeling | A man is performing a cartwheel, arms and legs extended in a dynamic pose, showcasing excitement and athleticism. |
| 🤸🏻♂️ | man cartwheeling: light skin tone | A man with light skin tone is cartwheeling, limbs outstretched and a cheerful expression on his face. |
| 🤸🏼♂️ | man cartwheeling: medium-light skin tone | A man with medium-light skin tone is seen mid-cartwheel, arms and legs extended, displaying joy and energy. |
| 🤸🏽♂️ | man cartwheeling: medium skin tone | A man with medium skin tone is performing a cartwheel, limbs spread wide, exuding enthusiasm and excitement. |
| 🤸🏾♂️ | man cartwheeling: medium-dark skin tone | A man with medium-dark skin tone is cartwheeling, arms and legs extended in a lively pose, radiating energy. |
| 🤸🏿♂️ | man cartwheeling: dark skin tone | A man with dark skin tone is seen mid-cartwheel, limbs outstretched, showcasing an energetic and joyful expression. |
| 🤸♀️ | woman cartwheeling | A woman is performing a cartwheel, arms and legs extended in a dynamic pose, showcasing excitement and energy. |
| 🤸🏻♀️ | woman cartwheeling: light skin tone | A woman with light skin tone is cartwheeling, limbs outstretched and a cheerful expression on her face. |
| 🤸🏼♀️ | woman cartwheeling: medium-light skin tone | A woman with medium-light skin tone is seen mid-cartwheel, arms and legs extended, displaying joy and energy. |
| 🤸🏽♀️ | woman cartwheeling: medium skin tone | A woman with medium skin tone is performing a cartwheel, limbs spread wide, exuding enthusiasm and excitement. |
| 🤸🏾♀️ | woman cartwheeling: medium-dark skin tone | A woman with medium-dark skin tone is cartwheeling, arms and legs extended in a lively pose, radiating energy. |
| 🤸🏿♀️ | woman cartwheeling: dark skin tone | A woman with dark skin tone is seen mid-cartwheel, limbs outstretched, showcasing an energetic and joyful expression. |
| 🤼 | people wrestling | Two people are grappling in a wrestling match, both in dynamic poses, showcasing strength and competition. |
| 🤼♂️ | men wrestling | Two men are wrestling, engaged in a competitive grapple, showcasing physical strength and determination. |
| 🤼♀️ | women wrestling | Two women are wrestling, both in dynamic poses, displaying strength and competitive spirit. |
| 🤽 | person playing water polo | A person is playing water polo, poised with a ball in one hand, ready to make a play in the water. |
| 🤽🏻 | person playing water polo: light skin tone | A person with light skin tone is seen playing water polo, holding a ball and appearing focused and ready to make a move. |
| 🤽🏼 | person playing water polo: medium-light skin tone | A person with medium-light skin tone is in a dynamic pose, holding a water polo ball above their head, ready to throw it. |
| 🤽🏽 | person playing water polo: medium skin tone | A person with medium skin tone is poised to throw a water polo ball, displaying a determined expression. |
| 🤽🏾 | person playing water polo: medium-dark skin tone | A person with medium-dark skin tone is in an athletic stance, gripping a water polo ball, showcasing focus and energy. |
| 🤽🏿 | person playing water polo: dark skin tone | A person with dark skin tone is actively engaged in water polo, holding a ball high, exuding confidence and readiness. |
| 🤽♂️ | man playing water polo | A man is depicted in mid-action, preparing to throw a water polo ball, showcasing a competitive spirit. |
| 🤽🏻♂️ | man playing water polo: light skin tone | A man with light skin tone is in a throwing position, holding a water polo ball with a focused expression. |
| 🤽🏼♂️ | man playing water polo: medium-light skin tone | A man with medium-light skin tone is captured in a dynamic pose, ready to launch a water polo ball. |
| 🤽🏽♂️ | man playing water polo: medium skin tone | A man with medium skin tone is in an active stance, gripping a water polo ball, displaying determination. |
| 🤽🏾♂️ | man playing water polo: medium-dark skin tone | A man with medium-dark skin tone is poised to throw a water polo ball, showing concentration and athleticism. |
| 🤽🏿♂️ | man playing water polo: dark skin tone | A man with dark skin tone is depicted in a competitive pose, holding a water polo ball high, ready to make a move. |
| 🤽♀️ | woman playing water polo | A woman is shown in an athletic stance, preparing to throw a water polo ball with a determined expression. |
| 🤽🏻♀️ | woman playing water polo: light skin tone | A woman with light skin tone is in a dynamic pose, holding a water polo ball above her head, ready to throw. |
| 🤽🏼♀️ | woman playing water polo: medium-light skin tone | A woman with medium-light skin tone is depicted in mid-action, gripping a water polo ball with focus. |
| 🤽🏽♀️ | woman playing water polo: medium skin tone | A woman with medium skin tone is poised to throw a water polo ball, showcasing determination and athleticism. |
| 🤽🏾♀️ | woman playing water polo: medium-dark skin tone | A woman with medium-dark skin tone is actively engaged in a water polo game, holding a ball high with confidence. |
| 🤽🏿♀️ | woman playing water polo: dark skin tone | A woman with dark skin tone is depicted in a competitive pose, ready to launch a water polo ball. |
| 🤾 | person playing handball | A person is shown in mid-throw, hurling a handball with a focused expression, embodying athletic energy. |
| 🤾🏻 | person playing handball: light skin tone | A person with light skin tone is depicted in an action pose, preparing to throw a handball with determination. |
| 🤾🏼 | person playing handball: medium-light skin tone | A person with medium-light skin tone is in a dynamic stance, gripping a handball, ready to make a play. |
| 🤾🏽 | person playing handball: medium skin tone | A person with medium skin tone is shown in an athletic pose, holding a handball, exuding focus and energy. |
| 🤾🏾 | person playing handball: medium-dark skin tone | A person with medium-dark skin tone is depicted in mid-action, preparing to throw a handball with intensity. |
| 🤾🏿 | person playing handball: dark skin tone | A person with dark skin tone is in a competitive stance, gripping a handball, ready to make a decisive move. |
| 🤾♂️ | man playing handball | A man is shown in mid-throw, hurling a handball with an intense expression, showcasing athleticism. |
| 🤾🏻♂️ | man playing handball: light skin tone | A man with light skin tone is depicted in a throwing position, focused on the handball he is about to throw. |
| 🤾🏼♂️ | man playing handball: medium-light skin tone | A man with medium-light skin tone is in an athletic pose, gripping a handball with determination. |
| 🤾🏽♂️ | man playing handball: medium skin tone | A man with medium skin tone is shown in a dynamic stance, ready to throw a handball with intensity. |
| 🤾🏾♂️ | man playing handball: medium-dark skin tone | A man with medium-dark skin tone is depicted in mid-action, preparing to hurl a handball with focus. |
| 🤾🏿♂️ | man playing handball: dark skin tone | A man with dark skin tone is in a competitive pose, gripping a handball, ready to make a decisive throw. |
| 🤾♀️ | woman playing handball | A woman is shown in an athletic stance, preparing to throw a handball with a determined expression. |
| 🤾🏻♀️ | woman playing handball: light skin tone | A woman with light skin tone is depicted in mid-action, holding a handball above her head, ready to throw. |
| 🤾🏼♀️ | woman playing handball: medium-light skin tone | A woman with medium-light skin tone is in a dynamic pose, gripping a handball with focus. |
| 🤾🏽♀️ | woman playing handball: medium skin tone | A woman with medium skin tone is poised to throw a handball, showcasing determination and athleticism. |
| 🤾🏾♀️ | woman playing handball: medium-dark skin tone | A woman with medium-dark skin tone is actively engaged in handball, holding a ball high with confidence. |
| 🤾🏿♀️ | woman playing handball: dark skin tone | A woman with dark skin tone is depicted in a competitive pose, ready to launch a handball. |
| 🤹 | person juggling | A person is shown juggling multiple objects, balancing them skillfully with a focused expression. |
| 🤹🏻 | person juggling: light skin tone | A person with light skin tone is depicted in mid-juggle, skillfully balancing colorful objects in the air. |
| 🤹🏼 | person juggling: medium-light skin tone | A person with medium-light skin tone is in an action pose, juggling several items with concentration. |
| 🤹🏽 | person juggling: medium skin tone | A person with medium skin tone is shown in a dynamic juggling pose, expertly handling multiple objects. |
| 🤹🏾 | person juggling: medium-dark skin tone | A person with medium-dark skin tone is depicted in mid-juggle, skillfully balancing colorful items with focus. |
| 🤹🏿 | person juggling: dark skin tone | A person with dark skin tone is shown juggling various objects, displaying skill and concentration. |
| 🤹♂️ | man juggling | A man with dark hair is juggling three colorful balls, standing upright with a focused expression. |
| 🤹🏻♂️ | man juggling: light skin tone | A man with light skin and dark hair is juggling three colorful balls, standing upright with a focused expression. |
| 🤹🏼♂️ | man juggling: medium-light skin tone | A man with medium-light skin and dark hair is juggling three colorful balls, standing upright with a focused expression. |
| 🤹🏽♂️ | man juggling: medium skin tone | A man with medium skin and dark hair is juggling three colorful balls, standing upright with a focused expression. |
| 🤹🏾♂️ | man juggling: medium-dark skin tone | A man with medium-dark skin and dark hair is juggling three colorful balls, standing upright with a focused expression. |
| 🤹🏿♂️ | man juggling: dark skin tone | A man with dark skin and dark hair is juggling three colorful balls, standing upright with a focused expression. |
| 🤹♀️ | woman juggling | A woman with dark hair is juggling three colorful balls, standing upright with a focused expression. |
| 🤹🏻♀️ | woman juggling: light skin tone | A woman with light skin and dark hair is juggling three colorful balls, standing upright with a focused expression. |
| 🤹🏼♀️ | woman juggling: medium-light skin tone | A woman with medium-light skin and dark hair is juggling three colorful balls, standing upright with a focused expression. |
| 🤹🏽♀️ | woman juggling: medium skin tone | A woman with medium skin and dark hair is juggling three colorful balls, standing upright with a focused expression. |
| 🤹🏾♀️ | woman juggling: medium-dark skin tone | A woman with medium-dark skin and dark hair is juggling three colorful balls, standing upright with a focused expression. |
| 🤹🏿♀️ | woman juggling: dark skin tone | A woman with dark skin and dark hair is juggling three colorful balls, standing upright with a focused expression. |
| 🧘 | person in lotus position | A person sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏻 | person in lotus position: light skin tone | A person with light skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏼 | person in lotus position: medium-light skin tone | A person with medium-light skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏽 | person in lotus position: medium skin tone | A person with medium skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏾 | person in lotus position: medium-dark skin tone | A person with medium-dark skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏿 | person in lotus position: dark skin tone | A person with dark skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘♂️ | man in lotus position | A man sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏻♂️ | man in lotus position: light skin tone | A man with light skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏼♂️ | man in lotus position: medium-light skin tone | A man with medium-light skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏽♂️ | man in lotus position: medium skin tone | A man with medium skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏾♂️ | man in lotus position: medium-dark skin tone | A man with medium-dark skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏿♂️ | man in lotus position: dark skin tone | A man with dark skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘♀️ | woman in lotus position | A woman sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏻♀️ | woman in lotus position: light skin tone | A woman with light skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏼♀️ | woman in lotus position: medium-light skin tone | A woman with medium-light skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏽♀️ | woman in lotus position: medium skin tone | A woman with medium skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏾♀️ | woman in lotus position: medium-dark skin tone | A woman with medium-dark skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🧘🏿♀️ | woman in lotus position: dark skin tone | A woman with dark skin sits cross-legged in a lotus position, eyes closed, with a serene expression, symbolizing meditation. |
| 🛀 | person taking bath | A person is relaxing in a bathtub filled with water, with bubbles around them, appearing content. |
| 🛀🏻 | person taking bath: light skin tone | A person with light skin is relaxing in a bathtub filled with water, with bubbles around them, appearing content. |
| 🛀🏼 | person taking bath: medium-light skin tone | A person with medium-light skin is relaxing in a bathtub filled with water, with bubbles around them, appearing content. |
| 🛀🏽 | person taking bath: medium skin tone | A person with medium skin is relaxing in a bathtub filled with water, with bubbles around them, appearing content. |
| 🛀🏾 | person taking bath: medium-dark skin tone | A person with medium-dark skin is relaxing in a bathtub filled with water, with bubbles around them, appearing content. |
| 🛀🏿 | person taking bath: dark skin tone | A person with dark skin is relaxing in a bathtub filled with water, with bubbles around them, appearing content. |
| 🛌 | person in bed | A person is lying in bed under a blanket, appearing relaxed and ready for sleep. |
| 🛌🏻 | person in bed: light skin tone | A person with light skin is lying in bed under a blanket, appearing relaxed and ready for sleep. |
| 🛌🏼 | person in bed: medium-light skin tone | A person with medium-light skin is lying in bed under a blanket, appearing relaxed and ready for sleep. |
| 🛌🏽 | person in bed: medium skin tone | A person with medium skin is lying in bed under a blanket, appearing relaxed and ready for sleep. |
| 🛌🏾 | person in bed: medium-dark skin tone | A person with medium-dark skin tone lying on a bed, appearing relaxed and resting. |
| 🛌🏿 | person in bed: dark skin tone | A person with dark skin tone lying on a bed, looking peaceful and at rest. |
| 🧑🤝🧑 | people holding hands | Two people of varying skin tones holding hands, facing each other with friendly expressions. |
| 🧑🏻🤝🧑🏻 | people holding hands: light skin tone | Two people with light skin tones holding hands, smiling at each other. |
| 🧑🏻🤝🧑🏼 | people holding hands: light skin tone, medium-light skin tone | A person with light skin tone holding hands with another person of medium-light skin tone, both looking happy. |
| 🧑🏻🤝🧑🏽 | people holding hands: light skin tone, medium skin tone | A light-skinned person and a medium-skinned person holding hands, both smiling warmly. |
| 🧑🏻🤝🧑🏾 | people holding hands: light skin tone, medium-dark skin tone | A light-skinned person holding hands with a medium-dark skinned person, both appearing cheerful. |
| 🧑🏻🤝🧑🏿 | people holding hands: light skin tone, dark skin tone | A light-skinned person holding hands with a dark-skinned person, both looking content. |
| 🧑🏼🤝🧑🏻 | people holding hands: medium-light skin tone, light skin tone | A medium-light skinned person holding hands with a light-skinned person, both smiling at each other. |
| 🧑🏼🤝🧑🏼 | people holding hands: medium-light skin tone | Two people with medium-light skin tones holding hands, both looking happy. |
| 🧑🏼🤝🧑🏽 | people holding hands: medium-light skin tone, medium skin tone | A medium-light skinned person holding hands with a medium-skinned person, both smiling warmly. |
| 🧑🏼🤝🧑🏾 | people holding hands: medium-light skin tone, medium-dark skin tone | A medium-light skinned person holding hands with a medium-dark skinned person, both appearing joyful. |
| 🧑🏼🤝🧑🏿 | people holding hands: medium-light skin tone, dark skin tone | A medium-light skinned person holding hands with a dark-skinned person, both looking pleased. |
| 🧑🏽🤝🧑🏻 | people holding hands: medium skin tone, light skin tone | A medium-skinned person holding hands with a light-skinned person, both smiling at each other. |
| 🧑🏽🤝🧑🏼 | people holding hands: medium skin tone, medium-light skin tone | A medium-skinned person holding hands with a medium-light skinned person, both appearing cheerful. |
| 🧑🏽🤝🧑🏽 | people holding hands: medium skin tone | Two people with medium skin tones holding hands, both looking happy. |
| 🧑🏽🤝🧑🏾 | people holding hands: medium skin tone, medium-dark skin tone | A medium-skinned person holding hands with a medium-dark skinned person, both smiling. |
| 🧑🏽🤝🧑🏿 | people holding hands: medium skin tone, dark skin tone | A medium-skinned person holding hands with a dark-skinned person, both looking content. |
| 🧑🏾🤝🧑🏻 | people holding hands: medium-dark skin tone, light skin tone | A medium-dark skinned person holding hands with a light-skinned person, both appearing joyful. |
| 🧑🏾🤝🧑🏼 | people holding hands: medium-dark skin tone, medium-light skin tone | A medium-dark skinned person holding hands with a medium-light skinned person, both smiling. |
| 🧑🏾🤝🧑🏽 | people holding hands: medium-dark skin tone, medium skin tone | A medium-dark skinned person holding hands with a medium-skinned person, both looking happy. |
| 🧑🏾🤝🧑🏾 | people holding hands: medium-dark skin tone | Two people with medium-dark skin tones holding hands, both smiling at each other. |
| 🧑🏾🤝🧑🏿 | people holding hands: medium-dark skin tone, dark skin tone | A medium-dark skinned person holding hands with a dark-skinned person, both appearing pleased. |
| 🧑🏿🤝🧑🏻 | people holding hands: dark skin tone, light skin tone | A dark-skinned person holding hands with a light-skinned person, both looking happy. |
| 🧑🏿🤝🧑🏼 | people holding hands: dark skin tone, medium-light skin tone | A dark-skinned person holding hands with a medium-light skinned person, both smiling. |
| 🧑🏿🤝🧑🏽 | people holding hands: dark skin tone, medium skin tone | A dark-skinned person holding hands with a medium-skinned person, both appearing cheerful. |
| 🧑🏿🤝🧑🏾 | people holding hands: dark skin tone, medium-dark skin tone | A dark-skinned person holding hands with a medium-dark skinned person, both looking content. |
| 🧑🏿🤝🧑🏿 | people holding hands: dark skin tone | Two people with dark skin tones holding hands, both smiling at each other. |
| 👭 | women holding hands | Two women holding hands, both smiling and looking at each other affectionately. |
| 👭🏻 | women holding hands: light skin tone | Two women with light skin tones holding hands, both appearing joyful. |
| 👩🏻🤝👩🏼 | women holding hands: light skin tone, medium-light skin tone | A light-skinned woman holding hands with a medium-light skinned woman, both smiling at each other. |
| 👩🏻🤝👩🏽 | women holding hands: light skin tone, medium skin tone | A light-skinned woman holding hands with a medium-skinned woman, both looking happy. |
| 👩🏻🤝👩🏾 | women holding hands: light skin tone, medium-dark skin tone | A light-skinned woman holding hands with a medium-dark skinned woman, both appearing cheerful. |
| 👩🏻🤝👩🏿 | women holding hands: light skin tone, dark skin tone | A light-skinned woman holding hands with a dark-skinned woman, both looking pleased. |
| 👩🏼🤝👩🏻 | women holding hands: medium-light skin tone, light skin tone | A medium-light skinned woman holding hands with a light-skinned woman, both smiling at each other. |
| 👭🏼 | women holding hands: medium-light skin tone | Two women with medium-light skin tones holding hands, both looking happy. |
| 👩🏼🤝👩🏽 | women holding hands: medium-light skin tone, medium skin tone | A medium-light skinned woman holding hands with a medium-skinned woman, both appearing joyful. |
| 👩🏼🤝👩🏾 | women holding hands: medium-light skin tone, medium-dark skin tone | A medium-light skinned woman holding hands with a medium-dark skinned woman, both smiling. |
| 👩🏼🤝👩🏿 | women holding hands: medium-light skin tone, dark skin tone | A medium-light skinned woman holding hands with a dark-skinned woman, both looking content. |
| 👩🏽🤝👩🏻 | women holding hands: medium skin tone, light skin tone | A medium-skinned woman holding hands with a light-skinned woman, both smiling at each other. |
| 👩🏽🤝👩🏼 | women holding hands: medium skin tone, medium-light skin tone | Two women holding hands, one with medium skin tone and the other with medium-light skin tone, both smiling and standing side by side. |
| 👭🏽 | women holding hands: medium skin tone | Two women with medium skin tone holding hands, both smiling and facing forward. |
| 👩🏽🤝👩🏾 | women holding hands: medium skin tone, medium-dark skin tone | Two women holding hands, one with medium skin tone and the other with medium-dark skin tone, both smiling and standing together. |
| 👩🏽🤝👩🏿 | women holding hands: medium skin tone, dark skin tone | Two women holding hands, one with medium skin tone and the other with dark skin tone, both smiling and standing close. |
| 👩🏾🤝👩🏻 | women holding hands: medium-dark skin tone, light skin tone | Two women holding hands, one with medium-dark skin tone and the other with light skin tone, both smiling and standing together. |
| 👩🏾🤝👩🏼 | women holding hands: medium-dark skin tone, medium-light skin tone | Two women holding hands, one with medium-dark skin tone and the other with medium-light skin tone, both smiling and standing side by side. |
| 👩🏾🤝👩🏽 | women holding hands: medium-dark skin tone, medium skin tone | Two women holding hands, one with medium-dark skin tone and the other with medium skin tone, both smiling and facing each other. |
| 👭🏾 | women holding hands: medium-dark skin tone | Two women with medium-dark skin tone holding hands, both smiling and facing forward. |
| 👩🏾🤝👩🏿 | women holding hands: medium-dark skin tone, dark skin tone | Two women holding hands, one with medium-dark skin tone and the other with dark skin tone, both smiling and standing side by side. |
| 👩🏿🤝👩🏻 | women holding hands: dark skin tone, light skin tone | Two women holding hands, one with dark skin tone and the other with light skin tone, both smiling and standing together. |
| 👩🏿🤝👩🏼 | women holding hands: dark skin tone, medium-light skin tone | Two women holding hands, one with dark skin tone and the other with medium-light skin tone, both smiling and facing each other. |
| 👩🏿🤝👩🏽 | women holding hands: dark skin tone, medium skin tone | Two women holding hands, one with dark skin tone and the other with medium skin tone, both smiling and standing close. |
| 👩🏿🤝👩🏾 | women holding hands: dark skin tone, medium-dark skin tone | Two women holding hands, one with dark skin tone and the other with medium-dark skin tone, both smiling and facing forward. |
| 👭🏿 | women holding hands: dark skin tone | Two women with dark skin tone holding hands, both smiling and standing side by side. |
| 👫 | woman and man holding hands | A woman and a man holding hands, both smiling and facing forward, with the woman on the left. |
| 👫🏻 | woman and man holding hands: light skin tone | A woman and a man with light skin tone holding hands, both smiling and standing together. |
| 👩🏻🤝👨🏼 | woman and man holding hands: light skin tone, medium-light skin tone | A woman with light skin tone and a man with medium-light skin tone holding hands, both smiling and standing side by side. |
| 👩🏻🤝👨🏽 | woman and man holding hands: light skin tone, medium skin tone | A woman with light skin tone and a man with medium skin tone holding hands, both smiling and facing each other. |
| 👩🏻🤝👨🏾 | woman and man holding hands: light skin tone, medium-dark skin tone | A woman with light skin tone and a man with medium-dark skin tone holding hands, both smiling and standing together. |
| 👩🏻🤝👨🏿 | woman and man holding hands: light skin tone, dark skin tone | A woman with light skin tone and a man with dark skin tone holding hands, both smiling and facing forward. |
| 👩🏼🤝👨🏻 | woman and man holding hands: medium-light skin tone, light skin tone | A woman with medium-light skin tone and a man with light skin tone holding hands, both smiling and standing together. |
| 👫🏼 | woman and man holding hands: medium-light skin tone | A woman and a man with medium-light skin tone holding hands, both smiling and facing forward. |
| 👩🏼🤝👨🏽 | woman and man holding hands: medium-light skin tone, medium skin tone | A woman with medium-light skin tone and a man with medium skin tone holding hands, both smiling and standing side by side. |
| 👩🏼🤝👨🏾 | woman and man holding hands: medium-light skin tone, medium-dark skin tone | A woman with medium-light skin tone and a man with medium-dark skin tone holding hands, both smiling and facing each other. |
| 👩🏼🤝👨🏿 | woman and man holding hands: medium-light skin tone, dark skin tone | A woman with medium-light skin tone and a man with dark skin tone holding hands, both smiling and standing together. |
| 👩🏽🤝👨🏻 | woman and man holding hands: medium skin tone, light skin tone | A woman with medium skin tone and a man with light skin tone holding hands, both smiling and facing forward. |
| 👩🏽🤝👨🏼 | woman and man holding hands: medium skin tone, medium-light skin tone | A woman with medium skin tone and a man with medium-light skin tone holding hands, both smiling and standing close. |
| 👫🏽 | woman and man holding hands: medium skin tone | A woman and a man with medium skin tone holding hands, both smiling and facing each other. |
| 👩🏽🤝👨🏾 | woman and man holding hands: medium skin tone, medium-dark skin tone | A woman with medium skin tone and a man with medium-dark skin tone holding hands, both smiling and standing together. |
| 👩🏽🤝👨🏿 | woman and man holding hands: medium skin tone, dark skin tone | A woman with medium skin tone and a man with dark skin tone holding hands, both smiling and facing forward. |
| 👩🏾🤝👨🏻 | woman and man holding hands: medium-dark skin tone, light skin tone | A woman with medium-dark skin tone and a man with light skin tone holding hands, both smiling and standing close. |
| 👩🏾🤝👨🏼 | woman and man holding hands: medium-dark skin tone, medium-light skin tone | A woman with medium-dark skin tone and a man with medium-light skin tone holding hands, both smiling and facing each other. |
| 👩🏾🤝👨🏽 | woman and man holding hands: medium-dark skin tone, medium skin tone | A woman with medium-dark skin tone and a man with medium skin tone holding hands, both smiling and standing together. |
| 👫🏾 | woman and man holding hands: medium-dark skin tone | A woman and a man with medium-dark skin tone holding hands, both smiling and facing forward. |
| 👩🏾🤝👨🏿 | woman and man holding hands: medium-dark skin tone, dark skin tone | A woman with medium-dark skin tone and a man with dark skin tone holding hands, both smiling and standing side by side. |
| 👩🏿🤝👨🏻 | woman and man holding hands: dark skin tone, light skin tone | A woman with dark skin tone and a man with light skin tone holding hands, both smiling and facing each other. |
| 👩🏿🤝👨🏼 | woman and man holding hands: dark skin tone, medium-light skin tone | A woman with dark skin tone and a man with medium-light skin tone holding hands, both smiling and standing together. |
| 👩🏿🤝👨🏽 | woman and man holding hands: dark skin tone, medium skin tone | A woman with dark skin tone and a man with medium skin tone holding hands, both smiling and facing forward. |
| 👩🏿🤝👨🏾 | woman and man holding hands: dark skin tone, medium-dark skin tone | A woman with dark skin tone and a man with medium-dark skin tone holding hands, both smiling and standing side by side. |
| 👫🏿 | woman and man holding hands: dark skin tone | A woman and a man with dark skin tone holding hands, both smiling and standing together. |
| 👬 | men holding hands | Two men standing side by side, holding hands, both with neutral expressions. |
| 👬🏻 | men holding hands: light skin tone | Two men with light skin tones standing side by side, holding hands. |
| 👨🏻🤝👨🏼 | men holding hands: light skin tone, medium-light skin tone | One man with light skin and one man with medium-light skin, both holding hands. |
| 👨🏻🤝👨🏽 | men holding hands: light skin tone, medium skin tone | One man with light skin and one man with medium skin, both holding hands. |
| 👨🏻🤝👨🏾 | men holding hands: light skin tone, medium-dark skin tone | One man with light skin and one man with medium-dark skin, both holding hands. |
| 👨🏻🤝👨🏿 | men holding hands: light skin tone, dark skin tone | One man with light skin and one man with dark skin, both holding hands. |
| 👨🏼🤝👨🏻 | men holding hands: medium-light skin tone, light skin tone | One man with medium-light skin and one man with light skin, both holding hands. |
| 👬🏼 | men holding hands: medium-light skin tone | Two men with medium-light skin tones standing side by side, holding hands. |
| 👨🏼🤝👨🏽 | men holding hands: medium-light skin tone, medium skin tone | One man with medium-light skin and one man with medium skin, both holding hands. |
| 👨🏼🤝👨🏾 | men holding hands: medium-light skin tone, medium-dark skin tone | One man with medium-light skin and one man with medium-dark skin, both holding hands. |
| 👨🏼🤝👨🏿 | men holding hands: medium-light skin tone, dark skin tone | One man with medium-light skin and one man with dark skin, both holding hands. |
| 👨🏽🤝👨🏻 | men holding hands: medium skin tone, light skin tone | One man with medium skin and one man with light skin, both holding hands. |
| 👨🏽🤝👨🏼 | men holding hands: medium skin tone, medium-light skin tone | One man with medium skin and one man with medium-light skin, both holding hands. |
| 👬🏽 | men holding hands: medium skin tone | Two men with medium skin tones standing side by side, holding hands. |
| 👨🏽🤝👨🏾 | men holding hands: medium skin tone, medium-dark skin tone | One man with medium skin and one man with medium-dark skin, both holding hands. |
| 👨🏽🤝👨🏿 | men holding hands: medium skin tone, dark skin tone | One man with medium skin and one man with dark skin, both holding hands. |
| 👨🏾🤝👨🏻 | men holding hands: medium-dark skin tone, light skin tone | One man with medium-dark skin and one man with light skin, both holding hands. |
| 👨🏾🤝👨🏼 | men holding hands: medium-dark skin tone, medium-light skin tone | One man with medium-dark skin and one man with medium-light skin, both holding hands. |
| 👨🏾🤝👨🏽 | men holding hands: medium-dark skin tone, medium skin tone | One man with medium-dark skin and one man with medium skin, both holding hands. |
| 👬🏾 | men holding hands: medium-dark skin tone | Two men with medium-dark skin tones standing side by side, holding hands. |
| 👨🏾🤝👨🏿 | men holding hands: medium-dark skin tone, dark skin tone | One man with medium-dark skin and one man with dark skin, both holding hands. |
| 👨🏿🤝👨🏻 | men holding hands: dark skin tone, light skin tone | One man with dark skin and one man with light skin, both holding hands. |
| 👨🏿🤝👨🏼 | men holding hands: dark skin tone, medium-light skin tone | One man with dark skin and one man with medium-light skin, both holding hands. |
| 👨🏿🤝👨🏽 | men holding hands: dark skin tone, medium skin tone | One man with dark skin and one man with medium skin, both holding hands. |
| 👨🏿🤝👨🏾 | men holding hands: dark skin tone, medium-dark skin tone | One man with dark skin and one man with medium-dark skin, both holding hands. |
| 👬🏿 | men holding hands: dark skin tone | Two men with dark skin tones standing side by side, holding hands. |
| 💏 | kiss | A couple leaning towards each other, about to kiss, with soft expressions. |
| 💏🏻 | kiss: light skin tone | A couple with light skin tones leaning towards each other, about to kiss. |
| 💏🏼 | kiss: medium-light skin tone | A couple with medium-light skin tones leaning towards each other, about to kiss. |
| 💏🏽 | kiss: medium skin tone | A couple with medium skin tones leaning towards each other, about to kiss. |
| 💏🏾 | kiss: medium-dark skin tone | A couple with medium-dark skin tones leaning towards each other, about to kiss. |
| 💏🏿 | kiss: dark skin tone | A couple with dark skin tones leaning towards each other, about to kiss. |
| 🧑🏻❤️💋🧑🏼 | kiss: person, person, light skin tone, medium-light skin tone | Two people, one with light skin and one with medium-light skin, leaning in for a kiss. |
| 🧑🏻❤️💋🧑🏽 | kiss: person, person, light skin tone, medium skin tone | Two people, one with light skin and one with medium skin, leaning in for a kiss. |
| 🧑🏻❤️💋🧑🏾 | kiss: person, person, light skin tone, medium-dark skin tone | Two people, one with light skin and one with medium-dark skin, leaning in for a kiss. |
| 🧑🏻❤️💋🧑🏿 | kiss: person, person, light skin tone, dark skin tone | Two people, one with light skin and one with dark skin, leaning in for a kiss. |
| 🧑🏼❤️💋🧑🏻 | kiss: person, person, medium-light skin tone, light skin tone | Two people, one with medium-light skin and one with light skin, leaning in for a kiss. |
| 🧑🏼❤️💋🧑🏽 | kiss: person, person, medium-light skin tone, medium skin tone | Two people, one with medium-light skin and one with medium skin, leaning in for a kiss. |
| 🧑🏼❤️💋🧑🏾 | kiss: person, person, medium-light skin tone, medium-dark skin tone | Two people, one with medium-light skin and one with medium-dark skin, leaning in for a kiss. |
| 🧑🏼❤️💋🧑🏿 | kiss: person, person, medium-light skin tone, dark skin tone | Two people, one with medium-light skin and one with dark skin, leaning in for a kiss. |
| 🧑🏽❤️💋🧑🏻 | kiss: person, person, medium skin tone, light skin tone | Two people are kissing, one with medium skin tone and the other with light skin tone, both have neutral facial expressions. |
| 🧑🏽❤️💋🧑🏼 | kiss: person, person, medium skin tone, medium-light skin tone | Two people are kissing, one with medium skin tone and the other with medium-light skin tone, both have soft smiles. |
| 🧑🏽❤️💋🧑🏾 | kiss: person, person, medium skin tone, medium-dark skin tone | Two people are kissing, one with medium skin tone and the other with medium-dark skin tone, both appear content. |
| 🧑🏽❤️💋🧑🏿 | kiss: person, person, medium skin tone, dark skin tone | Two people are kissing, one with medium skin tone and the other with dark skin tone, both show affection. |
| 🧑🏾❤️💋🧑🏻 | kiss: person, person, medium-dark skin tone, light skin tone | Two people are kissing, one with medium-dark skin tone and the other with light skin tone, both have gentle expressions. |
| 🧑🏾❤️💋🧑🏼 | kiss: person, person, medium-dark skin tone, medium-light skin tone | Two people are kissing, one with medium-dark skin tone and the other with medium-light skin tone, both look happy. |
| 🧑🏾❤️💋🧑🏽 | kiss: person, person, medium-dark skin tone, medium skin tone | Two people are kissing, one with medium-dark skin tone and the other with medium skin tone, both express warmth. |
| 🧑🏾❤️💋🧑🏿 | kiss: person, person, medium-dark skin tone, dark skin tone | Two people are kissing, one with medium-dark skin tone and the other with dark skin tone, both appear loving. |
| 🧑🏿❤️💋🧑🏻 | kiss: person, person, dark skin tone, light skin tone | Two people are kissing, one with dark skin tone and the other with light skin tone, both have soft smiles. |
| 🧑🏿❤️💋🧑🏼 | kiss: person, person, dark skin tone, medium-light skin tone | Two people are kissing, one with dark skin tone and the other with medium-light skin tone, both look affectionate. |
| 🧑🏿❤️💋🧑🏽 | kiss: person, person, dark skin tone, medium skin tone | Two people are kissing, one with dark skin tone and the other with medium skin tone, both express joy. |
| 🧑🏿❤️💋🧑🏾 | kiss: person, person, dark skin tone, medium-dark skin tone | Two people are kissing, one with dark skin tone and the other with medium-dark skin tone, both show tenderness. |
| 👩❤️💋👨 | kiss: woman, man | A woman and a man are kissing, both have neutral expressions and appear intimate. |
| 👩🏻❤️💋👨🏻 | kiss: woman, man, light skin tone | A woman and a man are kissing, both with light skin tones, showing affection with gentle smiles. |
| 👩🏻❤️💋👨🏼 | kiss: woman, man, light skin tone, medium-light skin tone | A woman and a man are kissing, the woman has light skin tone and the man has medium-light skin tone, both look happy. |
| 👩🏻❤️💋👨🏽 | kiss: woman, man, light skin tone, medium skin tone | A woman and a man are kissing, the woman has light skin tone and the man has medium skin tone, both appear loving. |
| 👩🏻❤️💋👨🏾 | kiss: woman, man, light skin tone, medium-dark skin tone | A woman and a man are kissing, the woman has light skin tone and the man has medium-dark skin tone, both express joy. |
| 👩🏻❤️💋👨🏿 | kiss: woman, man, light skin tone, dark skin tone | A woman and a man are kissing, the woman has light skin tone and the man has dark skin tone, both look affectionate. |
| 👩🏼❤️💋👨🏻 | kiss: woman, man, medium-light skin tone, light skin tone | A woman and a man are kissing, the woman has medium-light skin tone and the man has light skin tone, both smile softly. |
| 👩🏼❤️💋👨🏼 | kiss: woman, man, medium-light skin tone | A woman and a man are kissing, both have medium-light skin tones, showing warmth and affection. |
| 👩🏼❤️💋👨🏽 | kiss: woman, man, medium-light skin tone, medium skin tone | A woman and a man are kissing, the woman has medium-light skin tone and the man has medium skin tone, both appear joyful. |
| 👩🏼❤️💋👨🏾 | kiss: woman, man, medium-light skin tone, medium-dark skin tone | A woman and a man are kissing, the woman has medium-light skin tone and the man has medium-dark skin tone, both express tenderness. |
| 👩🏼❤️💋👨🏿 | kiss: woman, man, medium-light skin tone, dark skin tone | A woman and a man are kissing, the woman has medium-light skin tone and the man has dark skin tone, both look affectionate. |
| 👩🏽❤️💋👨🏻 | kiss: woman, man, medium skin tone, light skin tone | A woman and a man are kissing, the woman has medium skin tone and the man has light skin tone, both have gentle smiles. |
| 👩🏽❤️💋👨🏼 | kiss: woman, man, medium skin tone, medium-light skin tone | A woman and a man are kissing, the woman has medium skin tone and the man has medium-light skin tone, both appear happy. |
| 👩🏽❤️💋👨🏽 | kiss: woman, man, medium skin tone | A woman and a man are kissing, both have medium skin tones, showing affection and joy. |
| 👩🏽❤️💋👨🏾 | kiss: woman, man, medium skin tone, medium-dark skin tone | A woman and a man are kissing, the woman has medium skin tone and the man has medium-dark skin tone, both express warmth. |
| 👩🏽❤️💋👨🏿 | kiss: woman, man, medium skin tone, dark skin tone | A woman and a man are kissing, the woman has medium skin tone and the man has dark skin tone, both look loving. |
| 👩🏾❤️💋👨🏻 | kiss: woman, man, medium-dark skin tone, light skin tone | A woman and a man are kissing, the woman has medium-dark skin tone and the man has light skin tone, both smile gently. |
| 👩🏾❤️💋👨🏼 | kiss: woman, man, medium-dark skin tone, medium-light skin tone | A woman and a man are kissing, the woman has medium-dark skin tone and the man has medium-light skin tone, both appear joyful. |
| 👩🏾❤️💋👨🏽 | kiss: woman, man, medium-dark skin tone, medium skin tone | A woman and a man are kissing, the woman has medium-dark skin tone and the man has medium skin tone, both express affection. |
| 👩🏾❤️💋👨🏾 | kiss: woman, man, medium-dark skin tone | A woman and a man are kissing, both have medium-dark skin tones, showing warmth and intimacy. |
| 👩🏾❤️💋👨🏿 | kiss: woman, man, medium-dark skin tone, dark skin tone | A woman and a man are kissing, the woman has medium-dark skin tone and the man has dark skin tone, both look affectionate. |
| 👩🏿❤️💋👨🏻 | kiss: woman, man, dark skin tone, light skin tone | A woman and a man are kissing, the woman has dark skin tone and the man has light skin tone, both smile softly. |
| 👩🏿❤️💋👨🏼 | kiss: woman, man, dark skin tone, medium-light skin tone | A woman and a man are kissing, the woman has dark skin tone and the man has medium-light skin tone, both appear happy. |
| 👩🏿❤️💋👨🏽 | kiss: woman, man, dark skin tone, medium skin tone | A woman and a man are kissing, the woman has dark skin tone and the man has medium skin tone, both express joy. |
| 👩🏿❤️💋👨🏾 | kiss: woman, man, dark skin tone, medium-dark skin tone | A woman and a man are kissing, the woman has dark skin tone and the man has medium-dark skin tone, both show tenderness. |
| 👩🏿❤️💋👨🏿 | kiss: woman, man, dark skin tone | A woman and a man are kissing, both have dark skin tones, expressing love and affection. |
| 👨❤️💋👨 | kiss: man, man | Two men are kissing, both have neutral expressions and appear intimate. |
| 👨🏻❤️💋👨🏻 | kiss: man, man, light skin tone | Two men are kissing, both with light skin tones, showing affection with gentle smiles. |
| 👨🏻❤️💋👨🏼 | kiss: man, man, light skin tone, medium-light skin tone | Two men are kissing, with one having light skin and the other medium-light skin, both smiling gently. |
| 👨🏻❤️💋👨🏽 | kiss: man, man, light skin tone, medium skin tone | Two men are kissing, featuring one with light skin and the other with medium skin tone, both appearing affectionate. |
| 👨🏻❤️💋👨🏾 | kiss: man, man, light skin tone, medium-dark skin tone | Two men are kissing, one with light skin and the other with medium-dark skin, sharing a tender moment. |
| 👨🏻❤️💋👨🏿 | kiss: man, man, light skin tone, dark skin tone | Two men are kissing, with one having light skin and the other dark skin, both looking loving. |
| 👨🏼❤️💋👨🏻 | kiss: man, man, medium-light skin tone, light skin tone | Two men are kissing, one with medium-light skin and the other with light skin, both displaying warmth. |
| 👨🏼❤️💋👨🏼 | kiss: man, man, medium-light skin tone | Two men are kissing, both having medium-light skin tones, radiating affection. |
| 👨🏼❤️💋👨🏽 | kiss: man, man, medium-light skin tone, medium skin tone | Two men are kissing, with one having medium-light skin and the other medium skin, both appearing joyful. |
| 👨🏼❤️💋👨🏾 | kiss: man, man, medium-light skin tone, medium-dark skin tone | Two men are kissing, featuring one with medium-light skin and the other with medium-dark skin, both looking content. |
| 👨🏼❤️💋👨🏿 | kiss: man, man, medium-light skin tone, dark skin tone | Two men are kissing, one with medium-light skin and the other dark skin, showcasing love. |
| 👨🏽❤️💋👨🏻 | kiss: man, man, medium skin tone, light skin tone | Two men are kissing, one with medium skin and the other with light skin, both smiling sweetly. |
| 👨🏽❤️💋👨🏼 | kiss: man, man, medium skin tone, medium-light skin tone | Two men are kissing, featuring one with medium skin and the other with medium-light skin, both looking affectionate. |
| 👨🏽❤️💋👨🏽 | kiss: man, man, medium skin tone | Two men are kissing, both having medium skin tones, radiating warmth and love. |
| 👨🏽❤️💋👨🏾 | kiss: man, man, medium skin tone, medium-dark skin tone | Two men are kissing, one with medium skin and the other with medium-dark skin, both appearing happy. |
| 👨🏽❤️💋👨🏿 | kiss: man, man, medium skin tone, dark skin tone | Two men are kissing, one with medium skin and the other dark skin, both showing affection. |
| 👨🏾❤️💋👨🏻 | kiss: man, man, medium-dark skin tone, light skin tone | Two men are kissing, one with medium-dark skin and the other with light skin, both smiling gently. |
| 👨🏾❤️💋👨🏼 | kiss: man, man, medium-dark skin tone, medium-light skin tone | Two men are kissing, with one having medium-dark skin and the other medium-light skin, both looking loving. |
| 👨🏾❤️💋👨🏽 | kiss: man, man, medium-dark skin tone, medium skin tone | Two men are kissing, featuring one with medium-dark skin and the other with medium skin, both appearing affectionate. |
| 👨🏾❤️💋👨🏾 | kiss: man, man, medium-dark skin tone | Two men are kissing, both having medium-dark skin tones, radiating warmth. |
| 👨🏾❤️💋👨🏿 | kiss: man, man, medium-dark skin tone, dark skin tone | Two men are kissing, one with medium-dark skin and the other dark skin, both showcasing love. |
| 👨🏿❤️💋👨🏻 | kiss: man, man, dark skin tone, light skin tone | Two men are kissing, one with dark skin and the other with light skin, both smiling sweetly. |
| 👨🏿❤️💋👨🏼 | kiss: man, man, dark skin tone, medium-light skin tone | Two men are kissing, one with dark skin and the other with medium-light skin, both looking affectionate. |
| 👨🏿❤️💋👨🏽 | kiss: man, man, dark skin tone, medium skin tone | Two men are kissing, one with dark skin and the other with medium skin, both appearing loving. |
| 👨🏿❤️💋👨🏾 | kiss: man, man, dark skin tone, medium-dark skin tone | Two men are kissing, one with dark skin and the other medium-dark skin, both radiating warmth. |
| 👨🏿❤️💋👨🏿 | kiss: man, man, dark skin tone | Two men are kissing, both having dark skin tones, showcasing affection. |
| 👩❤️💋👩 | kiss: woman, woman | Two women are kissing, both smiling gently and looking affectionate. |
| 👩🏻❤️💋👩🏻 | kiss: woman, woman, light skin tone | Two women are kissing, both with light skin tones, radiating warmth and love. |
| 👩🏻❤️💋👩🏼 | kiss: woman, woman, light skin tone, medium-light skin tone | Two women are kissing, one with light skin and the other with medium-light skin, both appearing joyful. |
| 👩🏻❤️💋👩🏽 | kiss: woman, woman, light skin tone, medium skin tone | Two women are kissing, one with light skin and the other with medium skin, both looking affectionate. |
| 👩🏻❤️💋👩🏾 | kiss: woman, woman, light skin tone, medium-dark skin tone | Two women are kissing, one with light skin and the other with medium-dark skin, both smiling sweetly. |
| 👩🏻❤️💋👩🏿 | kiss: woman, woman, light skin tone, dark skin tone | Two women are kissing, one with light skin and the other with dark skin, both showcasing love. |
| 👩🏼❤️💋👩🏻 | kiss: woman, woman, medium-light skin tone, light skin tone | Two women are kissing, one with medium-light skin and the other with light skin, both radiating affection. |
| 👩🏼❤️💋👩🏼 | kiss: woman, woman, medium-light skin tone | Two women are kissing, both having medium-light skin tones, looking loving. |
| 👩🏼❤️💋👩🏽 | kiss: woman, woman, medium-light skin tone, medium skin tone | Two women are kissing, one with medium-light skin and the other with medium skin, both appearing joyful. |
| 👩🏼❤️💋👩🏾 | kiss: woman, woman, medium-light skin tone, medium-dark skin tone | Two women are kissing, one with medium-light skin and the other with medium-dark skin, both smiling gently. |
| 👩🏼❤️💋👩🏿 | kiss: woman, woman, medium-light skin tone, dark skin tone | Two women are kissing, one with medium-light skin and the other with dark skin, both looking affectionate. |
| 👩🏽❤️💋👩🏻 | kiss: woman, woman, medium skin tone, light skin tone | Two women are kissing, one with medium skin and the other with light skin, both radiating warmth. |
| 👩🏽❤️💋👩🏼 | kiss: woman, woman, medium skin tone, medium-light skin tone | Two women are kissing, one with medium skin and the other with medium-light skin, both appearing loving. |
| 👩🏽❤️💋👩🏽 | kiss: woman, woman, medium skin tone | Two women are kissing, both having medium skin tones, showcasing affection. |
| 👩🏽❤️💋👩🏾 | kiss: woman, woman, medium skin tone, medium-dark skin tone | Two women are kissing, one with medium skin and the other with medium-dark skin, both smiling sweetly. |
| 👩🏽❤️💋👩🏿 | kiss: woman, woman, medium skin tone, dark skin tone | Two women are kissing, one with medium skin and the other dark skin, both looking affectionate. |
| 👩🏾❤️💋👩🏻 | kiss: woman, woman, medium-dark skin tone, light skin tone | Two women are kissing, one has medium-dark skin and the other has light skin, both are smiling gently. |
| 👩🏾❤️💋👩🏼 | kiss: woman, woman, medium-dark skin tone, medium-light skin tone | Two women are kissing, one has medium-dark skin and the other has medium-light skin, both appear joyful. |
| 👩🏾❤️💋👩🏽 | kiss: woman, woman, medium-dark skin tone, medium skin tone | Two women are kissing, one has medium-dark skin and the other has medium skin, both share a loving expression. |
| 👩🏾❤️💋👩🏾 | kiss: woman, woman, medium-dark skin tone | Two women are kissing, both have medium-dark skin and are smiling affectionately. |
| 👩🏾❤️💋👩🏿 | kiss: woman, woman, medium-dark skin tone, dark skin tone | Two women are kissing, one has medium-dark skin and the other has dark skin, both look happy. |
| 👩🏿❤️💋👩🏻 | kiss: woman, woman, dark skin tone, light skin tone | Two women are kissing, one has dark skin and the other has light skin, both are smiling warmly. |
| 👩🏿❤️💋👩🏼 | kiss: woman, woman, dark skin tone, medium-light skin tone | Two women are kissing, one has dark skin and the other has medium-light skin, both appear content. |
| 👩🏿❤️💋👩🏽 | kiss: woman, woman, dark skin tone, medium skin tone | Two women are kissing, one has dark skin and the other has medium skin, both look lovingly at each other. |
| 👩🏿❤️💋👩🏾 | kiss: woman, woman, dark skin tone, medium-dark skin tone | Two women are kissing, both have dark skin, sharing a sweet moment together. |
| 👩🏿❤️💋👩🏿 | kiss: woman, woman, dark skin tone | Two women are kissing, both have dark skin and are expressing affection with smiles. |
| 💑 | couple with heart | A couple stands together, both facing forward with a heart between them, symbolizing love. |
| 💑🏻 | couple with heart: light skin tone | A couple with light skin tones stands together, a heart symbolizing their love between them. |
| 💑🏼 | couple with heart: medium-light skin tone | A couple with medium-light skin tones stands side by side, a heart symbolizing their connection between them. |
| 💑🏽 | couple with heart: medium skin tone | A couple with medium skin tones stands together, a heart representing their love placed between them. |
| 💑🏾 | couple with heart: medium-dark skin tone | A couple with medium-dark skin tones stands closely together, a heart symbolizing their affection between them. |
| 💑🏿 | couple with heart: dark skin tone | A couple with dark skin tones stands together, a heart symbolizing their bond placed between them. |
| 🧑🏻❤️🧑🏼 | couple with heart: person, person, light skin tone, medium-light skin tone | Two people stand closely together, one with light skin and the other with medium-light skin, a heart symbolizing their love between them. |
| 🧑🏻❤️🧑🏽 | couple with heart: person, person, light skin tone, medium skin tone | Two people stand together, one with light skin and the other with medium skin, a heart representing their affection between them. |
| 🧑🏻❤️🧑🏾 | couple with heart: person, person, light skin tone, medium-dark skin tone | Two people stand together, one with light skin and the other with medium-dark skin, a heart symbolizing their connection between them. |
| 🧑🏻❤️🧑🏿 | couple with heart: person, person, light skin tone, dark skin tone | Two people stand closely, one with light skin and the other with dark skin, a heart representing their love between them. |
| 🧑🏼❤️🧑🏻 | couple with heart: person, person, medium-light skin tone, light skin tone | Two people stand together, one with medium-light skin and the other with light skin, a heart symbolizing their affection between them. |
| 🧑🏼❤️🧑🏽 | couple with heart: person, person, medium-light skin tone, medium skin tone | Two people stand closely, one with medium-light skin and the other with medium skin, a heart representing their bond between them. |
| 🧑🏼❤️🧑🏾 | couple with heart: person, person, medium-light skin tone, medium-dark skin tone | Two people stand together, one with medium-light skin and the other with medium-dark skin, a heart symbolizing their love between them. |
| 🧑🏼❤️🧑🏿 | couple with heart: person, person, medium-light skin tone, dark skin tone | Two people stand closely, one with medium-light skin and the other with dark skin, a heart representing their connection between them. |
| 🧑🏽❤️🧑🏻 | couple with heart: person, person, medium skin tone, light skin tone | Two people stand together, one with medium skin and the other with light skin, a heart symbolizing their affection between them. |
| 🧑🏽❤️🧑🏼 | couple with heart: person, person, medium skin tone, medium-light skin tone | Two people stand closely, one with medium skin and the other with medium-light skin, a heart representing their bond between them. |
| 🧑🏽❤️🧑🏾 | couple with heart: person, person, medium skin tone, medium-dark skin tone | Two people stand together, one with medium skin and the other with medium-dark skin, a heart symbolizing their love between them. |
| 🧑🏽❤️🧑🏿 | couple with heart: person, person, medium skin tone, dark skin tone | Two people stand closely, one with medium skin and the other with dark skin, a heart representing their connection between them. |
| 🧑🏾❤️🧑🏻 | couple with heart: person, person, medium-dark skin tone, light skin tone | Two people stand together, one with medium-dark skin and the other with light skin, a heart symbolizing their affection between them. |
| 🧑🏾❤️🧑🏼 | couple with heart: person, person, medium-dark skin tone, medium-light skin tone | Two people stand closely, one with medium-dark skin and the other with medium-light skin, a heart representing their bond between them. |
| 🧑🏾❤️🧑🏽 | couple with heart: person, person, medium-dark skin tone, medium skin tone | Two people stand together, one with medium-dark skin and the other with medium skin, a heart symbolizing their love between them. |
| 🧑🏾❤️🧑🏿 | couple with heart: person, person, medium-dark skin tone, dark skin tone | Two people stand closely, one with medium-dark skin and the other with dark skin, a heart representing their connection between them. |
| 🧑🏿❤️🧑🏻 | couple with heart: person, person, dark skin tone, light skin tone | Two people stand together, one with dark skin and the other with light skin, a heart symbolizing their affection between them. |
| 🧑🏿❤️🧑🏼 | couple with heart: person, person, dark skin tone, medium-light skin tone | Two people stand closely, one with dark skin and the other with medium-light skin, a heart representing their bond between them. |
| 🧑🏿❤️🧑🏽 | couple with heart: person, person, dark skin tone, medium skin tone | Two people stand together, one with dark skin and the other with medium skin, a heart symbolizing their love between them. |
| 🧑🏿❤️🧑🏾 | couple with heart: person, person, dark skin tone, medium-dark skin tone | Two people stand closely, one with dark skin and the other with medium-dark skin, a heart representing their connection between them. |
| 👩❤️👨 | couple with heart: woman, man | A woman and a man stand together, facing forward with a heart between them, symbolizing their love. |
| 👩🏻❤️👨🏻 | couple with heart: woman, man, light skin tone | A woman with light skin and a man with light skin stand together, a heart symbolizing their affection between them. |
| 👩🏻❤️👨🏼 | couple with heart: woman, man, light skin tone, medium-light skin tone | A woman with light skin and a man with medium-light skin stand closely, a heart representing their bond between them. |
| 👩🏻❤️👨🏽 | couple with heart: woman, man, light skin tone, medium skin tone | A woman with light skin and a man with medium skin stand together, a heart symbolizing their love placed between them. |
| 👩🏻❤️👨🏾 | couple with heart: woman, man, light skin tone, medium-dark skin tone | A woman with light skin tone and a man with medium-dark skin tone are facing each other, both smiling, with a red heart symbol between them. |
| 👩🏻❤️👨🏿 | couple with heart: woman, man, light skin tone, dark skin tone | A woman with light skin tone and a man with dark skin tone are gazing at each other, both smiling, with a red heart symbol connecting them. |
| 👩🏼❤️👨🏻 | couple with heart: woman, man, medium-light skin tone, light skin tone | A woman with medium-light skin tone and a man with light skin tone are looking at each other, both smiling, with a red heart symbol between them. |
| 👩🏼❤️👨🏼 | couple with heart: woman, man, medium-light skin tone | A woman and a man, both with medium-light skin tones, are smiling at each other with a red heart symbol between them. |
| 👩🏼❤️👨🏽 | couple with heart: woman, man, medium-light skin tone, medium skin tone | A woman with medium-light skin tone and a man with medium skin tone are smiling at each other, with a red heart symbol connecting them. |
| 👩🏼❤️👨🏾 | couple with heart: woman, man, medium-light skin tone, medium-dark skin tone | A woman with medium-light skin tone and a man with medium-dark skin tone are facing each other, both smiling, with a red heart symbol between them. |
| 👩🏼❤️👨🏿 | couple with heart: woman, man, medium-light skin tone, dark skin tone | A woman with medium-light skin tone and a man with dark skin tone are looking at each other, both smiling, with a red heart symbol connecting them. |
| 👩🏽❤️👨🏻 | couple with heart: woman, man, medium skin tone, light skin tone | A woman with medium skin tone and a man with light skin tone are smiling at each other, with a red heart symbol between them. |
| 👩🏽❤️👨🏼 | couple with heart: woman, man, medium skin tone, medium-light skin tone | A woman with medium skin tone and a man with medium-light skin tone are gazing at each other, both smiling, with a red heart symbol connecting them. |
| 👩🏽❤️👨🏽 | couple with heart: woman, man, medium skin tone | A woman and a man, both with medium skin tones, are smiling at each other with a red heart symbol between them. |
| 👩🏽❤️👨🏾 | couple with heart: woman, man, medium skin tone, medium-dark skin tone | A woman with medium skin tone and a man with medium-dark skin tone are facing each other, both smiling, with a red heart symbol connecting them. |
| 👩🏽❤️👨🏿 | couple with heart: woman, man, medium skin tone, dark skin tone | A woman with medium skin tone and a man with dark skin tone are looking at each other, both smiling, with a red heart symbol between them. |
| 👩🏾❤️👨🏻 | couple with heart: woman, man, medium-dark skin tone, light skin tone | A woman with medium-dark skin tone and a man with light skin tone are smiling at each other, with a red heart symbol between them. |
| 👩🏾❤️👨🏼 | couple with heart: woman, man, medium-dark skin tone, medium-light skin tone | A woman with medium-dark skin tone and a man with medium-light skin tone are gazing at each other, both smiling, with a red heart symbol connecting them. |
| 👩🏾❤️👨🏽 | couple with heart: woman, man, medium-dark skin tone, medium skin tone | A woman with medium-dark skin tone and a man with medium skin tone are smiling at each other, with a red heart symbol between them. |
| 👩🏾❤️👨🏾 | couple with heart: woman, man, medium-dark skin tone | A woman and a man, both with medium-dark skin tones, are looking at each other with a red heart symbol between them. |
| 👩🏾❤️👨🏿 | couple with heart: woman, man, medium-dark skin tone, dark skin tone | A woman with medium-dark skin tone and a man with dark skin tone are smiling at each other, with a red heart symbol connecting them. |
| 👩🏿❤️👨🏻 | couple with heart: woman, man, dark skin tone, light skin tone | A woman with dark skin tone and a man with light skin tone are facing each other, both smiling, with a red heart symbol between them. |
| 👩🏿❤️👨🏼 | couple with heart: woman, man, dark skin tone, medium-light skin tone | A woman with dark skin tone and a man with medium-light skin tone are gazing at each other, both smiling, with a red heart symbol connecting them. |
| 👩🏿❤️👨🏽 | couple with heart: woman, man, dark skin tone, medium skin tone | A woman with dark skin tone and a man with medium skin tone are smiling at each other, with a red heart symbol between them. |
| 👩🏿❤️👨🏾 | couple with heart: woman, man, dark skin tone, medium-dark skin tone | A woman with dark skin tone and a man with medium-dark skin tone are looking at each other, both smiling, with a red heart symbol connecting them. |
| 👩🏿❤️👨🏿 | couple with heart: woman, man, dark skin tone | A woman and a man, both with dark skin tones, are smiling at each other with a red heart symbol between them. |
| 👨❤️👨 | couple with heart: man, man | Two men are facing each other, both smiling, with a red heart symbol between them. |
| 👨🏻❤️👨🏻 | couple with heart: man, man, light skin tone | Two men with light skin tones are smiling at each other, with a red heart symbol connecting them. |
| 👨🏻❤️👨🏼 | couple with heart: man, man, light skin tone, medium-light skin tone | A man with light skin tone and a man with medium-light skin tone are looking at each other, both smiling, with a red heart symbol between them. |
| 👨🏻❤️👨🏽 | couple with heart: man, man, light skin tone, medium skin tone | A man with light skin tone and a man with medium skin tone are smiling at each other, with a red heart symbol connecting them. |
| 👨🏻❤️👨🏾 | couple with heart: man, man, light skin tone, medium-dark skin tone | A man with light skin tone and a man with medium-dark skin tone are gazing at each other, both smiling, with a red heart symbol between them. |
| 👨🏻❤️👨🏿 | couple with heart: man, man, light skin tone, dark skin tone | A man with light skin tone and a man with dark skin tone are smiling at each other, with a red heart symbol connecting them. |
| 👨🏼❤️👨🏻 | couple with heart: man, man, medium-light skin tone, light skin tone | A man with medium-light skin tone and a man with light skin tone are smiling at each other, with a red heart symbol between them. |
| 👨🏼❤️👨🏼 | couple with heart: man, man, medium-light skin tone | Two men with medium-light skin tones are looking at each other, both smiling, with a red heart symbol connecting them. |
| 👨🏼❤️👨🏽 | couple with heart: man, man, medium-light skin tone, medium skin tone | A man with medium-light skin tone and a man with medium skin tone are smiling at each other, with a red heart symbol between them. |
| 👨🏼❤️👨🏾 | couple with heart: man, man, medium-light skin tone, medium-dark skin tone | A man with medium-light skin tone and a man with medium-dark skin tone are gazing at each other, both smiling, with a red heart symbol connecting them. |
| 👨🏼❤️👨🏿 | couple with heart: man, man, medium-light skin tone, dark skin tone | A man with medium-light skin tone and a man with dark skin tone are smiling at each other, with a red heart symbol between them. |
| 👨🏽❤️👨🏻 | couple with heart: man, man, medium skin tone, light skin tone | A man with medium skin tone and a man with light skin tone are looking at each other, both smiling, with a red heart symbol connecting them. |
| 👨🏽❤️👨🏼 | couple with heart: man, man, medium skin tone, medium-light skin tone | A man with medium skin tone and a man with medium-light skin tone are smiling at each other, with a red heart symbol between them. |
| 👨🏽❤️👨🏽 | couple with heart: man, man, medium skin tone | Two men with medium skin tones are gazing at each other, both smiling, with a red heart symbol connecting them. |
| 👨🏽❤️👨🏾 | couple with heart: man, man, medium skin tone, medium-dark skin tone | A man with medium skin tone and a man with medium-dark skin tone are smiling at each other, with a red heart symbol between them. |
| 👨🏽❤️👨🏿 | couple with heart: man, man, medium skin tone, dark skin tone | A man with medium skin tone and a man with dark skin tone are looking at each other, both smiling, with a red heart symbol connecting them. |
| 👨🏾❤️👨🏻 | couple with heart: man, man, medium-dark skin tone, light skin tone | A man with medium-dark skin tone and a man with light skin tone are smiling at each other, with a red heart symbol between them. |
| 👨🏾❤️👨🏼 | couple with heart: man, man, medium-dark skin tone, medium-light skin tone | A man with medium-dark skin tone and a man with medium-light skin tone are gazing at each other, both smiling, with a red heart symbol connecting them. |
| 👨🏾❤️👨🏽 | couple with heart: man, man, medium-dark skin tone, medium skin tone | Two men are embracing each other, one with medium-dark skin tone and the other with medium skin tone, surrounded by a heart symbol. |
| 👨🏾❤️👨🏾 | couple with heart: man, man, medium-dark skin tone | Two men with medium-dark skin tones are holding each other close, with a heart symbol between them. |
| 👨🏾❤️👨🏿 | couple with heart: man, man, medium-dark skin tone, dark skin tone | Two men are shown together, one with medium-dark skin tone and the other with dark skin tone, both connected by a heart symbol. |
| 👨🏿❤️👨🏻 | couple with heart: man, man, dark skin tone, light skin tone | A heart connects two men, one with dark skin tone and the other with light skin tone, as they lean towards each other. |
| 👨🏿❤️👨🏼 | couple with heart: man, man, dark skin tone, medium-light skin tone | Two men are depicted, one with dark skin tone and the other with medium-light skin tone, sharing a heart symbol between them. |
| 👨🏿❤️👨🏽 | couple with heart: man, man, dark skin tone, medium skin tone | A heart symbolizes the bond between two men, one with dark skin tone and the other with medium skin tone. |
| 👨🏿❤️👨🏾 | couple with heart: man, man, dark skin tone, medium-dark skin tone | Two men, one with dark skin tone and the other with medium-dark skin tone, are shown together with a heart symbol. |
| 👨🏿❤️👨🏿 | couple with heart: man, man, dark skin tone | Two men with dark skin tones are embracing, connected by a heart symbol. |
| 👩❤️👩 | couple with heart: woman, woman | Two women are depicted embracing each other, surrounded by a heart symbol. |
| 👩🏻❤️👩🏻 | couple with heart: woman, woman, light skin tone | Two women with light skin tones are holding each other close, connected by a heart symbol. |
| 👩🏻❤️👩🏼 | couple with heart: woman, woman, light skin tone, medium-light skin tone | A heart connects two women, one with light skin tone and the other with medium-light skin tone, as they lean towards each other. |
| 👩🏻❤️👩🏽 | couple with heart: woman, woman, light skin tone, medium skin tone | Two women are shown together, one with light skin tone and the other with medium skin tone, sharing a heart symbol. |
| 👩🏻❤️👩🏾 | couple with heart: woman, woman, light skin tone, medium-dark skin tone | A heart symbolizes the bond between two women, one with light skin tone and the other with medium-dark skin tone. |
| 👩🏻❤️👩🏿 | couple with heart: woman, woman, light skin tone, dark skin tone | Two women, one with light skin tone and the other with dark skin tone, are depicted together with a heart symbol. |
| 👩🏼❤️👩🏻 | couple with heart: woman, woman, medium-light skin tone, light skin tone | A heart connects two women, one with medium-light skin tone and the other with light skin tone, as they embrace. |
| 👩🏼❤️👩🏼 | couple with heart: woman, woman, medium-light skin tone | Two women with medium-light skin tones are shown embracing, surrounded by a heart symbol. |
| 👩🏼❤️👩🏽 | couple with heart: woman, woman, medium-light skin tone, medium skin tone | A heart connects two women, one with medium-light skin tone and the other with medium skin tone, as they lean towards each other. |
| 👩🏼❤️👩🏾 | couple with heart: woman, woman, medium-light skin tone, medium-dark skin tone | Two women are depicted, one with medium-light skin tone and the other with medium-dark skin tone, sharing a heart symbol. |
| 👩🏼❤️👩🏿 | couple with heart: woman, woman, medium-light skin tone, dark skin tone | A heart symbolizes the bond between two women, one with medium-light skin tone and the other with dark skin tone. |
| 👩🏽❤️👩🏻 | couple with heart: woman, woman, medium skin tone, light skin tone | A heart connects two women, one with medium skin tone and the other with light skin tone, as they embrace. |
| 👩🏽❤️👩🏼 | couple with heart: woman, woman, medium skin tone, medium-light skin tone | Two women are shown together, one with medium skin tone and the other with medium-light skin tone, surrounded by a heart symbol. |
| 👩🏽❤️👩🏽 | couple with heart: woman, woman, medium skin tone | Two women with medium skin tones are depicted embracing, connected by a heart symbol. |
| 👩🏽❤️👩🏾 | couple with heart: woman, woman, medium skin tone, medium-dark skin tone | A heart connects two women, one with medium skin tone and the other with medium-dark skin tone, as they lean towards each other. |
| 👩🏽❤️👩🏿 | couple with heart: woman, woman, medium skin tone, dark skin tone | Two women are shown together, one with medium skin tone and the other with dark skin tone, sharing a heart symbol. |
| 👩🏾❤️👩🏻 | couple with heart: woman, woman, medium-dark skin tone, light skin tone | A heart connects two women, one with medium-dark skin tone and the other with light skin tone, as they embrace. |
| 👩🏾❤️👩🏼 | couple with heart: woman, woman, medium-dark skin tone, medium-light skin tone | Two women are depicted, one with medium-dark skin tone and the other with medium-light skin tone, sharing a heart symbol. |
| 👩🏾❤️👩🏽 | couple with heart: woman, woman, medium-dark skin tone, medium skin tone | A heart symbolizes the bond between two women, one with medium-dark skin tone and the other with medium skin tone. |
| 👩🏾❤️👩🏾 | couple with heart: woman, woman, medium-dark skin tone | Two women with medium-dark skin tones are embracing, connected by a heart symbol. |
| 👩🏾❤️👩🏿 | couple with heart: woman, woman, medium-dark skin tone, dark skin tone | A heart connects two women, one with medium-dark skin tone and the other with dark skin tone, as they lean towards each other. |
| 👩🏿❤️👩🏻 | couple with heart: woman, woman, dark skin tone, light skin tone | Two women are depicted, one with dark skin tone and the other with light skin tone, sharing a heart symbol. |
| 👩🏿❤️👩🏼 | couple with heart: woman, woman, dark skin tone, medium-light skin tone | A heart connects two women, one with dark skin tone and the other with medium-light skin tone, as they embrace. |
| 👩🏿❤️👩🏽 | couple with heart: woman, woman, dark skin tone, medium skin tone | Two women are shown together, one with dark skin tone and the other with medium skin tone, surrounded by a heart symbol. |
| 👩🏿❤️👩🏾 | couple with heart: woman, woman, dark skin tone, medium-dark skin tone | A heart symbolizes the bond between two women, one with dark skin tone and the other with medium-dark skin tone. |
| 👩🏿❤️👩🏿 | couple with heart: woman, woman, dark skin tone | Two women with dark skin tones are embracing, connected by a heart symbol. |
| 👨👩👦 | family: man, woman, boy | A family unit is depicted with a man, a woman, and a boy, standing together. |
| 👨👩👧 | family: man, woman, girl | A family unit is shown with a man, a woman, and a girl, standing together. |
| 👨👩👧👦 | family: man, woman, girl, boy | A family of four is depicted, consisting of a man, a woman, a girl, and a boy, standing together. |
| 👨👩👦👦 | family: man, woman, boy, boy | A family unit is shown with a man, a woman, and two boys, standing together. |
| 👨👩👧👧 | family: man, woman, girl, girl | A family of four is depicted, consisting of a man, a woman, and two girls, standing together. |
| 👨👨👦 | family: man, man, boy | A family unit is depicted with two men and a boy, standing together. |
| 👨👨👧 | family: man, man, girl | Two men stand side by side, with a young girl between them, all depicted in a simple, cartoonish style. |
| 👨👨👧👦 | family: man, man, girl, boy | Two men are positioned next to each other, with a girl and a boy in front of them, representing a family group. |
| 👨👨👦👦 | family: man, man, boy, boy | Two men stand together, with two boys in front, forming a family unit in a playful, stylized manner. |
| 👨👨👧👧 | family: man, man, girl, girl | Two men are shown alongside two girls, creating a family scene with a cheerful vibe. |
| 👩👩👦 | family: woman, woman, boy | Two women are depicted together with a boy, symbolizing a family with a nurturing atmosphere. |
| 👩👩👧 | family: woman, woman, girl | Two women stand side by side, with a girl between them, representing a loving family dynamic. |
| 👩👩👧👦 | family: woman, woman, girl, boy | Two women are shown with a girl and a boy, illustrating a diverse family structure. |
| 👩👩👦👦 | family: woman, woman, boy, boy | Two women stand with two boys in front of them, creating a warm family portrait. |
| 👩👩👧👧 | family: woman, woman, girl, girl | Two women are depicted with two girls, forming a close-knit family image. |
| 👨👦 | family: man, boy | A man stands with a boy beside him, showcasing a father-son relationship. |
| 👨👦👦 | family: man, boy, boy | A man is shown with two boys, illustrating a family of three with a playful interaction. |
| 👨👧 | family: man, girl | A man stands with a girl, representing a father-daughter bond. |
| 👨👧👦 | family: man, girl, boy | A man is depicted with a girl and a boy, symbolizing a caring family environment. |
| 👨👧👧 | family: man, girl, girl | A man stands with two girls, showcasing a loving father-daughter relationship. |
| 👩👦 | family: woman, boy | A woman is depicted with a boy, representing a nurturing mother-son bond. |
| 👩👦👦 | family: woman, boy, boy | A woman is shown with two boys, illustrating a family unit with a playful atmosphere. |
| 👩👧 | family: woman, girl | A woman stands with a girl beside her, symbolizing a mother-daughter relationship. |
| 👩👧👦 | family: woman, girl, boy | A woman is depicted with a girl and a boy, representing a caring family dynamic. |
| 👩👧👧 | family: woman, girl, girl | A woman stands with two girls, showcasing a loving mother-daughter relationship. |
| 🗣️ | speaking head | A head with an open mouth suggests speaking or vocalizing, depicted in a simple, cartoon style. |
| 👤 | bust in silhouette | A silhouette of a person’s bust, with no distinct features, representing anonymity. |
| 👥 | busts in silhouette | Two silhouettes of people side by side, suggesting companionship or friendship. |
| 🫂 | people hugging | Two figures are shown embracing each other in a warm and comforting hug. |
| 👪 | family | A simple representation of a family unit, featuring two adults and a child. |
| 🧑🧑🧒 | family: adult, adult, child | Two adults stand together with a child, symbolizing a modern family structure. |
| 🧑🧑🧒🧒 | family: adult, adult, child, child | Two adults are depicted with two children, representing a larger family unit. |
| 🧑🧒 | family: adult, child | An adult stands with a child, illustrating a parent-child relationship. |
| 🧑🧒🧒 | family: adult, child, child | An adult is shown with two children, symbolizing a nurturing family dynamic. |
| 👣 | footprints | Two footprints are depicted side by side, suggesting movement or a journey. |
| | fingerprint | A detailed fingerprint is shown, representing identity or forensic evidence. |
Animals & Nature (159)
| Emoji | Name | Description |
|---|---|---|
| 🐵 | monkey face | A cartoonish monkey face with a round head, wide eyes, and a playful expression. |
| 🐒 | monkey | A playful monkey with a long tail and a cheerful demeanor, depicted in a simple style. |
| 🦍 | gorilla | A strong gorilla with a broad face and muscular build, showcasing its powerful presence. |
| 🦧 | orangutan | An orangutan with a round face and long limbs, depicted in a friendly and approachable manner. |
| 🐶 | dog face | A cute dog face with floppy ears, big eyes, and a friendly expression. |
| 🐕 | dog | A full-body depiction of a dog, standing upright and looking alert, with a wagging tail. |
| 🦮 | guide dog | A guide dog depicted in a standing position, symbolizing assistance and support. |
| 🐕🦺 | service dog | A service dog shown in a standing pose, representing support and companionship for those in need. |
| 🐩 | poodle | A fluffy poodle with a curly coat, depicted in a stylish and elegant manner. |
| 🐺 | wolf | A wolf with a sharp face and pointed ears, showcasing a fierce yet majestic expression. |
| 🦊 | fox | A small, orange fox with a white-tipped tail and a white underbelly, featuring pointed ears and a sly expression. |
| 🦝 | raccoon | A raccoon with gray fur, black markings around its eyes, and a bushy tail with black rings, looking curious and slightly mischievous. |
| 🐱 | cat face | A cute cat face with pointed ears, whiskers, and a small mouth, typically colored in shades of gray, brown, or orange. |
| 🐈 | cat | A full-bodied cat, often depicted in various colors, with a long tail and an alert posture, representing a domestic feline. |
| 🐈⬛ | black cat | A sleek black cat with bright eyes, sitting gracefully, embodying a mysterious and elegant demeanor. |
| 🦁 | lion | A majestic lion with a golden mane, fierce eyes, and a strong jaw, exuding a sense of power and authority. |
| 🐯 | tiger face | A tiger’s face featuring bold orange and black stripes, with piercing eyes and a fierce expression, showcasing its predatory nature. |
| 🐅 | tiger | A full-bodied tiger with striking orange fur and black stripes, poised and powerful, often depicted in a natural habitat. |
| 🐆 | leopard | A leopard with a spotted coat, showcasing a blend of yellow and black, embodying stealth and grace as it prowls. |
| 🐴 | horse face | A horse’s face with a long mane, large eyes, and a strong jaw, often depicted in brown or black, exuding strength and beauty. |
| 🫎 | moose | A large moose with impressive antlers, brown fur, and a long face, standing tall in a natural setting. |
| 🫏 | donkey | A donkey with long ears, a grayish-brown coat, and a gentle expression, often depicted with a slightly lowered head. |
| 🐎 | horse | A full-bodied horse, often shown in motion with a flowing mane and tail, representing grace and speed. |
| 🦄 | unicorn | A whimsical unicorn with a spiraled horn and a flowing mane, often depicted in pastel colors, symbolizing magic and rarity. |
| 🦓 | zebra | A zebra with distinctive black and white stripes, standing upright, showcasing its unique pattern and playful demeanor. |
| 🦌 | deer | A deer with a graceful posture, featuring large ears and a slender body, typically depicted in brown or tan tones. |
| 🦬 | bison | A bison with a shaggy brown coat and a massive build, often shown in a grazing position, symbolizing strength and resilience. |
| 🐮 | cow face | A cow’s face with large eyes, a broad nose, and black and white patches, often representing farm life. |
| 🐂 | ox | A strong bull with a muscular body, typically depicted with large horns and a sturdy stance, symbolizing power. |
| 🐃 | water buffalo | A water buffalo with a dark coat and large curved horns, often shown in a relaxed pose, representing farm life. |
| 🐄 | cow | A full-bodied cow, usually in black and white, standing calmly, representing agricultural life. |
| 🐷 | pig face | A pig’s face with a round snout, large ears, and a cheerful expression, often depicted in pink. |
| 🐖 | pig | A full-bodied pig, often shown in a playful stance with a curly tail, representing farm animals. |
| 🐗 | boar | A wild boar with coarse fur and sharp tusks, depicted in a rugged stance, symbolizing strength and wildness. |
| 🐽 | pig nose | A pig’s snout, round and flat, with nostrils, often depicted in pink, representing the animal’s playful nature. |
| 🐏 | ram | A ram with a thick, curly coat and large, spiraled horns, standing proudly, symbolizing strength and determination. |
| 🐑 | ewe | A fluffy ewe with a soft, white coat and a gentle expression, often depicted in a grazing position. |
| 🐐 | goat | A goat with a short coat, often shown with a playful demeanor and small horns, representing farm life. |
| 🐪 | camel | A camel with a single hump, featuring a light brown coat and long legs, often depicted in a desert setting. |
| 🐫 | two-hump camel | A two-hump camel with a sturdy build and a light brown coat, standing tall in a desert environment. |
| 🦙 | llama | A llama with a long neck and fluffy coat, often depicted in white or light brown, showcasing a calm demeanor. |
| 🦒 | giraffe | A tall giraffe with a long neck and distinctive brown spots, looking down with large, gentle eyes. |
| 🐘 | elephant | A large elephant with gray skin, big ears, and a long trunk, depicted in a majestic pose. |
| 🦣 | mammoth | A woolly mammoth with long, curved tusks and a thick coat, representing prehistoric strength. |
| 🦏 | rhinoceros | A rhinoceros with thick gray skin and a prominent horn, standing robustly, symbolizing power. |
| 🦛 | hippopotamus | A hippopotamus with a large, rounded body and a wide mouth, often depicted partially submerged in water. |
| 🐭 | mouse face | A small mouse face with large ears and a tiny nose, often depicted in gray or brown, looking curious. |
| 🐁 | mouse | A small mouse with a rounded body and long tail, often shown in a playful stance. |
| 🐀 | rat | A rat with a long tail and sharp features, typically depicted in gray or brown, representing urban wildlife. |
| 🐹 | hamster | A hamster with a round face and small ears, often shown with a cheerful expression, representing a pet. |
| 🐰 | rabbit face | A round-faced rabbit with large ears, soft white fur, and a gentle expression. |
| 🐇 | rabbit | A small rabbit with long ears and a fluffy tail, depicted in a hopping pose. |
| 🐿️ | chipmunk | A small chipmunk with brown and white stripes running down its back, looking alert. |
| 🦫 | beaver | A beaver with a broad, flat tail, brown fur, and prominent front teeth, often depicted sitting. |
| 🦔 | hedgehog | A hedgehog with a round body covered in spiky quills and a small, pointed face. |
| 🦇 | bat | A bat with outstretched wings, a rounded body, and a small face, often shown hanging upside down. |
| 🐻 | bear | A large bear with a broad face, dark brown fur, and a slightly open mouth, suggesting a growl. |
| 🐻❄️ | polar bear | A polar bear with white fur and a large, round head, often depicted standing on ice. |
| 🐨 | koala | A koala with large ears, a round face, and a nose, often shown clinging to a tree. |
| 🐼 | panda | A panda with black and white fur, round ears, and a gentle expression, often shown munching on bamboo. |
| 🦥 | sloth | A sloth with long limbs, a relaxed expression, and a slow, hanging pose from a tree branch. |
| 🦦 | otter | An otter with a sleek body, playful demeanor, and often depicted floating on its back. |
| 🦨 | skunk | A skunk with a black body and distinctive white stripes, often shown with a raised tail. |
| 🦘 | kangaroo | A kangaroo with strong hind legs, a long tail, and a pouch, depicted in a jumping pose. |
| 🦡 | badger | A badger with a stocky body, black and white facial markings, and a determined expression. |
| 🐾 | paw prints | Two paw prints showing the shape of animal paws, with rounded toes and a slight indentation. |
| 🦃 | turkey | A turkey with a rounded body, colorful fan of feathers, and a distinctive wattle. |
| 🐔 | chicken | A chicken with a rounded body, yellow feathers, and a small comb on its head. |
| 🐓 | rooster | A rooster with vibrant plumage, a prominent comb, and a proud stance. |
| 🐣 | hatching chick | A chick breaking out of an egg, with a small yellow body and a curious expression. |
| 🐤 | baby chick | A small, fluffy yellow chick with a round body and bright eyes. |
| 🐥 | front-facing baby chick | A baby chick facing forward, with soft yellow feathers and a tiny beak. |
| 🐦 | bird | A small bird with a rounded body and a short beak, often depicted in a perched position. |
| 🐧 | penguin | A penguin with a black and white body, flipper-like wings, and a waddling stance. |
| 🕊️ | dove | A dove with smooth white feathers and a gentle expression, often depicted in flight. |
| 🦅 | eagle | An eagle with a powerful beak, sharp eyes, and outstretched wings, soaring high. |
| 🦆 | duck | A duck with a rounded body, webbed feet, and a flat bill, often shown swimming. |
| 🦢 | swan | A swan with a long neck, elegant body, and white feathers, often gliding on water. |
| 🦉 | owl | An owl with large, round eyes, a flat face, and feathered tufts, often depicted perched. |
| 🦤 | dodo | A dodo, a large, flightless bird with a stout body, a hooked beak, and a curious expression. |
| 🪶 | feather | A feather with a delicate, elongated shape, often shown floating or resting. |
| 🦩 | flamingo | A flamingo with long legs, a curved neck, and bright pink feathers, often standing on one leg. |
| 🦚 | peacock | A peacock with a vibrant, colorful tail that fans out in an extravagant display. |
| 🦜 | parrot | A parrot with bright feathers, a curved beak, and a playful pose, often shown perched. |
| 🪽 | wing | A single bird wing with feathers, depicted in a graceful, upward position. |
| 🐦⬛ | black bird | A black bird with a sleek body and sharp beak, often depicted in a perched position. |
| 🪿 | goose | A goose with a long neck, rounded body, and webbed feet, often shown waddling. |
| 🐦🔥 | phoenix | A phoenix with fiery plumage, depicted in a dynamic pose, symbolizing rebirth. |
| 🐸 | frog | A frog with a smooth, green body, bulging eyes, and a wide mouth, often shown sitting. |
| 🐊 | crocodile | A crocodile with a long snout, scaly green skin, and sharp teeth, often depicted in water. |
| 🐢 | turtle | A green turtle with a rounded shell and a small head, looking slightly to the side. |
| 🦎 | lizard | A small, green lizard with a long body and a pointed snout, resting on a surface. |
| 🐍 | snake | A long, coiled snake with smooth scales, typically depicted in green or brown, with a forked tongue flicking out. |
| 🐲 | dragon face | A dragon face with large, pointed ears, sharp teeth, and fierce red eyes, often depicted with a scaly texture. |
| 🐉 | dragon | A full-bodied dragon with a long tail, large wings, and a fierce expression, often shown in shades of green or red. |
| 🦕 | sauropod | A long-necked dinosaur, resembling a sauropod, with a large body and a gentle expression, typically in green. |
| 🦖 | T-Rex | A small, ferocious T-Rex with tiny arms and a wide mouth filled with sharp teeth, usually depicted in green or brown. |
| 🐳 | spouting whale | A large, dark blue whale with a rounded body and a spout of water shooting from its blowhole. |
| 🐋 | whale | A massive whale with a smooth, dark blue body, floating gracefully in the ocean. |
| 🐬 | dolphin | A sleek, playful dolphin with a curved dorsal fin and a friendly smile, typically shown in shades of blue or gray. |
| 🦭 | seal | A rounded seal with a smooth, gray body and whiskers, often shown lounging on a rock. |
| 🐟 | fish | A simple fish shape with a pointed head and a forked tail, usually depicted in bright colors. |
| 🐠 | tropical fish | A vibrant tropical fish with a rounded body and colorful patterns, often shown in shades of orange and blue. |
| 🐡 | blowfish | A round, puffy blowfish with large eyes and a small mouth, often depicted with a spiky texture. |
| 🦈 | shark | A sleek shark with a pointed snout and a prominent dorsal fin, typically shown in gray. |
| 🐙 | octopus | An octopus with a bulbous head and eight long, flexible arms, often depicted in purple or blue. |
| 🐚 | spiral shell | A spiral-shaped shell with a smooth surface, often shown in shades of beige and brown. |
| 🪸 | coral | A colorful coral structure resembling branching fingers, often depicted in shades of pink or orange. |
| 🪼 | jellyfish | A translucent jellyfish with a bell-shaped body and trailing tentacles, usually shown in light blue or pink. |
| 🦀 | crab | A crab with a hard shell, two large claws, and a sideways stance, typically in shades of red or brown. |
| 🦞 | lobster | A lobster with large claws and a long body, often depicted in bright red, resembling a cooked lobster. |
| 🦐 | shrimp | A small shrimp with a curved body and long antennae, often shown in pink or orange. |
| 🦑 | squid | A squid with a bulbous head and long tentacles, typically depicted in shades of purple or blue. |
| 🦪 | oyster | An oyster with a rough, irregular shell, often shown partially open to reveal a pearl inside. |
| 🐌 | snail | A snail with a coiled shell and a soft, elongated body, typically depicted in light brown or beige. |
| 🦋 | butterfly | A butterfly with colorful wings, often shown in vibrant patterns of blue, orange, and yellow. |
| 🐛 | bug | A small caterpillar with a segmented body and tiny legs, usually depicted in green. |
| 🐜 | ant | A small black ant with a segmented body and six legs, typically shown in a crawling position. |
| 🐝 | honeybee | A fuzzy honeybee with yellow and black stripes, large wings, and a stinger, often depicted in a hovering position. |
| 🪲 | beetle | A beetle with a shiny, rounded body and antennae, typically shown in dark colors. |
| 🐞 | lady beetle | A ladybug with a round, red body and black spots, often depicted with tiny legs and antennae. |
| 🦗 | cricket | A cricket with long antennae and large hind legs, typically shown in a green or brown color. |
| 🪳 | cockroach | A cockroach with a flat, oval body and long antennae, often depicted in dark brown. |
| 🕷️ | spider | A spider with eight long legs and a small body, often shown in black or brown. |
| 🕸️ | spider web | A spider web with intricate, delicate strands forming a circular pattern. |
| 🦂 | scorpion | A scorpion with a curved tail and pincers, often depicted in dark brown or black. |
| 🦟 | mosquito | A mosquito with a slender body, long legs, and a pointed proboscis, typically shown in dark colors. |
| 🪰 | fly | A fly with a small, rounded body and large wings, often depicted in black or gray. |
| 🪱 | worm | A worm with a long, cylindrical body, typically shown in shades of brown or pink. |
| 🦠 | microbe | A microscopic microbe with an irregular shape, often depicted in green or blue. |
| 💐 | bouquet | A colorful bouquet of various flowers, predominantly pink, yellow, and white, arranged together with green leaves. |
| 🌸 | cherry blossom | A delicate cherry blossom with soft pink petals and a light yellow center, representing spring. |
| 💮 | white flower | A simple white flower with five petals, often depicted with a subtle outline. |
| 🪷 | lotus | A serene lotus flower, typically shown with multiple layers of soft pink or white petals, floating on a green leaf. |
| 🏵️ | rosette | A decorative rosette with a circular shape, often featuring a layered design in vibrant colors. |
| 🌹 | rose | A classic red rose with velvety petals tightly curled at the center, symbolizing love and beauty. |
| 🥀 | wilted flower | A wilted flower with drooping petals, often depicted in muted colors, indicating decay. |
| 🌺 | hibiscus | A large, bright hibiscus flower with prominent petals, usually in shades of red or pink. |
| 🌻 | sunflower | A tall sunflower with a large, round yellow face and dark brown center, surrounded by green leaves. |
| 🌼 | blossom | A cheerful yellow blossom with a round center and multiple petal layers, resembling a daisy. |
| 🌷 | tulip | A tulip with a smooth, cup-shaped bloom, typically in vibrant colors like red, pink, or yellow. |
| 🪻 | hyacinth | A cluster of hyacinth flowers, usually depicted in shades of purple or blue, with tightly packed petals. |
| 🌱 | seedling | A small green seedling with two leaves emerging from the soil, symbolizing growth. |
| 🪴 | potted plant | A potted plant with lush green leaves, placed in a decorative pot. |
| 🌲 | evergreen tree | A tall evergreen tree with a conical shape, featuring dark green needles. |
| 🌳 | deciduous tree | A broad deciduous tree with a thick trunk and a full canopy of green leaves. |
| 🌴 | palm tree | A slender palm tree with long, arching fronds, often associated with tropical environments. |
| 🌵 | cactus | A green cactus with a rounded body and several upward-reaching spines, representing desert flora. |
| 🌾 | sheaf of rice | A sheaf of rice, depicted as a bundle of golden stalks with small grains at the top. |
| 🌿 | herb | A sprig of herb with small green leaves, often representing freshness and flavor. |
| ☘️ | shamrock | A three-leaf shamrock, typically in bright green, symbolizing good luck. |
| 🍀 | four leaf clover | A four-leaf clover, bright green and rare, symbolizing luck and prosperity. |
| 🍁 | maple leaf | A vibrant red maple leaf, shaped with pointed lobes, representing autumn. |
| 🍂 | fallen leaf | A brown fallen leaf, curled and dried, symbolizing the change of seasons. |
| 🍃 | leaf fluttering in wind | A green leaf fluttering in the wind, depicted with a slight curve to suggest movement. |
| 🪹 | empty nest | An empty nest made of twigs and grass, resting on a branch, symbolizing home. |
| 🪺 | nest with eggs | A nest containing several eggs, nestled among twigs, indicating new life. |
| 🍄 | mushroom | A mushroom with a rounded cap, often depicted in red with white spots, growing from the ground. |
| | leafless tree | A leafless tree with bare branches, representing a barren landscape. |
Food & Drink (131)
| Emoji | Name | Description |
|---|---|---|
| 🍇 | grapes | A bunch of purple grapes, round and plump, hanging together on a vine. |
| 🍈 | melon | A cantaloupe melon, round and orange on the inside, with a rough, tan exterior. |
| 🍉 | watermelon | A large watermelon, green on the outside with a bright red interior filled with black seeds. |
| 🍊 | tangerine | A small, round tangerine with a bright orange skin, representing citrus fruit. |
| 🍋 | lemon | A bright yellow lemon, oval-shaped with a dimpled skin, known for its sour taste. |
| 🍋🟩 | lime | A lime, small and round, with a vibrant green skin, often used in cocktails. |
| 🍌 | banana | A curved yellow banana with a smooth skin, known for its sweet taste. |
| 🍍 | pineapple | A tropical pineapple with a rough, spiky exterior and a tuft of green leaves on top. |
| 🥭 | mango | A ripe mango, oval-shaped with a smooth skin that transitions from green to yellow-orange. |
| 🍎 | red apple | A shiny red apple, round and crisp, symbolizing health and freshness. |
| 🍏 | green apple | A bright green apple, round and smooth, representing a tart flavor. |
| 🍐 | pear | A green pear with a rounded bottom and a narrow top, featuring a small brown stem. |
| 🍑 | peach | A fuzzy, round peach with a gradient of yellow to pink, showcasing a small indentation at the top. |
| 🍒 | cherries | A pair of bright red cherries, each with a glossy surface, connected by slender green stems. |
| 🍓 | strawberry | A vibrant red strawberry with a green leafy crown and tiny seeds scattered across its surface. |
| 🫐 | blueberries | A cluster of dark blue blueberries, round and smooth, resembling small marbles. |
| 🥝 | kiwi fruit | A brown, fuzzy kiwi fruit cut in half, revealing its bright green interior with tiny black seeds. |
| 🍅 | tomato | A bright red tomato, round and smooth, with a small green stem at the top. |
| 🫒 | olive | A single dark green olive, oval in shape, with a shiny surface and a small pit inside. |
| 🥥 | coconut | A brown coconut with a rough outer shell, partially cracked open to reveal the white flesh inside. |
| 🥑 | avocado | A halved avocado showing its creamy green flesh and a large brown pit in the center. |
| 🍆 | eggplant | A glossy, deep purple eggplant with a green leafy cap at the top. |
| 🥔 | potato | A light brown potato with a rough, uneven surface and small eyes. |
| 🥕 | carrot | An orange carrot with a tapered shape and green leafy tops sprouting from one end. |
| 🌽 | ear of corn | An ear of corn with yellow kernels arranged in rows, covered by green husks. |
| 🌶️ | hot pepper | A bright red hot pepper, elongated and slightly curved, with a green stem. |
| 🫑 | bell pepper | A shiny, green bell pepper, round and smooth with a thick wall. |
| 🥒 | cucumber | A long, dark green cucumber with a smooth surface and slightly bumpy texture. |
| 🥬 | leafy green | A bunch of leafy greens, vibrant green in color, resembling kale or lettuce. |
| 🥦 | broccoli | A green broccoli floret with a thick stem and a bushy top resembling a tree. |
| 🧄 | garlic | A bulb of garlic with a papery white skin, consisting of several cloves. |
| 🧅 | onion | A round onion with a brownish skin and a slightly bulbous shape. |
| 🥜 | peanuts | A handful of light brown peanuts, some in their shells and some shelled. |
| 🫘 | beans | A small pile of brown beans, oval-shaped and smooth. |
| 🌰 | chestnut | A brown chestnut with a glossy surface, partially enclosed in a spiky green husk. |
| 🫚 | ginger root | A knobby ginger root with a light brown skin and a twisted shape. |
| 🫛 | pea pod | A green pea pod, curved and filled with small round peas inside. |
| 🍄🟫 | brown mushroom | A brown mushroom with a smooth cap and a short, thick stem. |
| | root vegetable | A round root vegetable, resembling a beet, with a reddish-brown skin. |
| 🍞 | bread | A loaf of golden-brown bread with a soft, fluffy texture and a crusty exterior. |
| 🥐 | croissant | A buttery, crescent-shaped croissant with a golden-brown, flaky surface. |
| 🥖 | baguette bread | A long, thin baguette with a crispy crust and a soft interior. |
| 🫓 | flatbread | A round flatbread, resembling a thick tortilla, with a slightly browned surface. |
| 🥨 | pretzel | A twisted pretzel with a golden-brown color and a glossy finish. |
| 🥯 | bagel | A round bagel with a hole in the center, golden-brown and slightly chewy. |
| 🥞 | pancakes | A stack of fluffy pancakes, golden-brown and slightly thick, often served with syrup. |
| 🧇 | waffle | A square waffle with a grid pattern, golden-brown and slightly crispy. |
| 🧀 | cheese wedge | A triangular wedge of cheese, yellow in color with a smooth surface. |
| 🍖 | meat on bone | A piece of meat on a bone, with a rich brown color and visible marbling. |
| 🍗 | poultry leg | A chicken drumstick, golden-brown and crispy, with a bone protruding from one end. |
| 🥩 | cut of meat | A thick cut of red meat, marbled with fat, displaying a fresh and juicy appearance. |
| 🥓 | bacon | A crispy, cooked strip of bacon, with a reddish-brown color and a slightly curled shape. |
| 🍔 | hamburger | A hamburger with a brown beef patty nestled between a golden-brown sesame seed bun, often topped with green lettuce, red tomato, and yellow cheese. |
| 🍟 | french fries | A serving of golden, crispy French fries, arranged in a pile, with a slightly irregular shape. |
| 🍕 | pizza | A triangular slice of pizza with a golden-brown crust, topped with melted cheese and red pepperoni slices. |
| 🌭 | hot dog | A hot dog in a soft, light-colored bun, with a brown sausage peeking out, often garnished with yellow mustard. |
| 🥪 | sandwich | A sandwich made with two slices of bread, filled with various ingredients, often visible at the edges. |
| 🌮 | taco | A taco with a folded, yellow corn tortilla, filled with colorful ingredients like lettuce, meat, and salsa. |
| 🌯 | burrito | A burrito wrapped in a soft, beige tortilla, with the filling visible at one end, often containing rice and beans. |
| 🫔 | tamale | A tamale wrapped in a green corn husk, with a soft, yellow filling that may be visible at the ends. |
| 🥙 | stuffed flatbread | A stuffed flatbread, often wrapped around fillings like falafel or vegetables, with the edges tucked in. |
| 🧆 | falafel | A round, deep-fried falafel ball, with a golden-brown exterior and a slightly rough texture. |
| 🥚 | egg | A simple, white egg with a smooth surface, oval shape, and a slightly shiny appearance. |
| 🍳 | cooking | A frying pan with a sunny-side-up egg, featuring a bright yellow yolk and white edges, sizzling in the pan. |
| 🥘 | shallow pan of food | A shallow pan filled with a colorful mix of food, often resembling a casserole or paella, with various ingredients visible. |
| 🍲 | pot of food | A pot filled with steaming soup or stew, with a rich, brown broth and chunks of vegetables or meat inside. |
| 🫕 | fondue | A fondue pot filled with melted cheese or chocolate, with skewers resting on the edge, ready for dipping. |
| 🥣 | bowl with spoon | A bowl filled with cereal or oatmeal, accompanied by a silver spoon resting inside. |
| 🥗 | green salad | A bowl of green salad, filled with various leafy greens and colorful vegetables, looking fresh and vibrant. |
| 🍿 | popcorn | A container overflowing with fluffy, white popcorn, with some kernels spilling out over the edges. |
| 🧈 | butter | A stick of butter, yellow in color, often wrapped in paper, with a smooth, shiny surface. |
| 🧂 | salt | A small salt shaker, typically white or clear, with a metal top and a few holes for dispensing salt. |
| 🥫 | canned food | A cylindrical can of food, often with a label on the front, typically metallic in color. |
| 🍱 | bento box | A bento box with compartments, filled with various types of food, often colorful and neatly arranged. |
| 🍘 | rice cracker | A round, flat rice cracker, typically light brown or beige, with a slightly crispy texture. |
| 🍙 | rice ball | A triangular rice ball wrapped in a green seaweed sheet, often with a filling in the center. |
| 🍚 | cooked rice | A bowl of fluffy, white cooked rice, steaming and piled high, often served plain. |
| 🍛 | curry rice | A plate of curry rice, featuring a mound of brown curry sauce poured over white rice, often with vegetables. |
| 🍜 | steaming bowl | A steaming bowl of noodles, often topped with green onions and served with chopsticks resting on the side. |
| 🍝 | spaghetti | A plate of spaghetti, with long strands of pasta twirled together, often topped with meatballs and sauce. |
| 🍠 | roasted sweet potato | A roasted sweet potato, with a reddish-brown skin and a soft, orange interior, often slightly caramelized. |
| 🍢 | oden | A skewer of oden, featuring various ingredients like fish cakes and vegetables, often simmered in broth. |
| 🍣 | sushi | A piece of sushi, typically a small roll of rice wrapped around fish or vegetables, often garnished with wasabi. |
| 🍤 | fried shrimp | A piece of fried shrimp, golden-brown and crispy, often with a tail still attached. |
| 🍥 | fish cake with swirl | A fish cake with a pink swirl pattern on top, often round and resembling a pastry. |
| 🥮 | moon cake | A round moon cake, often with a golden-brown crust and intricate designs on its surface. |
| 🍡 | dango | A skewer of dango, featuring three colorful rice dumplings, typically served sweet. |
| 🥟 | dumpling | A plump dumpling, often folded and filled with meat or vegetables, with a slightly shiny surface. |
| 🥠 | fortune cookie | A fortune cookie, shaped like a crescent, with a light brown, crispy shell and a slip of paper inside. |
| 🥡 | takeout box | A takeout box, typically white with a wire handle, often filled with Asian food and slightly folded at the top. |
| 🍦 | soft ice cream | A soft-serve ice cream cone, with a swirl of creamy, light-colored ice cream on top of a crispy cone. |
| 🍧 | shaved ice | A colorful mound of shaved ice, typically in shades of blue and pink, served in a small bowl or cup. |
| 🍨 | ice cream | A scoop of ice cream, usually white or cream-colored, often sitting in a cone or bowl. |
| 🍩 | doughnut | A round doughnut with a hole in the center, often glazed and sprinkled with colorful toppings. |
| 🍪 | cookie | A round cookie, typically golden brown with chocolate chips scattered throughout. |
| 🎂 | birthday cake | A multi-layered birthday cake, often frosted in pastel colors and topped with candles. |
| 🍰 | shortcake | A slice of shortcake, featuring layers of sponge cake and cream, often garnished with fruit. |
| 🧁 | cupcake | A cupcake topped with a swirl of colorful frosting and often decorated with sprinkles. |
| 🥧 | pie | A pie with a golden brown crust, typically filled with fruit or custard, and often has a lattice top. |
| 🍫 | chocolate bar | A rectangular chocolate bar, dark brown in color, often wrapped in shiny foil. |
| 🍬 | candy | A piece of candy, usually brightly colored and shiny, often in a wrapper. |
| 🍭 | lollipop | A lollipop with a round, colorful candy head mounted on a stick. |
| 🍮 | custard | A smooth, creamy custard dessert, often caramel-colored and served in a small dish. |
| 🍯 | honey pot | A round jar filled with golden honey, often with a honey dipper resting on the side. |
| 🍼 | baby bottle | A baby bottle, typically white with a colored cap and a nipple on top. |
| 🥛 | glass of milk | A tall glass filled with white milk, often depicted with a slight sheen. |
| ☕ | hot beverage | A steaming cup of coffee or tea, usually brown or black, served in a simple cup. |
| 🫖 | teapot | A traditional teapot, often rounded with a spout and a handle, typically in a solid color. |
| 🍵 | teacup without handle | A small teacup without a handle, usually filled with green tea. |
| 🍶 | sake | A bottle of sake, typically slender and ceramic, often with a small cup beside it. |
| 🍾 | bottle with popping cork | A champagne bottle with a cork that is popping out, often depicted with bubbles. |
| 🍷 | wine glass | A wine glass filled with red or white wine, typically with a long stem. |
| 🍸 | cocktail glass | A cocktail glass with a triangular shape, often garnished with an olive or a twist. |
| 🍹 | tropical drink | A tropical drink in a curved glass, often colorful and garnished with a slice of fruit. |
| 🍺 | beer mug | A large beer mug filled with frothy beer, typically depicted with a handle. |
| 🍻 | clinking beer mugs | Two clinking beer mugs, both filled with golden beer and froth spilling over the tops. |
| 🥂 | clinking glasses | Two champagne glasses raised in a toast, filled with bubbly drink. |
| 🥃 | tumbler glass | A short tumbler glass filled with dark liquor, often depicted with ice cubes. |
| 🫗 | pouring liquid | A pitcher pouring liquid, typically depicted with a stream of liquid flowing out. |
| 🥤 | cup with straw | A cup with a straw, often filled with a colorful drink like soda or juice. |
| 🧋 | bubble tea | A cup of bubble tea, typically filled with milk tea and topped with large tapioca pearls. |
| 🧃 | beverage box | A small beverage box, often with a straw, typically filled with juice. |
| 🧉 | mate | A traditional mate drink served in a gourd, often with a metal straw. |
| 🧊 | ice | A cube of ice, typically clear and cold, often depicted with a slight sheen. |
| 🥢 | chopsticks | A pair of chopsticks, usually wooden or black, held together at the top. |
| 🍽️ | fork and knife with plate | A plate with a fork and knife on either side, ready for a meal. |
| 🍴 | fork and knife | A fork and knife crossed, typically depicted in silver or stainless steel. |
| 🥄 | spoon | A simple spoon, often silver or stainless steel, used for eating. |
| 🔪 | kitchen knife | A kitchen knife with a sharp blade and a handle, typically depicted in silver. |
| 🫙 | jar | A glass jar, typically round and clear, often used for storing food or condiments. |
| 🏺 | amphora | An ancient amphora, typically tall and narrow with two handles, often depicted in earthy tones. |
Travel & Places (218)
| Emoji | Name | Description |
|---|---|---|
| 🌍 | globe showing Europe-Africa | A blue and green globe depicting the continents of Europe and Africa, with visible landmasses and swirling white clouds. |
| 🌎 | globe showing Americas | A blue and green globe showing the Americas, with the landmasses in green and the oceans in blue. |
| 🌏 | globe showing Asia-Australia | A blue and green globe featuring Asia and Australia, with green landmasses and blue oceans. |
| 🌐 | globe with meridians | A globe with a grid of meridians and parallels, colored in blue and green, representing the Earth. |
| 🗺️ | world map | A flat, detailed map with various geographical features and markings, typically in earthy tones. |
| 🗾 | map of Japan | A detailed map outline of Japan, featuring its distinct shape and coastal lines, typically in a light color. |
| 🧭 | compass | A classic compass with a round face, a needle pointing north, and a decorative outer ring, often in metallic colors. |
| 🏔️ | snow-capped mountain | A tall, snow-capped mountain with rocky peaks, depicted in shades of grey and white. |
| ⛰️ | mountain | A rugged mountain silhouette, typically in dark grey or brown, with a jagged peak. |
| 🌋 | volcano | A volcano with a conical shape, often illustrated with a red lava flow and smoke billowing from the top. |
| 🗻 | mount fuji | A stylized depiction of Mount Fuji, with a snow-capped peak and a symmetrical shape, often in shades of blue and white. |
| 🏕️ | camping | A tent set up in a natural setting, typically depicted in earthy colors, often surrounded by trees. |
| 🏖️ | beach with umbrella | A sandy beach scene featuring a colorful beach umbrella and gentle waves in the background. |
| 🏜️ | desert | A vast desert landscape with rolling sand dunes, typically depicted in warm yellow and brown tones. |
| 🏝️ | desert island | A small, tropical island surrounded by blue water, featuring palm trees and sandy beaches. |
| 🏞️ | national park | A picturesque national park scene with lush greenery, hills, and possibly a body of water. |
| 🏟️ | stadium | A large, open stadium with tiered seating and a playing field, often depicted in a circular shape. |
| 🏛️ | classical building | An ancient-style building with columns and a pediment, often resembling a temple or classical structure. |
| 🏗️ | building construction | A construction site with a partially built structure, featuring scaffolding and construction equipment. |
| 🧱 | brick | A single red brick, rectangular in shape, often showing a rough texture. |
| 🪨 | rock | A large, solid rock or boulder, typically depicted in grey or brown tones, with a rugged surface. |
| 🪵 | wood | A log or piece of timber, typically depicted in brown with visible wood grain. |
| 🛖 | hut | A simple hut or shelter, often round in shape and made of natural materials like wood or thatch. |
| 🏘️ | houses | A cluster of houses, typically depicted in various colors and styles, representing a small neighborhood. |
| 🏚️ | derelict house | A dilapidated house with a crumbling structure, often shown in dark, muted colors. |
| 🏠 | house | A simple house with a triangular roof, typically depicted in warm colors, representing a cozy home. |
| 🏡 | house with garden | A house with a garden, featuring a small yard and flowers, often depicted in bright colors. |
| 🏢 | office building | A tall office building with a modern design, typically shown in grey or glass colors. |
| 🏣 | Japanese post office | A traditional Japanese post office building, often featuring a distinctive roof and red accents. |
| 🏤 | post office | A European-style post office building with ornate architecture, typically depicted in light colors. |
| 🏥 | hospital | A hospital building with a red cross symbol, often shown in white or light colors. |
| 🏦 | bank | A bank building with a classical design, often depicted in grey or stone colors. |
| 🏨 | hotel | A multi-story hotel building, typically shown in a modern style with large windows. |
| 🏩 | love hotel | A love hotel with a romantic design, often depicted in soft colors and decorative elements. |
| 🏪 | convenience store | A convenience store building, typically small and brightly colored, often with a sign indicating 24-hour service. |
| 🏫 | school | A school building with a traditional design, often depicted in light colors with a bell tower. |
| 🏬 | department store | A large department store building, typically shown with multiple floors and large windows. |
| 🏭 | factory | A factory building with smokestacks, often depicted in grey or industrial colors. |
| 🏯 | Japanese castle | A Japanese castle with tiered roofs and traditional architecture, often depicted in vibrant colors. |
| 🏰 | castle | A grand European castle with tall towers and turrets, often illustrated in a fairy-tale style. |
| 💒 | wedding | A small, white chapel with a pointed roof and two bell towers, adorned with a heart symbol, representing love and weddings. |
| 🗼 | Tokyo tower | A tall, red and white tower with a distinctive lattice structure, resembling the iconic Tokyo Tower. |
| 🗽 | Statue of Liberty | A green statue of a woman holding a torch in her right hand, representing freedom, standing on a pedestal. |
| ⛪ | church | A white church building with a cross on top, featuring a steep roof and arched windows. |
| 🕌 | mosque | A mosque with a large dome and a crescent moon on top, flanked by two tall minarets. |
| 🛕 | hindu temple | A traditional Hindu temple with ornate architecture, featuring a tall spire and intricate carvings. |
| 🕍 | synagogue | A synagogue with a large dome and two towers, characterized by its Star of David symbol. |
| ⛩️ | shinto shrine | A traditional Japanese Shinto shrine, marked by a distinctive red torii gate leading to a wooden structure. |
| 🕋 | kaaba | A black cube-shaped building, known as the Kaaba, draped in a gold-embroidered black cloth, located in Mecca. |
| ⛲ | fountain | A decorative fountain with water flowing from the top, often surrounded by a circular basin. |
| ⛺ | tent | A simple, triangular tent with a fabric covering, typically used for camping. |
| 🌁 | foggy | A city skyline partially obscured by fog, with a bridge visible in the foreground. |
| 🌃 | night with stars | A night scene featuring a city skyline illuminated by stars and city lights against a dark sky. |
| 🏙️ | cityscape | A cityscape showcasing tall buildings and skyscrapers, representing an urban environment. |
| 🌄 | sunrise over mountains | A sunrise casting warm orange and yellow hues over a range of mountains, signaling the start of a new day. |
| 🌅 | sunrise | A vibrant sunrise with bright yellow and orange colors reflecting on a calm body of water. |
| 🌆 | cityscape at dusk | A cityscape at dusk, with buildings silhouetted against a colorful sky as the sun sets. |
| 🌇 | sunset | A sunset scene with the sun dipping below the horizon, casting a warm glow over buildings. |
| 🌉 | bridge at night | A bridge illuminated against the night sky, with the city skyline visible in the background. |
| ♨️ | hot springs | A steaming hot spring, often depicted with wavy lines to represent steam rising from the water. |
| 🎠 | carousel horse | A colorful carousel horse, often painted with bright colors and adorned with a saddle, ready for a ride. |
| 🛝 | playground slide | A playground slide, typically a curved metal slide leading down from a raised platform. |
| 🎡 | ferris wheel | A Ferris wheel with colorful cabins, turning slowly against the backdrop of a fairground. |
| 🎢 | roller coaster | A roller coaster with steep drops and twists, featuring cars zooming along the tracks. |
| 💈 | barber pole | A barber pole with red, white, and blue stripes, symbolizing a barber shop. |
| 🎪 | circus tent | A large circus tent with bright colors and a peaked top, often associated with performances and entertainment. |
| 🚂 | locomotive | A classic steam locomotive with a large front smokestack and a series of connected cars. |
| 🚃 | railway car | A railway car with windows and doors, typically used for passenger transport on trains. |
| 🚄 | high-speed train | A sleek high-speed train with a streamlined design, representing modern rail travel. |
| 🚅 | bullet train | A bullet train with a pointed nose, designed for high-speed travel on railways. |
| 🚆 | train | A traditional train with several connected cars, often depicted in motion on railway tracks. |
| 🚇 | metro | A subway train, typically depicted as a compact, underground transport vehicle. |
| 🚈 | light rail | A light rail vehicle, often resembling a modern tram, designed for urban transport. |
| 🚉 | station | A railway station building, usually featuring a platform and a roof for passenger shelter. |
| 🚊 | tram | A tram with overhead wires, designed for urban public transport on tracks. |
| 🚝 | monorail | A monorail train running on a single elevated track, often seen in theme parks or cities. |
| 🚞 | mountain railway | A mountain railway train designed for steep inclines, featuring a vintage look. |
| 🚋 | tram car | A tram car with open sides, designed for urban transport, often seen in cities. |
| 🚌 | bus | A bus with large windows and a rectangular shape, typically used for public transport. |
| 🚍 | oncoming bus | An oncoming bus with a similar rectangular shape, approaching from the opposite direction. |
| 🚎 | trolleybus | A trolleybus with a rounded body, painted in a bright yellow color with a gray roof, featuring overhead wires for power. |
| 🚐 | minibus | A compact minibus with a boxy shape, typically colored white with a dark blue stripe, designed for passenger transport. |
| 🚑 | ambulance | An ambulance with a white body and red cross markings, featuring a prominent light bar on top and a rear compartment for patients. |
| 🚒 | fire engine | A fire engine in bright red, equipped with a ladder on top and various emergency lights, designed for firefighting. |
| 🚓 | police car | A police car with a sleek design, primarily black and white, featuring a light bar on top and police insignia on the sides. |
| 🚔 | oncoming police car | An oncoming police car with a black and white color scheme, highlighted by a flashing light bar on top, facing towards the viewer. |
| 🚕 | taxi | A yellow taxi cab with a square shape, featuring a taxi sign on the roof and a checkerboard pattern along the sides. |
| 🚖 | oncoming taxi | An oncoming yellow taxi with a flat roof sign, approaching from the front, designed for passenger pick-up. |
| 🚗 | automobile | A standard automobile with a rounded shape, typically in a bright color like red or blue, designed for personal transport. |
| 🚘 | oncoming automobile | An oncoming automobile with a sleek design, facing the viewer, often in a vibrant color like blue or silver. |
| 🚙 | sport utility vehicle | A sport utility vehicle with a robust appearance, often in dark green or black, designed for off-road driving. |
| 🛻 | pickup truck | A pickup truck with an open flatbed, usually in a metallic color like silver or red, designed for transporting goods. |
| 🚚 | delivery truck | A large delivery truck with a boxy shape, often white or yellow, designed for transporting cargo with a rear loading area. |
| 🚛 | articulated lorry | An articulated lorry with a long trailer attached to a cab, typically in bright colors like red or blue, designed for heavy transport. |
| 🚜 | tractor | A tractor with large rear wheels and a compact body, usually in green or red, designed for agricultural purposes. |
| 🏎️ | racing car | A racing car with a low profile and aerodynamic shape, often in bright colors like red or blue, designed for speed. |
| 🏍️ | motorcycle | A motorcycle with a sleek design, typically black or chrome, featuring two wheels and a seat for one or two riders. |
| 🛵 | motor scooter | A motor scooter with a compact body, often in pastel colors, featuring a step-through frame and a seat for one or two riders. |
| 🦽 | manual wheelchair | A manual wheelchair with large rear wheels and smaller front wheels, designed for mobility assistance, often in gray or black. |
| 🦼 | motorized wheelchair | A motorized wheelchair with a sleek design, featuring a comfortable seat and joystick controls, often in a neutral color. |
| 🛺 | auto rickshaw | An auto rickshaw with a three-wheeled design, typically painted in bright colors like yellow and green, designed for urban transport. |
| 🚲 | bicycle | A bicycle with two wheels, a frame, and handlebars, often in bright colors, designed for cycling. |
| 🛴 | kick scooter | A kick scooter with a narrow deck and two wheels, typically in bright colors like blue or pink, designed for riding by pushing off the ground. |
| 🛹 | skateboard | A skateboard with a flat board and four wheels, often in colorful designs, designed for tricks and riding. |
| 🛼 | roller skate | A pair of roller skates with four wheels on each boot, often in bright colors, designed for skating on smooth surfaces. |
| 🚏 | bus stop | A bus stop sign with a blue background and white bus icon, often accompanied by a shelter for waiting passengers. |
| 🛣️ | motorway | A motorway depicted as a wide road with lanes, often represented in gray with dashed lines for lanes. |
| 🛤️ | railway track | A railway track shown as two parallel lines with wooden ties, typically in brown or gray, designed for trains. |
| 🛢️ | oil drum | An oil drum, typically depicted as a cylindrical container in black with a lid, designed for storing oil. |
| ⛽ | fuel pump | A fuel pump with a nozzle and digital display, often in bright colors like green or red, designed for dispensing fuel. |
| 🛞 | wheel | A wheel depicted as a circular tire with a tread pattern, typically in black, designed for vehicles. |
| 🚨 | police car light | A police car light with a rotating beacon, often in red and blue, designed to signal emergencies. |
| 🚥 | horizontal traffic light | A horizontal traffic light with red, yellow, and green lights arranged in a row, designed to control traffic flow. |
| 🚦 | vertical traffic light | A vertical traffic light with red, yellow, and green lights stacked on top of each other, designed for traffic regulation. |
| 🛑 | stop sign | A stop sign in the shape of an octagon, typically in red with white lettering, designed to alert drivers to stop. |
| 🚧 | construction | A construction barrier depicted as a striped orange and white cone, designed to indicate road work. |
| ⚓ | anchor | An anchor with a heavy, curved shape and flukes at the bottom, typically in dark gray or black, designed for securing boats. |
| 🛟 | ring buoy | A ring buoy, often in bright orange, designed for rescue at sea, featuring a rope around the edge. |
| ⛵ | sailboat | A sailboat with a triangular sail and a hull, typically depicted in white with a blue or colorful sail, designed for sailing. |
| 🛶 | canoe | A canoe with a narrow, elongated shape, typically in bright colors like red or yellow, designed for paddling. |
| 🚤 | speedboat | A sleek, white speedboat with a pointed bow and a small windshield, often depicted with waves beneath it. |
| 🛳️ | passenger ship | A large, multi-deck passenger ship with a wide hull, typically shown with smokestacks and lifeboats. |
| ⛴️ | ferry | A sturdy ferry boat with a flat deck, designed to carry vehicles and passengers across water, often shown with a ramp. |
| 🛥️ | motor boat | A compact motorboat with a streamlined shape, usually depicted with a small cabin and an outboard motor. |
| 🚢 | ship | A large ship with multiple decks, a tall structure at the back, and often depicted with waves around it. |
| ✈️ | airplane | A commercial airplane with a sleek fuselage, wings, and tail, usually shown in flight with clouds beneath. |
| 🛩️ | small airplane | A small airplane with a single propeller and short wings, typically depicted in flight against a clear sky. |
| 🛫 | airplane departure | An airplane taking off, shown with its nose tilted upwards and wheels lifted off the ground. |
| 🛬 | airplane arrival | An airplane landing, depicted with its wheels down and nose angled towards the ground. |
| 🪂 | parachute | A parachute with a round canopy, typically shown with a person suspended below it, ready to land. |
| 💺 | seat | An airplane seat, represented as a simple chair with armrests, often shown in a reclining position. |
| 🚁 | helicopter | A helicopter with a rounded body, two main rotors on top, and a tail rotor, often depicted hovering in the air. |
| 🚟 | suspension railway | A suspension railway train, shown as a sleek vehicle suspended from overhead cables, gliding above the ground. |
| 🚠 | mountain cableway | A mountain cableway gondola, depicted as a small enclosed cabin hanging from a cable, with mountains in the background. |
| 🚡 | aerial tramway | An aerial tramway car, shown as a small enclosed cabin on a cable, usually depicted against a mountainous backdrop. |
| 🛰️ | satellite | A satellite with a rectangular body and solar panels extending from its sides, typically shown in orbit around Earth. |
| 🚀 | rocket | A rocket with a pointed tip and fins at the base, depicted launching upwards with flames and smoke trailing behind. |
| 🛸 | flying saucer | A flying saucer with a domed top and a flat bottom, often shown hovering with lights around its edge. |
| 🛎️ | bellhop bell | A shiny bellhop bell, round and metallic with a raised dome, typically depicted on a small base. |
| 🧳 | luggage | A rectangular suitcase with a handle, often shown in a dark color, symbolizing travel and luggage. |
| ⌛ | hourglass done | An hourglass with a wooden frame, filled with sand that has settled at the bottom, indicating time has run out. |
| ⏳ | hourglass not done | An hourglass with sand flowing from the top to the bottom, showing that time is still passing. |
| ⌚ | watch | A wristwatch with a round face, typically displayed with numbers and hands indicating the time. |
| ⏰ | alarm clock | An alarm clock with a round face, two bells on top, and hands pointing to the current time, often depicted ringing. |
| ⏱️ | stopwatch | A stopwatch with a round face and a start/stop button on top, typically shown with hands indicating elapsed time. |
| ⏲️ | timer clock | A timer clock with a round face, often depicted with a countdown feature, showing the remaining time. |
| 🕰️ | mantelpiece clock | A mantelpiece clock with a decorative case, a round face, and ornate details, typically shown on a shelf. |
| 🕛 | twelve o’clock | A clock showing twelve o’clock, with the hour hand pointing to twelve and the minute hand also at twelve. |
| 🕧 | twelve-thirty | A clock showing twelve-thirty, with the hour hand slightly past twelve and the minute hand pointing to six. |
| 🕐 | one o’clock | A clock showing one o’clock, with the hour hand pointing to one and the minute hand at twelve. |
| 🕜 | one-thirty | A clock showing one-thirty, with the hour hand halfway between one and two and the minute hand at six. |
| 🕑 | two o’clock | A clock showing two o’clock, with the hour hand pointing to two and the minute hand at twelve. |
| 🕝 | two-thirty | A clock showing two-thirty, with the hour hand halfway between two and three and the minute hand at six. |
| 🕒 | three o’clock | A clock showing three o’clock, with the hour hand pointing to three and the minute hand at twelve. |
| 🕞 | three-thirty | A clock showing three-thirty, with the hour hand halfway between three and four and the minute hand at six. |
| 🕓 | four o’clock | A clock showing four o’clock, with the hour hand pointing to four and the minute hand at twelve. |
| 🕟 | four-thirty | A clock showing four-thirty, with the hour hand halfway between four and five and the minute hand at six. |
| 🕔 | five o’clock | A clock showing five o’clock, with the hour hand pointing to five and the minute hand at twelve. |
| 🕠 | five-thirty | A clock showing five-thirty, with the hour hand halfway between five and six and the minute hand at six. |
| 🕕 | six o’clock | A clock showing six o’clock, with the hour hand pointing to six and the minute hand at twelve. |
| 🕡 | six-thirty | A round clock face showing the time as six-thirty, with the hour hand pointing slightly past six and the minute hand pointing directly at six. |
| 🕖 | seven o’clock | A round clock face indicating seven o’clock, with the hour hand pointing directly at seven and the minute hand pointing at twelve. |
| 🕢 | seven-thirty | A clock face displaying seven-thirty, with the hour hand halfway between seven and eight and the minute hand pointing directly at six. |
| 🕗 | eight o’clock | A round clock face showing eight o’clock, with the hour hand pointing directly at eight and the minute hand at twelve. |
| 🕣 | eight-thirty | A clock face indicating eight-thirty, with the hour hand slightly past eight and the minute hand pointing directly at six. |
| 🕘 | nine o’clock | A round clock face displaying nine o’clock, with the hour hand pointing directly at nine and the minute hand at twelve. |
| 🕤 | nine-thirty | A clock face showing nine-thirty, with the hour hand halfway between nine and ten and the minute hand pointing directly at six. |
| 🕙 | ten o’clock | A round clock face indicating ten o’clock, with the hour hand pointing directly at ten and the minute hand at twelve. |
| 🕥 | ten-thirty | A clock face showing ten-thirty, with the hour hand slightly past ten and the minute hand pointing directly at six. |
| 🕚 | eleven o’clock | A round clock face indicating eleven o’clock, with the hour hand pointing directly at eleven and the minute hand at twelve. |
| 🕦 | eleven-thirty | A clock face displaying eleven-thirty, with the hour hand halfway between eleven and twelve and the minute hand pointing directly at six. |
| 🌑 | new moon | A completely dark circle representing the new moon, with no visible features. |
| 🌒 | waxing crescent moon | A crescent moon with a thin, bright edge on the right side, the rest of the moon shaded dark. |
| 🌓 | first quarter moon | A half-moon where the right half is illuminated and the left half is dark. |
| 🌔 | waxing gibbous moon | A gibbous moon that is mostly bright on the right side, with a small dark section on the left. |
| 🌕 | full moon | A full moon depicted as a bright, round white circle with no shadows. |
| 🌖 | waning gibbous moon | A gibbous moon that is mostly dark on the left side, with a bright right side. |
| 🌗 | last quarter moon | A half-moon where the left half is illuminated and the right half is dark. |
| 🌘 | waning crescent moon | A crescent moon with a thin, bright edge on the left side, the rest of the moon shaded dark. |
| 🌙 | crescent moon | A crescent moon that is bright on the right side, with a small dark section on the left. |
| 🌚 | new moon face | A dark moon face with a subtle smile and closed eyes, giving a serene expression. |
| 🌛 | first quarter moon face | A smiling moon face with a bright crescent shape, eyes closed and a gentle smile. |
| 🌜 | last quarter moon face | A moon face with a serene expression, eyes closed and a gentle smile, representing the last quarter moon. |
| 🌡️ | thermometer | A thermometer with a red liquid inside, indicating temperature, displayed vertically. |
| ☀️ | sun | A bright yellow sun with rays extending outward in all directions. |
| 🌝 | full moon face | A full moon face with a bright, smiling expression and rosy cheeks. |
| 🌞 | sun with face | A cheerful sun with a face, radiating warmth with bright yellow rays. |
| 🪐 | ringed planet | A planet with a prominent ring encircling it, suggesting a resemblance to Saturn. |
| ⭐ | star | A simple five-pointed star in white, representing a celestial body. |
| 🌟 | glowing star | A five-pointed star that glows with a sparkling effect, suggesting brightness. |
| 🌠 | shooting star | A star depicted as falling or shooting across the sky, leaving a trail behind. |
| 🌌 | milky way | A depiction of the Milky Way, showing a band of stars across a dark background. |
| ☁️ | cloud | A fluffy, white cloud with a soft, rounded shape. |
| ⛅ | sun behind cloud | A sun partially hidden behind a fluffy cloud, suggesting a mix of sun and clouds. |
| ⛈️ | cloud with lightning and rain | A dark cloud with jagged lightning bolts and raindrops falling from it. |
| 🌤️ | sun behind small cloud | A small fluffy cloud with the sun shining brightly behind it. |
| 🌥️ | sun behind large cloud | A large fluffy cloud with the sun shining dimly behind it. |
| 🌦️ | sun behind rain cloud | A sun peeking out from behind a rain cloud, suggesting a mix of sun and rain. |
| 🌧️ | cloud with rain | A cloud filled with rain, depicted with droplets falling from it. |
| 🌨️ | cloud with snow | A cloud with snowflakes falling from it, indicating snowy weather. |
| 🌩️ | cloud with lightning | A dark gray cloud with a jagged yellow lightning bolt striking down from it. |
| 🌪️ | tornado | A swirling, funnel-shaped tornado depicted in shades of gray and white, tapering to a point at the ground. |
| 🌫️ | fog | A thick, white fog that appears to obscure visibility, creating a misty atmosphere. |
| 🌬️ | wind face | A face blowing air, with a round mouth and swirling lines representing wind coming from it. |
| 🌀 | cyclone | A blue and white spiral resembling a cyclone or whirlpool, with a swirling motion indicated by the design. |
| 🌈 | rainbow | A vibrant arc of colors in the sky, displaying red, orange, yellow, green, blue, and purple in a smooth gradient. |
| 🌂 | closed umbrella | A closed umbrella with a dark handle and a rounded canopy, typically in a solid color. |
| ☂️ | umbrella | An open umbrella featuring a curved handle and a rounded canopy, often depicted in a solid color. |
| ☔ | umbrella with rain drops | An open umbrella with rain droplets falling around it, suggesting a rainy weather scenario. |
| ⛱️ | umbrella on ground | A beach umbrella with a colorful canopy, resting on the ground, often depicted in a striped pattern. |
| ⚡ | high voltage | A bright yellow lightning bolt, sharp and jagged, symbolizing high voltage or electricity. |
| ❄️ | snowflake | A delicate, six-pointed snowflake, typically illustrated in white with intricate patterns. |
| ☃️ | snowman | A cheerful snowman with a round body, a carrot nose, and coal eyes, often wearing a scarf. |
| ⛄ | snowman without snow | A snowman without snow, represented as a simple figure with a round head and body, often with a hat. |
| ☄️ | comet | A comet with a bright head and a long, glowing tail trailing behind it, suggesting movement through space. |
| 🔥 | fire | A bright orange and red flame, flickering upwards, representing fire and heat. |
| 💧 | droplet | A single blue droplet of water, shaped like a teardrop, suggesting freshness or moisture. |
| 🌊 | water wave | A stylized wave of blue water, curling and cresting, representing the ocean or surf. |
Activities (85)
| Emoji | Name | Description |
|---|---|---|
| 🎃 | jack-o-lantern | A carved pumpkin with a grinning face, glowing from within, typically associated with Halloween. |
| 🎄 | Christmas tree | A green Christmas tree adorned with colorful decorations and a star on top, symbolizing the holiday season. |
| 🎆 | fireworks | Colorful fireworks bursting in the night sky, with bright trails and explosions of light. |
| 🎇 | sparkler | A sparkling firework in the form of a handheld sparkler, emitting bright sparks in all directions. |
| 🧨 | firecracker | A small red firecracker with a fuse, often depicted with a bright explosion effect. |
| ✨ | sparkles | A cluster of small, shining stars or sparkles, radiating a magical or festive feel. |
| 🎈 | balloon | A bright, round balloon, typically in a solid color, with a string attached, suggesting celebration. |
| 🎉 | party popper | A party popper with colorful confetti bursting out, symbolizing celebration and excitement. |
| 🎊 | confetti ball | A round ball filled with colorful confetti, representing celebration and festive occasions. |
| 🎋 | tanabata tree | A tall, slender tree decorated with colorful streamers and ornaments, representing the Tanabata festival. |
| 🎍 | pine decoration | A decorative arrangement of pine and bamboo, often used for New Year celebrations in Japan. |
| 🎎 | Japanese dolls | Two traditional Japanese dolls, dressed in colorful kimonos, representing a festival celebration. |
| 🎏 | carp streamer | A colorful carp streamer, typically depicted flying in the wind, symbolizing celebration. |
| 🎐 | wind chime | A wind chime with hanging bells, producing soothing sounds when blown by the wind. |
| 🎑 | moon viewing ceremony | A ceremonial display for moon viewing, featuring a decorated table with offerings. |
| 🧧 | red envelope | A red envelope, often decorated with gold symbols, used for gifting money during celebrations. |
| 🎀 | ribbon | A decorative ribbon, typically in a bright color, symbolizing celebration or gift wrapping. |
| 🎁 | wrapped gift | A wrapped gift box with a bow on top, often depicted in bright colors for festive occasions. |
| 🎗️ | reminder ribbon | A simple ribbon, often in a solid color, used as a symbol of remembrance or awareness. |
| 🎟️ | admission tickets | A ticket with a perforated edge, often used for admission to events or attractions. |
| 🎫 | ticket | A rectangular ticket, typically with printed details, used for entry or admission purposes. |
| 🎖️ | military medal | A military medal, often depicted with a ribbon, symbolizing honor and achievement. |
| 🏆 | trophy | A shiny gold trophy with a wide base and two handles, symbolizing victory and achievement. |
| 🏅 | sports medal | A round sports medal with a gold color, featuring a ribbon at the top, awarded to winners in competitions. |
| 🥇 | 1st place medal | A gold medal shaped like a circle, with a ribbon attached, signifying first place in a competition. |
| 🥈 | 2nd place medal | A silver medal shaped like a circle, with a ribbon attached, representing second place in a competition. |
| 🥉 | 3rd place medal | A bronze medal shaped like a circle, with a ribbon attached, denoting third place in a competition. |
| ⚽ | soccer ball | A classic black and white patterned soccer ball, round and designed for kicking in the sport of soccer. |
| ⚾ | baseball | A white baseball with red stitching, round and used in the sport of baseball. |
| 🥎 | softball | A yellow softball with red stitching, larger than a baseball, used in the sport of softball. |
| 🏀 | basketball | An orange basketball with black lines, round and designed for bouncing and shooting in the sport of basketball. |
| 🏐 | volleyball | A white volleyball with a distinctive pattern, round and used in the sport of volleyball. |
| 🏈 | american football | An elongated brown American football with white laces, designed for throwing and catching in American football. |
| 🏉 | rugby football | A brown rugby ball with pointed ends, used in the sport of rugby, designed for passing and kicking. |
| 🎾 | tennis | A bright green tennis ball, round and fuzzy, used in the sport of tennis. |
| 🥏 | flying disc | A flat, circular flying disc, often colored brightly, used in games like ultimate frisbee. |
| 🎳 | bowling | A white bowling ball with three finger holes, used in the sport of bowling, typically heavy and round. |
| 🏏 | cricket game | A cricket bat and ball, with a wooden bat and a small white ball, used in the game of cricket. |
| 🏑 | field hockey | A field hockey stick with a curved end and a small ball, used in the sport of field hockey. |
| 🏒 | ice hockey | A hockey stick with a flat blade and a puck, used in ice hockey on an ice rink. |
| 🥍 | lacrosse | A lacrosse stick with a netted head and a small ball, used in the sport of lacrosse. |
| 🏓 | ping pong | A ping pong paddle with a round, white ball, used in the sport of table tennis. |
| 🏸 | badminton | A badminton racquet with a shuttlecock, used in the sport of badminton. |
| 🥊 | boxing glove | A padded boxing glove, typically red or blue, used in the sport of boxing. |
| 🥋 | martial arts uniform | A white martial arts uniform, often worn in disciplines like karate or judo. |
| 🥅 | goal net | A goal net, typically rectangular and used in various sports to catch balls. |
| ⛳ | flag in hole | A small flag placed in a hole on a golf course, indicating the location of the hole. |
| ⛸️ | ice skate | A single ice skate, featuring a blade and a boot, used for skating on ice. |
| 🎣 | fishing pole | A fishing pole with a reel and line, often used in recreational fishing. |
| 🤿 | diving mask | A diving mask with snorkel, designed for underwater exploration and scuba diving. |
| 🎽 | running shirt | A sleeveless running shirt, often brightly colored, worn during athletic events. |
| 🎿 | skis | A pair of long skis, typically used for gliding down snow-covered slopes. |
| 🛷 | sled | A sled, often with runners and designed for sliding down snowy hills. |
| 🥌 | curling stone | A curling stone, round and heavy, used in the sport of curling on ice. |
| 🎯 | bullseye | A circular dartboard with a bullseye in the center, used for target games. |
| 🪀 | yo-yo | A classic yo-yo, typically round and two-toned, used as a toy for tricks. |
| 🪁 | kite | A colorful kite with a tail, designed to soar in the wind. |
| 🔫 | water pistol | A small water pistol, resembling a handgun, used for playful water fights. |
| 🎱 | pool 8 ball | An eight ball, black with the number 8 on it, used in billiards and pool games. |
| 🔮 | crystal ball | A crystal ball, transparent and round, often associated with fortune-telling. |
| 🪄 | magic wand | A magic wand, typically slender and sparkly, used by magicians and wizards. |
| 🎮 | video game | A video game controller, featuring buttons and joysticks for interactive gaming. |
| 🕹️ | joystick | A gray joystick with a black top and a red button, typically used for gaming. |
| 🎰 | slot machine | A colorful slot machine with three spinning reels, featuring symbols like fruits and bars, and a lever on the side. |
| 🎲 | game die | A white die with black dots, showing the number six on the visible face. |
| 🧩 | puzzle piece | A single puzzle piece in bright colors, shaped with interlocking edges. |
| 🧸 | teddy bear | A soft, brown teddy bear with a stitched nose and round ears, often used as a toy. |
| 🪅 | piñata | A colorful piñata shaped like a donkey, decorated with bright paper and filled with candy. |
| 🪩 | mirror ball | A shiny, disco ball covered in small mirrors, reflecting light in various directions. |
| 🪆 | nesting dolls | A set of traditional Russian nesting dolls, each one painted with floral designs and vibrant colors. |
| ♠️ | spade suit | A black spade symbol, shaped like a heart with a stem at the bottom. |
| ♥️ | heart suit | A red heart symbol, representing love and affection. |
| ♦️ | diamond suit | A red diamond shape, pointed at the top and bottom, often used in playing cards. |
| ♣️ | club suit | A black club symbol, resembling a three-leaf clover with a stem. |
| ♟️ | chess pawn | A solid black chess pawn, a simple figure with a rounded top and a circular base. |
| 🃏 | joker | A colorful joker card featuring a jester with a playful expression and a hat with bells. |
| 🀄 | mahjong red dragon | A white mahjong tile with a red dragon symbol, often used in the game of mahjong. |
| 🎴 | flower playing cards | A playing card with a floral design, typically associated with Japanese card games. |
| 🎭 | performing arts | A theatrical mask, half white and half black, symbolizing the performing arts. |
| 🖼️ | framed picture | A rectangular picture frame, typically gold or ornate, enclosing a blank space for a photo or artwork. |
| 🎨 | artist palette | An artist’s palette with several blobs of colorful paint and a paintbrush resting on it. |
| 🧵 | thread | A spool of thread, often in a vibrant color, with a needle threaded through it. |
| 🪡 | sewing needle | A sewing needle, slender and sharp, with a small hole at one end for threading. |
| 🧶 | yarn | A ball of yarn, usually in a bright color, used for knitting or crocheting. |
| 🪢 | knot | A simple knot made from a piece of rope or cord, with loops and twists. |
Objects (264)
| Emoji | Name | Description |
|---|---|---|
| 👓 | glasses | A pair of eyeglasses with a thin frame, designed to fit over the eyes. |
| 🕶️ | sunglasses | A pair of dark sunglasses with a wide frame, designed to protect the eyes from sunlight. |
| 🥽 | goggles | A pair of protective goggles, typically with a clear lens and a strap for securing around the head. |
| 🥼 | lab coat | A white lab coat, typically worn by doctors or scientists, featuring a collar and pockets. |
| 🦺 | safety vest | A bright yellow safety vest, often worn for visibility and protection in hazardous environments. |
| 👔 | necktie | A formal necktie, typically in a solid color or pattern, designed to be worn with a dress shirt. |
| 👕 | t-shirt | A casual blue t-shirt with short sleeves and a round neckline. |
| 👖 | jeans | A pair of blue denim jeans, featuring pockets and a straight-leg cut. |
| 🧣 | scarf | A long, knitted scarf, often wrapped around the neck for warmth. |
| 🧤 | gloves | A pair of gloves, typically made of fabric or leather, designed to cover and protect the hands. |
| 🧥 | coat | A warm coat, often with a collar and buttons, designed to keep the wearer warm in cold weather. |
| 🧦 | socks | A pair of socks, typically made of fabric, designed to cover the feet. |
| 👗 | dress | A stylish dress, often colorful or patterned, designed to be worn by women. |
| 👘 | kimono | A traditional kimono, often made of silk, featuring intricate patterns and a wide belt. |
| 🥻 | sari | A sari, a long piece of fabric draped elegantly around the body, often colorful and patterned. |
| 🩱 | one-piece swimsuit | A one-piece swimsuit, typically fitted and designed for swimming or beachwear. |
| 🩲 | briefs | A pair of briefs, often made of soft fabric, designed as swimwear or underwear. |
| 🩳 | shorts | A pair of knee-length shorts in a light blue color, typically worn for casual or beach activities. |
| 👙 | bikini | A two-piece bikini swimsuit, often featuring bright colors and patterns, designed for beach or pool wear. |
| 👚 | woman’s clothes | A short-sleeved blouse, usually in a soft color, featuring a collar and a feminine design. |
| 🪭 | folding hand fan | A folding hand fan made of thin slats, often decorated with vibrant colors, used for cooling oneself. |
| 👛 | purse | A small, elegant purse, typically in a bright color, often with a clasp or zipper, used for carrying personal items. |
| 👜 | handbag | A stylish handbag, usually larger than a purse, featuring handles and often made of leather or fabric. |
| 👝 | clutch bag | A small clutch bag, typically rectangular, often used for formal occasions, and usually made of shiny material. |
| 🛍️ | shopping bags | Two shopping bags, often depicted in a neutral color, with handles, used for carrying purchased items. |
| 🎒 | backpack | A sturdy backpack, often colorful, with two shoulder straps, used for carrying books or supplies. |
| 🩴 | thong sandal | A simple thong sandal, usually in a bright color, featuring a flat sole and a Y-shaped strap between the toes. |
| 👞 | man’s shoe | A classic brown dress shoe with a rounded toe and laces, designed for formal or business wear. |
| 👟 | running shoe | A sporty running shoe, typically in bright colors, featuring a cushioned sole and a breathable upper. |
| 🥾 | hiking boot | A rugged hiking boot, usually brown, designed for outdoor activities, featuring a high ankle for support. |
| 🥿 | flat shoe | A flat shoe, resembling ballet flats, often in a soft color, designed for comfort and ease of wear. |
| 👠 | high-heeled shoe | A stylish high-heeled shoe, often in black or red, featuring a pointed toe and a slender heel. |
| 👡 | woman’s sandal | A woman’s sandal, typically featuring a strap over the toes and an open back, often in bright colors. |
| 🩰 | ballet shoes | A pair of ballet shoes, usually pink or light-colored, designed for dance with a soft sole. |
| 👢 | woman’s boot | A stylish woman’s boot, often knee-high, featuring a sleek design and typically made of leather. |
| 🪮 | hair pick | A hair pick, often with a wide-toothed design, used for grooming textured hair, usually in a bright color. |
| 👑 | crown | A decorative crown, often gold or jeweled, symbolizing royalty, with points and embellishments. |
| 👒 | woman’s hat | A wide-brimmed woman’s hat, often in a light color, typically adorned with a ribbon or floral decoration. |
| 🎩 | top hat | A tall, black top hat, often associated with formal wear or magic acts, featuring a flat top and a wide brim. |
| 🎓 | graduation cap | A black graduation cap with a flat square top and a tassel, symbolizing academic achievement. |
| 🧢 | billed cap | A casual baseball cap, often in a solid color with a curved brim, typically worn for sun protection. |
| 🪖 | military helmet | A military helmet, usually olive green, designed for protection in combat situations. |
| ⛑️ | rescue worker’s helmet | A bright red rescue worker’s helmet, often featuring a cross symbol, used for safety in emergencies. |
| 📿 | prayer beads | A string of prayer beads, often colorful, used for meditation or religious practices. |
| 💄 | lipstick | A tube of lipstick, typically in a bright red color, used for applying color to the lips. |
| 💍 | ring | A gold ring, often featuring a large gemstone, symbolizing engagement or marriage. |
| 💎 | gem stone | A sparkling diamond, typically clear and multifaceted, representing luxury or preciousness. |
| 🔇 | muted speaker | A muted speaker icon, represented as a speaker with a slash through it, indicating silence. |
| 🔈 | speaker low volume | A speaker icon with sound waves, depicted in a low volume setting, indicating soft sound. |
| 🔉 | speaker medium volume | A speaker icon with sound waves, depicted in a medium volume setting, indicating moderate sound. |
| 🔊 | speaker high volume | A speaker icon with sound waves, depicted in a high volume setting, indicating loud sound. |
| 📢 | loudspeaker | A loudspeaker, often depicted in a cone shape, used for amplifying sound in public settings. |
| 📣 | megaphone | A megaphone, typically in a cone shape, used for amplifying a person’s voice, often seen at events. |
| 📯 | postal horn | A postal horn, curved and often gold or brass in color, used for signaling or announcing. |
| 🔔 | bell | A traditional bell, often gold or silver, with a rounded shape and a clapper inside for ringing. |
| 🔕 | bell with slash | A bell icon with a slash through it, indicating that the bell is muted or not to be rung. |
| 🎼 | musical score | A musical score, depicted as sheets of music with notes, representing written music. |
| 🎵 | musical note | A single black musical note symbol with a curved stem and a rounded head, often depicted on a white background. |
| 🎶 | musical notes | Two black musical notes, one with a curved stem and the other with a straight stem, positioned closely together, representing harmony and melody. |
| 🎙️ | studio microphone | A silver studio microphone with a round top and a textured grille, mounted on a black stand, used for recording audio. |
| 🎚️ | level slider | A rectangular audio level slider with a vertical track and a movable knob, often depicted in gray, used for adjusting sound levels. |
| 🎛️ | control knobs | A panel with multiple circular control knobs, typically in various colors, used for adjusting sound effects or levels in music production. |
| 🎤 | microphone | A classic black microphone with a rounded top, often associated with singing or public speaking, held by a hand or on a stand. |
| 🎧 | headphone | A pair of over-ear headphones, typically black or gray, with a padded headband and large ear cups, designed for listening to music. |
| 📻 | radio | A vintage-style radio with a rectangular shape, featuring a speaker grill, knobs for tuning, and often depicted in brown or silver. |
| 🎷 | saxophone | A shiny gold saxophone with a curved body and multiple keys, representing jazz music and often associated with smooth melodies. |
| 🪗 | accordion | A rectangular accordion with bellows and keys, often depicted in bright colors, used for playing folk and traditional music. |
| 🎸 | guitar | An electric guitar with a sleek body, typically in colors like red or black, featuring strings and a neck for playing music. |
| 🎹 | musical keyboard | A black and white keyboard with piano keys, often depicted in a rectangular shape, used for playing various musical notes. |
| 🎺 | trumpet | A shiny brass trumpet with a flared bell and three valves, often associated with jazz and classical music performances. |
| 🎻 | violin | A wooden violin with a curved body and four strings, typically depicted in brown, often associated with orchestral music. |
| 🪕 | banjo | A banjo with a round body, a long neck, and strings, often depicted in brown or yellow, used in folk and bluegrass music. |
| 🥁 | drum | A classic drum, typically depicted in red or brown, with a circular shape and two drumsticks resting on top. |
| 🪘 | long drum | A tall, cylindrical drum with a wide body, often depicted in brown, used for playing rhythmic beats. |
| 🪇 | maracas | A pair of maracas, typically depicted in bright colors, with a rounded shape and handles, used for creating rhythmic sounds. |
| 🪈 | flute | A long, slender flute, often depicted in silver or gold, with finger holes along its body, used for playing melodic tunes. |
| | harp | A harp with a triangular frame, strings, and a curved top, often depicted in gold or wood tones, associated with classical music. |
| 📱 | mobile phone | A sleek mobile phone with a rectangular shape and a touchscreen, typically depicted in black or silver. |
| 📲 | mobile phone with arrow | A mobile phone with an arrow pointing to it, indicating an action such as downloading or sending, typically in black or silver. |
| ☎️ | telephone | A traditional telephone with a rotary dial and a handset, often depicted in black or gray. |
| 📞 | telephone receiver | A telephone receiver, typically depicted in black, with a curved shape designed for holding to the ear. |
| 📟 | pager | A small pager with a rectangular shape and a screen, often depicted in gray or black, used for receiving messages. |
| 📠 | fax machine | A fax machine with a flat top and a paper tray, typically depicted in gray, used for sending and receiving documents. |
| 🔋 | battery | A green battery icon with a positive and negative terminal, representing power storage. |
| 🪫 | low battery | A battery icon with a red warning symbol indicating low power, typically depicted in green with a red outline. |
| 🔌 | electric plug | An electric plug with two prongs, typically depicted in black or gray, used for connecting devices to a power source. |
| 💻 | laptop | A laptop computer with a rectangular screen and keyboard, often depicted in silver or black. |
| 🖥️ | desktop computer | A desktop computer with a monitor and a separate keyboard, typically depicted in gray or black. |
| 🖨️ | printer | A printer with a flat top and paper tray, often depicted in gray, used for printing documents. |
| ⌨️ | keyboard | A computer keyboard with a rectangular shape and multiple keys, typically depicted in black or gray. |
| 🖱️ | computer mouse | A computer mouse with a rounded shape and two buttons, typically depicted in black or gray. |
| 🖲️ | trackball | A trackball with a spherical top that can be rotated, typically depicted in gray, used for navigating a computer screen. |
| 💽 | computer disk | A small, round computer disk, often depicted in blue, used for data storage. |
| 💾 | floppy disk | A floppy disk with a square shape and a metal shutter, typically depicted in gray, used for storing data. |
| 💿 | optical disk | An optical disk, typically depicted in silver or blue, used for storing digital data like music or videos. |
| 📀 | dvd | A DVD with a shiny surface, typically depicted in silver, used for storing movies or other digital content. |
| 🧮 | abacus | An abacus with a wooden frame and colorful beads on rods, used for performing calculations. |
| 🎥 | movie camera | A black movie camera with a large lens and a small viewfinder, resembling a classic film camera. |
| 🎞️ | film frames | A strip of film frames, showing a series of small rectangular images, typically in black and white. |
| 📽️ | film projector | A vintage film projector with a large lens and reels on either side, often depicted in gray or black. |
| 🎬 | clapper board | A clapperboard, typically black and white, with a hinged top that is used to mark the start of a scene in filming. |
| 📺 | television | A retro television set with a rectangular screen, typically black with knobs and antennas on top. |
| 📷 | camera | A classic camera with a large lens and a flash, usually depicted in black or gray. |
| 📸 | camera with flash | A camera with a flash, showing a lens and a bright flash symbol, often in black and silver. |
| 📹 | video camera | A handheld video camera with a lens and a small viewfinder, typically in gray or black. |
| 📼 | videocassette | An old-fashioned videocassette tape, usually depicted in black with a label on the front. |
| 🔍 | magnifying glass tilted left | A magnifying glass with a circular lens and a long handle, tilted to the left, typically in silver or black. |
| 🔎 | magnifying glass tilted right | A magnifying glass with a circular lens and a long handle, tilted to the right, typically in silver or black. |
| 🕯️ | candle | A simple candle with a tall, thin body and a flame flickering at the top, usually in yellow or white. |
| 💡 | light bulb | A light bulb, typically depicted in a bright yellow or white, with a classic bulb shape. |
| 🔦 | flashlight | A flashlight with a cylindrical body and a round lens at the front, often in black or silver. |
| 🏮 | red paper lantern | A red paper lantern, round in shape, with a handle at the top, often used for decoration. |
| 🪔 | diya lamp | A diya lamp, a small oil lamp with a wide base and a flame at the top, often depicted in brown or gold. |
| 📔 | notebook with decorative cover | A notebook with a decorative cover, typically in a bright color with intricate designs. |
| 📕 | closed book | A closed book, usually depicted in red with a simple cover design. |
| 📖 | open book | An open book with visible pages, typically in a light color, suggesting knowledge or storytelling. |
| 📗 | green book | A green book, closed with a smooth cover, often representing education or reading. |
| 📘 | blue book | A blue book with a smooth cover, typically closed and representing education or literature. |
| 📙 | orange book | An orange book, closed with a bright cover, often used to symbolize reading or knowledge. |
| 📚 | books | A stack of books in various colors, symbolizing knowledge and education. |
| 📓 | notebook | A simple notebook, typically with a plain cover and lined pages. |
| 📒 | ledger | A ledger, resembling a notebook but often depicted with a more formal cover. |
| 📃 | page with curl | A page of paper with a slight curl at the top, suggesting a document or report. |
| 📜 | scroll | A scroll, rolled up at both ends, often depicted with ancient writing or designs. |
| 📄 | page facing up | A single sheet of paper facing upwards, typically plain and white. |
| 📰 | newspaper | A folded newspaper, usually depicted with text and images on the front, representing news. |
| 🗞️ | rolled-up newspaper | A rolled-up newspaper, tightly rolled and often depicted with a visible headline. |
| 📑 | bookmark tabs | Bookmark tabs, typically shown as several small colored tabs sticking out from the side of a book. |
| 🔖 | bookmark | A bookmark, usually depicted as a ribbon or tag that marks a place in a book. |
| 🏷️ | label | A simple label, often depicted as a rectangular tag with a string attached. |
| 💰 | money bag | A green money bag, typically overflowing with coins or cash, symbolizing wealth. |
| 🪙 | coin | A gold coin, round and shiny, often representing currency or money. |
| 💴 | yen banknote | A yen banknote, typically green with intricate designs and symbols representing currency. |
| 💵 | dollar banknote | A dollar banknote, usually green with a portrait and other designs symbolizing currency. |
| 💶 | euro banknote | A euro banknote, typically depicted in a light color with various designs and symbols. |
| 💷 | pound banknote | A pound banknote, usually in a purple or blue color with intricate designs representing currency. |
| 💸 | money with wings | A banknote with wings, symbolizing money flying away, often depicted in green. |
| 💳 | credit card | A rectangular credit card with a blue and white design, featuring a chip on the left side. |
| 🧾 | receipt | A white receipt with printed text and a slight curl at the top, resembling a rolled-up paper. |
| 💹 | chart increasing with yen | A graph chart with a rising green line, overlaid on a background featuring the yen symbol in yellow. |
| ✉️ | envelope | A simple white envelope with a pointed flap, representing traditional mail. |
| 📧 | An envelope with a blue outline and a white letter symbol inside, indicating electronic mail. | |
| 📨 | incoming envelope | An envelope with a downward arrow, suggesting an incoming message, depicted in a light blue color. |
| 📩 | envelope with arrow | A white envelope with a green arrow pointing downwards, indicating a message being sent. |
| 📤 | outbox tray | A tray with an open top, containing letters or documents, symbolizing outgoing mail. |
| 📥 | inbox tray | A tray with an open top, filled with letters or documents, representing incoming mail. |
| 📦 | package | A brown cardboard box with flaps, suggesting a package ready for delivery. |
| 📫 | closed mailbox with raised flag | A closed mailbox with a red flag raised, indicating that there is mail to be sent. |
| 📪 | closed mailbox with lowered flag | A closed mailbox with a red flag lowered, indicating no outgoing mail. |
| 📬 | open mailbox with raised flag | An open mailbox with a red flag raised, suggesting that there is mail inside. |
| 📭 | open mailbox with lowered flag | An open mailbox with a red flag lowered, indicating it is empty. |
| 📮 | postbox | A red postbox with a rounded top, typically used for mailing letters. |
| 🗳️ | ballot box with ballot | A ballot box with a slot on top and a ballot paper inserted, symbolizing voting. |
| ✏️ | pencil | A yellow pencil with a sharpened tip and an eraser at the end, used for writing. |
| ✒️ | black nib | A black fountain pen with a nib, designed for elegant writing. |
| 🖋️ | fountain pen | A fountain pen with a sleek design, featuring a shiny body and a pointed nib. |
| 🖊️ | pen | A blue ink pen with a smooth barrel and a pointed tip, used for writing. |
| 🖌️ | paintbrush | A paintbrush with a wooden handle and bristles, used for painting. |
| 🖍️ | crayon | A crayon with a pointed tip, typically in bright colors, used for coloring. |
| 📝 | memo | A notepad with a pencil resting on it, suggesting notes or memos being taken. |
| 💼 | briefcase | A black briefcase with a handle, typically used for carrying documents or a laptop. |
| 📁 | file folder | A yellow file folder, slightly open, used for organizing documents. |
| 📂 | open file folder | An open file folder, revealing documents inside, typically in a light color. |
| 🗂️ | card index dividers | A set of card index dividers, arranged vertically, used for organizing files. |
| 📅 | calendar | A wall calendar with a grid layout, displaying dates, typically in white and blue. |
| 📆 | tear-off calendar | A tear-off calendar with pages hanging down, showing the current date. |
| 🗒️ | spiral notepad | A spiral notepad with pages bound at the top, suggesting notes or lists. |
| 🗓️ | spiral calendar | A spiral calendar with a grid layout, typically showing dates and months. |
| 📇 | card index | A card index with a set of cards, used for organizing contacts or information. |
| 📈 | chart increasing | A graph chart with a rising line in green, indicating growth or increase. |
| 📉 | chart decreasing | A graph chart with a declining line in red, indicating a decrease. |
| 📊 | bar chart | A bar chart with vertical bars in different colors, representing data visually. |
| 📋 | clipboard | A clipboard with a sheet of paper attached, used for holding notes or lists. |
| 📌 | pushpin | A red pushpin with a sharp point, used for attaching papers to a board. |
| 📍 | round pushpin | A round pushpin in red, typically used for marking locations on a map. |
| 📎 | paperclip | A silver paperclip, shaped like an elongated oval, used for holding papers together. |
| 🖇️ | linked paperclips | Two linked paperclips, interlocked in a chain-like fashion, used for organizing papers. |
| 📏 | straight ruler | A straight ruler, typically rectangular and flat, often gray or metallic, with measurement markings along one edge. |
| 📐 | triangular ruler | A triangular ruler shaped like a right triangle, usually in a bright color like blue or yellow, with measurement markings along its edges. |
| ✂️ | scissors | A pair of scissors with shiny metal blades and red or black handles, positioned open as if ready to cut. |
| 🗃️ | card file box | A card file box, resembling a small, rectangular container with a lid, often depicted in a light brown or beige color. |
| 🗄️ | file cabinet | A file cabinet, typically a tall, gray or metallic structure with multiple drawers for storing documents. |
| 🗑️ | wastebasket | A wastebasket, usually cylindrical and depicted in a dark color like black or gray, with an open top. |
| 🔒 | locked | A padlock, shown in a metallic color, with a curved shackle at the top and a solid body, indicating it is locked. |
| 🔓 | unlocked | An unlocked padlock, similar in shape to the locked version but with the shackle raised, indicating it’s open. |
| 🔏 | locked with pen | A padlock with a pen, showing a metallic lock body with a pen nib inserted into the top, symbolizing privacy. |
| 🔐 | locked with key | A padlock with a keyhole, depicted in a metallic color with a key inserted, indicating it is securely locked. |
| 🔑 | key | A key, typically gold or silver, with a distinctive shape featuring a long shaft and a head with grooves. |
| 🗝️ | old key | An old-fashioned key, often depicted in a darker metallic color with an ornate design and a distinctive bow. |
| 🔨 | hammer | A hammer with a wooden or metallic handle and a flat striking face, often shown in a brown or gray color. |
| 🪓 | axe | An axe with a wooden handle and a shiny metal blade, angled as if ready to chop wood. |
| ⛏️ | pick | A pickaxe, featuring a long handle and a pointed metal head, often depicted in dark colors. |
| ⚒️ | hammer and pick | Crossed tools consisting of a hammer and a pickaxe, both shown in metallic colors, symbolizing labor. |
| 🛠️ | hammer and wrench | A combination of a hammer and a wrench, depicted together, with metallic colors representing tools. |
| 🗡️ | dagger | A dagger with a slender, pointed blade and a decorative hilt, often shown in silver or gray. |
| ⚔️ | crossed swords | Crossed swords, each with a long blade and a hilt, depicted in metallic colors, symbolizing combat. |
| 💣 | bomb | A bomb, typically round and black with a lit fuse on top, suggesting an impending explosion. |
| 🪃 | boomerang | A boomerang, shaped like a curved, angular piece of wood, often depicted in earthy colors. |
| 🏹 | bow and arrow | A bow with a taut string and an arrow nocked, shown in natural wood colors, symbolizing archery. |
| 🛡️ | shield | A shield, typically round or oval, shown in metallic colors, often with a decorative emblem. |
| 🪚 | carpentry saw | A carpentry saw with a serrated blade and a handle, depicted in metallic and wooden colors. |
| 🔧 | wrench | A wrench, shown in a metallic color with an adjustable jaw, symbolizing tools for tightening or loosening. |
| 🪛 | screwdriver | A screwdriver with a flat or Phillips head, depicted in metallic colors with a distinctive handle. |
| 🔩 | nut and bolt | A nut and bolt, shown together, with the bolt having a threaded shaft and the nut being a hexagonal shape. |
| ⚙️ | gear | A gear, typically circular with teeth around the edge, depicted in metallic colors, symbolizing machinery. |
| 🗜️ | clamp | A clamp, shown as a metallic tool with a screw mechanism, used to hold objects tightly together. |
| ⚖️ | balance scale | A balance scale, depicted with two pans suspended from a horizontal beam, symbolizing fairness and justice. |
| 🦯 | white cane | A white cane, slender and straight, often depicted with a red tip, symbolizing accessibility for the visually impaired. |
| 🔗 | link | A link, shown as a chain link in metallic colors, representing connection or attachment. |
| ⛓️💥 | broken chain | A broken chain, depicted with links that are separated, suggesting a disruption or failure. |
| ⛓️ | chains | Chains, shown as interconnected links, typically in metallic colors, symbolizing bondage or connection. |
| 🪝 | hook | A hook, depicted as a curved piece of metal with a pointed end, often used for catching or holding. |
| 🧰 | toolbox | A toolbox, typically rectangular and red, with a handle on top, containing various tools. |
| 🧲 | magnet | A magnet, often shaped like a horseshoe, depicted in red and silver, symbolizing attraction. |
| 🪜 | ladder | A ladder, depicted with several rungs and two side rails, usually in a wooden or metallic color. |
| | shovel | A shovel, shown with a broad, flat blade and a long handle, often depicted in earthy colors. |
| ⚗️ | alembic | An alembic, a laboratory glass apparatus with a round bottom and a long neck, used for distillation. |
| 🧪 | test tube | A glass test tube filled with a colored liquid, typically cylindrical with a rounded bottom and a narrow neck. |
| 🧫 | petri dish | A shallow, round petri dish with a transparent lid, often used for culturing bacteria or cells. |
| 🧬 | dna | A double helix structure representing DNA, consisting of two intertwined strands with a series of colored base pairs. |
| 🔬 | microscope | A microscope with a round base and an adjustable lens, often depicted in silver or gray, used for magnifying small objects. |
| 🔭 | telescope | A telescope with a long tube and a tripod stand, often shown in dark colors, used for observing distant objects in space. |
| 📡 | satellite antenna | A satellite antenna with a large, circular dish mounted on a pole, often depicted in gray or metallic colors. |
| 💉 | syringe | A syringe with a clear barrel and a sharp needle, typically shown filled with a liquid, often used for injections. |
| 🩸 | drop of blood | A single drop of red blood, round and glossy, representing a small amount of blood. |
| 💊 | pill | A capsule-shaped pill, typically shown in two colors, representing medication. |
| 🩹 | adhesive bandage | An adhesive bandage, typically tan or beige, with a central pad and rounded edges for covering wounds. |
| 🩼 | crutch | A crutch, usually depicted in wood or metal, with a curved top and a straight shaft for support. |
| 🩺 | stethoscope | A stethoscope with two earpieces connected to a flexible tube leading to a round chest piece, often shown in black or dark blue. |
| 🩻 | x-ray | An x-ray image showing a skeletal structure, typically in shades of gray, representing bones. |
| 🚪 | door | A rectangular door, often shown in brown or white, with a simple handle, leading to another space. |
| 🛗 | elevator | An elevator, depicted as a small box with doors, usually shown in metallic colors, moving vertically. |
| 🪞 | mirror | A rectangular mirror with a decorative frame, reflecting the surroundings. |
| 🪟 | window | A window with a rectangular frame, often depicted with transparent glass, allowing light to pass through. |
| 🛏️ | bed | A simple bed with a mattress and a headboard, typically shown in neutral colors. |
| 🛋️ | couch and lamp | A couch with soft cushions and a lamp beside it, often depicted in warm colors. |
| 🪑 | chair | A simple chair with a backrest, often shown in wood or plastic, designed for sitting. |
| 🚽 | toilet | A white toilet bowl, typically depicted with a seat and a flush handle, used in bathrooms. |
| 🪠 | plunger | A plunger with a rubber suction cup at the end of a wooden handle, used for unclogging drains. |
| 🚿 | shower | A showerhead with water droplets, typically shown in silver, used for bathing. |
| 🛁 | bathtub | A bathtub, usually depicted in white, filled with water, used for relaxing baths. |
| 🪤 | mouse trap | A mouse trap with a wooden base and a metal spring mechanism, often shown with cheese as bait. |
| 🪒 | razor | A razor with a sharp blade and a handle, typically shown in silver or gray, used for shaving. |
| 🧴 | lotion bottle | A lotion bottle with a pump or squeeze top, often shown in pastel colors, used for dispensing lotion. |
| 🧷 | safety pin | A safety pin, typically metallic, with a pointed end and a clasp, used for fastening fabric. |
| 🧹 | broom | A broom with a long handle and a bundle of bristles at the end, often depicted in brown or natural colors. |
| 🧺 | basket | A woven basket, typically round or oval, often shown with a handle, used for carrying items. |
| 🧻 | roll of paper | A roll of paper towels or toilet paper, typically white, wound around a cardboard tube. |
| 🪣 | bucket | A bucket, usually depicted in bright colors, with a handle for carrying liquids or items. |
| 🧼 | soap | A bar of soap, typically rectangular and white or colored, used for cleaning. |
| 🫧 | bubbles | A cluster of floating bubbles, often shown in translucent colors, representing soap bubbles. |
| 🪥 | toothbrush | A toothbrush with bristles at one end and a long handle, often shown in bright colors. |
| 🧽 | sponge | A sponge, typically depicted as a porous, yellow or beige object, used for cleaning. |
| 🧯 | fire extinguisher | A fire extinguisher, usually red, with a nozzle and a handle, used for putting out fires. |
| 🛒 | shopping cart | A shopping cart with a wire frame and wheels, typically shown in gray or metallic colors, used for carrying groceries. |
| 🚬 | cigarette | A cigarette, typically shown as a small white cylinder with a brown filter, representing smoking. |
| ⚰️ | coffin | A coffin, typically depicted as a rectangular box, often shown in dark colors, used for burial. |
| 🪦 | headstone | A gray headstone with a rounded top, often found in cemeteries, symbolizing a grave or memorial. |
| ⚱️ | funeral urn | A simple, elegant urn, typically in a muted color, used for holding ashes, with a narrow neck and a rounded body. |
| 🧿 | nazar amulet | A blue, eye-shaped amulet with a black center, often used as a charm to ward off evil, resembling an eye with a circular outline. |
| 🪬 | hamsa | A hand-shaped amulet, often depicted in a light color, with a prominent thumb and fingers, symbolizing protection and good fortune. |
| 🗿 | moai | A large, stone statue with a solemn face, characterized by a flat nose and deep-set eyes, resembling the famous moai of Easter Island. |
| 🪧 | placard | A rectangular placard, typically in a bright color, used for demonstrations or notices, held up by a stick. |
| 🪪 | identification card | An identification card, usually rectangular, displaying personal information and often featuring a photo, in a simple design. |
Symbols (224)
| Emoji | Name | Description |
|---|---|---|
| 🏧 | ATM sign | A blue sign with a white depiction of an ATM, indicating a location where cash can be withdrawn. |
| 🚮 | litter in bin sign | A sign showing a trash bin with a hand dropping litter into it, emphasizing the importance of disposing of waste properly. |
| 🚰 | potable water | A sign featuring a water droplet with a glass, indicating that the water is safe to drink. |
| ♿ | wheelchair symbol | A blue symbol of a wheelchair, indicating accessibility for individuals with mobility challenges. |
| 🚹 | men’s room | A sign depicting a male figure, indicating the men’s restroom, often in a simple silhouette style. |
| 🚺 | women’s room | A sign depicting a female figure, indicating the women’s restroom, often in a simple silhouette style. |
| 🚻 | restroom | A sign featuring both a male and female figure, indicating a unisex or general restroom. |
| 🚼 | baby symbol | A symbol of a baby, often shown as a simple outline, indicating a baby changing area. |
| 🚾 | water closet | A sign indicating a water closet, featuring a toilet icon, typically used to denote restroom facilities. |
| 🛂 | passport control | A symbol representing passport control, often depicted with a person and a passport, indicating border security. |
| 🛃 | customs | A customs symbol featuring a suitcase and a person, indicating a checkpoint for declaring goods. |
| 🛄 | baggage claim | A baggage claim sign, featuring a suitcase, indicating where to collect checked luggage after a flight. |
| 🛅 | left luggage | A left luggage sign, often depicting a suitcase, indicating a place to store bags temporarily. |
| ⚠️ | warning | A yellow triangle with a black exclamation mark inside, signaling caution or warning. |
| 🚸 | children crossing | A sign showing a child walking, indicating a pedestrian crossing zone for children. |
| ⛔ | no entry | A red circle with a diagonal line crossing it, indicating no entry or forbidden access. |
| 🚫 | prohibited | A red circle with a diagonal line, indicating that something is prohibited, often used for smoking or entry. |
| 🚳 | no bicycles | A red circle with a bicycle and a diagonal line, indicating that bicycles are not allowed in this area. |
| 🚭 | no smoking | A red circle with a cigarette and a diagonal line, indicating that smoking is prohibited. |
| 🚯 | no littering | A red circle with a trash bin and a diagonal line, indicating that littering is not allowed. |
| 🚱 | non-potable water | A red circle with a water droplet and a diagonal line, indicating that the water is non-potable or unsafe to drink. |
| 🚷 | no pedestrians | A red circle with a pedestrian and a diagonal line, indicating that pedestrians are not allowed in this area. |
| 📵 | no mobile phones | A red circle with a mobile phone and a diagonal line, indicating that mobile phones are prohibited. |
| 🔞 | no one under eighteen | A red circle with the number 18 inside, indicating that access is restricted to those 18 years and older. |
| ☢️ | radioactive | A symbol depicting three black triangular shapes radiating from a central circle, indicating radioactive materials. |
| ☣️ | biohazard | A symbol featuring three interlocking circles with a central biohazard symbol, indicating biohazardous materials. |
| ⬆️ | up arrow | An upward-pointing arrow, typically in a solid color, indicating direction. |
| ↗️ | up-right arrow | An arrow pointing diagonally up and to the right, indicating direction. |
| ➡️ | right arrow | A right-pointing arrow, typically in a solid color, indicating direction. |
| ↘️ | down-right arrow | An arrow pointing diagonally down and to the right, indicating direction. |
| ⬇️ | down arrow | A downward-pointing arrow, typically in a solid color, indicating direction. |
| ↙️ | down-left arrow | An arrow pointing diagonally down and to the left, indicating direction. |
| ⬅️ | left arrow | A left-pointing arrow, typically in a solid color, indicating direction. |
| ↖️ | up-left arrow | An arrow pointing diagonally up and to the left, with a simple triangular shape. |
| ↕️ | up-down arrow | An arrow with a vertical line and two triangular heads, one pointing up and the other down. |
| ↔︎️ | left-right arrow | A horizontal arrow with a straight line and two triangular heads, one pointing left and the other right. |
| ↩︎️ | right arrow curving left | An arrow that curves to the left, with a straight shaft and a triangular head, indicating a return direction. |
| ↪️ | left arrow curving right | An arrow that curves to the right, featuring a straight shaft and a triangular head, suggesting a change in direction. |
| ⤴️ | right arrow curving up | An arrow curving upwards to the right, with a straight shaft and a pointed tip, indicating an upward turn. |
| ⤵️ | right arrow curving down | An arrow curving downwards to the right, featuring a straight shaft and a pointed tip, suggesting a downward turn. |
| 🔃 | clockwise vertical arrows | Two vertical arrows forming a circle, indicating a clockwise rotation or refresh action. |
| 🔄 | counterclockwise arrows button | Two arrows forming a circular shape in a counterclockwise direction, symbolizing a repeat or reload action. |
| 🔙 | BACK arrow | A left-pointing arrow with a simple triangular head, indicating a backward direction. |
| 🔚 | END arrow | A right-pointing arrow with a triangular head, suggesting an endpoint or conclusion. |
| 🔛 | ON! arrow | An arrow pointing to the right with an exclamation mark, indicating an active or ‘on’ status. |
| 🔜 | SOON arrow | An arrow pointing to the right with the word ‘SOON,’ suggesting something is forthcoming. |
| 🔝 | TOP arrow | An upward-pointing arrow with a triangular head, indicating the top or highest point. |
| 🛐 | place of worship | A symbol representing a place of worship, depicted as a structure with a dome and a flag atop. |
| ⚛️ | atom symbol | A stylized atom symbol, featuring a central dot surrounded by three elliptical orbits. |
| 🕉️ | om | The ‘Om’ symbol, consisting of a stylized representation of the sacred sound in Hinduism. |
| ✡️ | star of David | A six-pointed star, formed by two overlapping triangles, often associated with Judaism. |
| ☸️ | wheel of dharma | A wheel with eight spokes, representing the wheel of dharma in Buddhism. |
| ☯️ | yin yang | A circular symbol divided into two swirling sections, one black and one white, representing yin and yang. |
| ✝️ | latin cross | A simple cross shape, representing the Latin cross, commonly associated with Christianity. |
| ☦️ | orthodox cross | An ornate cross with a longer vertical shaft and two shorter horizontal bars, representing the Orthodox Christian cross. |
| ☪️ | star and crescent | A crescent moon with a five-pointed star, symbolizing Islam. |
| ☮️ | peace symbol | A peace symbol, featuring a circle with three lines radiating downward, representing peace and anti-nuclear movements. |
| 🕎 | menorah | A menorah, a seven-branched candelabrum, with a central shaft and six branches, often used in Jewish traditions. |
| 🔯 | dotted six-pointed star | A six-pointed star made up of dots, often associated with Jewish symbolism. |
| 🪯 | khanda | The khanda symbol, featuring a double-edged sword in the center, flanked by two single-edged swords and a circular emblem, representing Sikhism. |
| ♈ | Aries | A symbol resembling a ram’s horns, representing the zodiac sign Aries. |
| ♉ | Taurus | A symbol depicting a bull’s head, representing the zodiac sign Taurus. |
| ♊ | Gemini | Two figures resembling twins, representing the zodiac sign Gemini. |
| ♋ | Cancer | A symbol resembling a crab, representing the zodiac sign Cancer. |
| ♌ | Leo | A lion’s head, representing the zodiac sign Leo. |
| ♍ | Virgo | A stylized letter ‘M’ or a maiden, representing the zodiac sign Virgo. |
| ♎ | Libra | A symbol resembling a balance scale, representing the zodiac sign Libra. |
| ♏ | Scorpio | A scorpion shape, representing the zodiac sign Scorpio. |
| ♐ | Sagittarius | An arrow pointing upward, representing an archer, symbolizing the zodiac sign Sagittarius. |
| ♑ | Capricorn | A goat with a fish tail, representing the zodiac sign Capricorn. |
| ♒ | Aquarius | Wavy lines representing water, symbolizing the zodiac sign Aquarius. |
| ♓ | Pisces | Two fish swimming in opposite directions, representing the zodiac sign Pisces. |
| ⛎ | Ophiuchus | A symbol depicting a serpent entwined around a staff, representing the zodiac sign Ophiuchus. |
| 🔀 | shuffle tracks button | Two arrows crossing each other, one pointing left and the other pointing right, both in a dark color, suggesting a shuffle action. |
| 🔁 | repeat button | A circular arrow pointing clockwise, indicating a repeat action, often depicted in a dark color. |
| 🔂 | repeat single button | A circular arrow pointing clockwise with a small arrow inside, representing a single repeat action, shown in a dark color. |
| ▶️ | play button | A right-pointing triangle, symbolizing the play action, typically in a dark color. |
| ⏩ | fast-forward button | Two right-pointing triangles side by side, representing fast-forward, depicted in a dark color. |
| ⏭️ | next track button | A right-pointing triangle with a vertical line next to it, indicating the next track, usually in a dark color. |
| ⏯️ | play or pause button | A combination of a right-pointing triangle and two vertical bars, representing play or pause, shown in a dark color. |
| ◀️ | reverse button | A left-pointing triangle, symbolizing reverse action, typically in a dark color. |
| ⏪ | fast reverse button | Two left-pointing triangles side by side, indicating fast reverse, depicted in a dark color. |
| ⏮️ | last track button | A left-pointing triangle with a vertical line next to it, representing the last track, usually in a dark color. |
| 🔼 | upwards button | An upward-pointing arrow, colored red, indicating an upwards action. |
| ⏫ | fast up button | Two upward-pointing arrows stacked, representing a fast up action, shown in a dark color. |
| 🔽 | downwards button | A downward-pointing arrow, colored red, indicating a downwards action. |
| ⏬ | fast down button | Two downward-pointing arrows stacked, representing a fast down action, depicted in a dark color. |
| ⏸️ | pause button | Two vertical bars, symbolizing a pause action, usually in a dark color. |
| ⏹️ | stop button | A square shape, representing a stop action, typically in a dark color. |
| ⏺️ | record button | A red circle, symbolizing a record action. |
| ⏏️ | eject button | An open rectangle with a small triangle above it, representing an eject action, usually in a dark color. |
| 🎦 | cinema | A film camera icon, featuring a camera lens and film reel, typically in dark colors. |
| 🔅 | dim button | A dim button icon, represented by a sun symbol with downward rays, indicating low brightness. |
| 🔆 | bright button | A bright button icon, represented by a sun symbol with upward rays, indicating high brightness. |
| 📶 | antenna bars | A series of vertical bars increasing in height, representing signal strength or antenna bars. |
| 🛜 | wireless | A symbol resembling a wireless signal icon, depicting connectivity with radiating lines. |
| 📳 | vibration mode | A mobile phone icon with vibration lines, indicating vibration mode. |
| 📴 | mobile phone off | A mobile phone icon with a crossed-out symbol, indicating the phone is off. |
| ♀️ | female sign | A circular symbol with a cross extending downwards, representing the female gender. |
| ♂️ | male sign | A circular symbol with an arrow pointing upwards, representing the male gender. |
| ⚧️ | transgender symbol | A combination of male and female symbols with an additional line, representing the transgender identity. |
| ✖️ | multiply | A bold, dark cross symbol, representing multiplication. |
| ➕ | plus | A bold, dark plus sign, representing addition. |
| ➖ | minus | A bold, dark minus sign, representing subtraction. |
| ➗ | divide | A bold, dark division sign, represented by a horizontal line with dots above and below. |
| 🟰 | heavy equals sign | A thick, dark equals sign, representing equality. |
| ♾️ | infinity | A symbol resembling a sideways figure eight, representing infinity. |
| ‼️ | double exclamation mark | Two exclamation marks stacked vertically, emphasizing urgency. |
| ⁉️ | exclamation question mark | An exclamation mark above a question mark, indicating a surprised question. |
| ❓ | red question mark | A red question mark, indicating inquiry or uncertainty. |
| ❔ | white question mark | A white question mark, outlined and representing inquiry. |
| ❕ | white exclamation mark | A white exclamation mark, outlined and indicating emphasis. |
| ❗ | red exclamation mark | A red exclamation mark, indicating strong emphasis or warning. |
| 〰️ | wavy dash | A wavy line that resembles a squiggly dash, often used to indicate a pause or a decorative element. |
| 💱 | currency exchange | Two arrows forming a circular shape, one pointing up and the other down, with a dollar sign in the center, representing currency exchange. |
| 💲 | heavy dollar sign | A bold dollar sign in green, symbolizing money or financial transactions. |
| ⚕️ | medical symbol | A simple staff with a snake wrapped around it, representing medicine and healthcare. |
| ♻️ | recycling symbol | A circular symbol made of three arrows forming a triangle, indicating recycling and sustainability. |
| ⚜️ | fleur-de-lis | A decorative emblem resembling a stylized lily, often associated with royalty and elegance. |
| 🔱 | trident emblem | A trident with three prongs, often depicted in a decorative style, symbolizing power and authority. |
| 📛 | name badge | A rectangular badge with rounded corners, typically displaying a name or identification, often used in conferences. |
| 🔰 | Japanese symbol for beginner | A green symbol resembling a chevron or leaf, often used to indicate a beginner or novice. |
| ⭕ | hollow red circle | A large, hollow circle in bright red, symbolizing an empty or unfilled space. |
| ✅ | check mark button | A green check mark inside a square button, indicating something is correct or completed. |
| ☑️ | check box with check | A square box with a check mark inside, symbolizing a completed task or selection. |
| ✔️ | check mark | A simple check mark, often in green, indicating approval or correctness. |
| ❌ | cross mark | A bold red cross mark, resembling an ‘X’, used to indicate cancellation or error. |
| ❎ | cross mark button | A red cross mark inside a button, similar to the previous one, indicating a negative response. |
| ➰ | curly loop | A curly loop that twists and turns, resembling a decorative swirl. |
| ➿ | double curly loop | Two intertwined curly loops, creating a double spiral effect. |
| 〽️ | part alternation mark | A symbol resembling a combination of wavy lines, often used in musical notation. |
| ✳️ | eight-spoked asterisk | An eight-spoked asterisk, resembling a starburst or decorative star. |
| ✴️ | eight-pointed star | An eight-pointed star, symmetrical and sharp, often used for decoration. |
| ❇️ | sparkle | A sparkling starburst, giving the impression of something shining or glittering. |
| ©️ | copyright | A simple letter ‘C’ enclosed in a circle, representing copyright. |
| ®️ | registered | A letter ‘R’ enclosed in a circle, indicating a registered trademark. |
| ™️ | trade mark | A letter ‘TM’ in a small font, indicating a trademark. |
| | splatter | A colorful splatter resembling a paint drip, often associated with messiness or creativity. |
| #️⃣ | keycap: # | A keycap symbol with a pound sign, resembling a button on a keypad. |
| *️⃣ | keycap: * | A keycap symbol with an asterisk, resembling a button on a keypad. |
| 0️⃣ | keycap: 0 | A keycap symbol displaying the number zero, resembling a button on a keypad. |
| 1️⃣ | keycap: 1 | A keycap symbol displaying the number one, resembling a button on a keypad. |
| 2️⃣ | keycap: 2 | A keycap symbol displaying the number two, resembling a button on a keypad. |
| 3️⃣ | keycap: 3 | A keycap symbol displaying the number three, resembling a button on a keypad. |
| 4️⃣ | keycap: 4 | A keycap symbol displaying the number four, resembling a button on a keypad. |
| 5️⃣ | keycap: 5 | A keycap symbol displaying the number five, resembling a button on a keypad. |
| 6️⃣ | keycap: 6 | A keycap symbol displaying the number six, resembling a button on a keypad. |
| 7️⃣ | keycap: 7 | A keycap symbol displaying the number seven, resembling a button on a keypad. |
| 8️⃣ | keycap: 8 | A keycap symbol displaying the number eight, resembling a button on a keypad. |
| 9️⃣ | keycap: 9 | A keycap symbol displaying the number nine, resembling a button on a keypad. |
| 🔟 | keycap: 10 | A keycap symbol displaying the number ten, resembling a button on a keypad. |
| 🔠 | input latin uppercase | An input symbol featuring uppercase Latin letters, indicating a switch to capital letters. |
| 🔡 | input latin lowercase | An input symbol featuring lowercase Latin letters, indicating a switch to small letters. |
| 🔢 | input numbers | A square icon featuring the numbers 1, 2, 3, and 4 in white on a blue background. |
| 🔣 | input symbols | A square icon displaying various symbols like &, %, and a musical note on a blue background. |
| 🔤 | input latin letters | A square icon with the letters A, B, and C in white on a blue background. |
| 🅰️ | A button (blood type) | A red square with a white letter A inside, often used to represent blood type A. |
| 🆎 | AB button (blood type) | A red square displaying the letters A and B in white, representing blood type AB. |
| 🅱️ | B button (blood type) | A red square featuring a white letter B, commonly associated with blood type B. |
| 🆑 | CL button | A blue square with the letters C and L in white, often used to denote ‘CL’. |
| 🆒 | COOL button | A blue square with the word ‘COOL’ in white, indicating something trendy or fashionable. |
| 🆓 | FREE button | A blue square featuring the word ‘FREE’ in white, suggesting no cost. |
| ℹ️ | information | A blue circle with a white lowercase ‘i’ inside, symbolizing information. |
| 🆔 | ID button | A blue square displaying the letters I and D in white, representing identification. |
| Ⓜ️ | circled M | A green circle with a white letter M inside, often used to indicate a subway station. |
| 🆕 | NEW button | A blue square with the word ‘NEW’ in white, indicating something recent or novel. |
| 🆖 | NG button | A blue square displaying the letters N and G in white, often used to indicate ‘not good’. |
| 🅾️ | O button (blood type) | A red square featuring a white letter O, commonly associated with blood type O. |
| 🆗 | OK button | A blue square with the letters O and K in white, indicating approval or agreement. |
| 🅿️ | P button | A red square with a white letter P inside, often used to denote parking. |
| 🆘 | SOS button | A blue square displaying the letters S, O, and S in white, indicating a distress signal. |
| 🆙 | UP! button | A blue square with the word ‘UP!’ in white, suggesting an upward direction or increase. |
| 🆚 | VS button | A blue square featuring the letters V and S in white, indicating a versus matchup. |
| 🈁 | Japanese “here” button | A red square with a white katakana character representing ‘here’ in Japanese. |
| 🈂️ | Japanese “service charge” button | A red square with a white symbol indicating ‘service charge’ in Japanese. |
| 🈷️ | Japanese “monthly amount” button | A red square displaying a white symbol representing ‘monthly amount’ in Japanese. |
| 🈶 | Japanese “not free of charge” button | A red square with a white symbol indicating ‘not free of charge’ in Japanese. |
| 🈯 | Japanese “reserved” button | A red square displaying a white symbol for ‘reserved’ in Japanese. |
| 🉐 | Japanese “bargain” button | A red square with a white symbol indicating ‘bargain’ in Japanese. |
| 🈹 | Japanese “discount” button | A red square displaying a white symbol indicating ‘discount’ in Japanese. |
| 🈚 | Japanese “free of charge” button | A red square with a white symbol indicating ‘free of charge’ in Japanese. |
| 🈲 | Japanese “prohibited” button | A red square displaying a white symbol indicating ‘prohibited’ in Japanese. |
| 🉑 | Japanese “acceptable” button | A red square with a white symbol indicating ‘acceptable’ in Japanese. |
| 🈸 | Japanese “application” button | A red square displaying a white symbol for ‘application’ in Japanese. |
| 🈴 | Japanese “passing grade” button | A red square with a white symbol indicating ‘passing grade’ in Japanese. |
| 🈳 | Japanese “vacancy” button | A red square displaying a white symbol indicating ‘vacancy’ in Japanese. |
| ㊗️ | Japanese “congratulations” button | A red square with a white symbol representing ‘congratulations’ in Japanese. |
| ㊙️ | Japanese “secret” button | A red square with a white symbol indicating ‘secret’ in Japanese. |
| 🈺 | Japanese “open for business” button | A red square displaying a white symbol indicating ‘open for business’ in Japanese. |
| 🈵 | Japanese “no vacancy” button | A red square with a white symbol indicating ‘no vacancy’ in Japanese. |
| 🔴 | red circle | A solid red circle, representing the color red. |
| 🟠 | orange circle | A solid orange circle, representing the color orange. |
| 🟡 | yellow circle | A solid yellow circle, representing the color yellow. |
| 🟢 | green circle | A solid green circle. |
| 🔵 | blue circle | A solid blue circle. |
| 🟣 | purple circle | A solid purple circle. |
| 🟤 | brown circle | A solid brown circle. |
| ⚫ | black circle | A solid black circle. |
| ⚪ | white circle | A solid white circle. |
| 🟥 | red square | A solid red square. |
| 🟧 | orange square | A solid orange square. |
| 🟨 | yellow square | A solid yellow square. |
| 🟩 | green square | A solid green square. |
| 🟦 | blue square | A solid blue square. |
| 🟪 | purple square | A solid purple square. |
| 🟫 | brown square | A solid brown square. |
| ⬛ | black large square | A large solid black square. |
| ⬜ | white large square | A large solid white square. |
| ◼️ | black medium square | A medium solid black square. |
| ◻️ | white medium square | A medium solid white square. |
| ◾ | black medium-small square | A medium-small solid black square. |
| ◽ | white medium-small square | A medium-small solid white square. |
| ▪️ | black small square | A small solid black square. |
| ▫️ | white small square | A small solid white square. |
| 🔶 | large orange diamond | A large orange diamond shape. |
| 🔷 | large blue diamond | A large blue diamond shape. |
| 🔸 | small orange diamond | A small orange diamond shape. |
| 🔹 | small blue diamond | A small blue diamond shape. |
| 🔺 | red triangle pointed up | A red triangle pointing upwards. |
| 🔻 | red triangle pointed down | A red triangle pointing downwards. |
| 💠 | diamond with a dot | A diamond shape with a dot in the center. |
| 🔘 | radio button | A circular radio button. |
| 🔳 | white square button | A white square button outlined in black. |
| 🔲 | black square button | A black square button. |
Flags (270)
| Emoji | Name | Description |
|---|---|---|
| 🏁 | chequered flag | A checkered flag, typically used to signal the end of a race. |
| 🚩 | triangular flag | A triangular flag, often used for marking locations. |
| 🎌 | crossed flags | Two crossed flags, often representing a celebration. |
| 🏴 | black flag | A solid black flag, often associated with piracy. |
| 🏳️ | white flag | A solid white flag. |
| 🏳️🌈 | rainbow flag | A rainbow flag with horizontal stripes of various colors. |
| 🏳️⚧️ | transgender flag | A transgender pride flag with pink, blue, and white stripes. |
| 🏴☠️ | pirate flag | A pirate flag featuring a skull and crossbones. |
| 🇦🇨 | flag: Ascension Island | The flag of Ascension Island, featuring a blue field with a Union Jack and a coat of arms. |
| 🇦🇩 | flag: Andorra | A vertical tricolor flag with blue on the left, yellow in the center, and red on the right, featuring a coat of arms in the yellow section. |
| 🇦🇪 | flag: United Arab Emirates | A horizontal tricolor flag with red on the left, green in the center, and black on the right, with a vertical white stripe on the left. |
| 🇦🇫 | flag: Afghanistan | A vertical tricolor flag with black on the top, red in the middle, and green on the bottom, featuring a white emblem with a mosque and two flags in the center. |
| 🇦🇬 | flag: Antigua & Barbuda | A horizontal flag with a black triangle on the left, a red triangle on the right, and a yellow stripe in the middle, featuring a coat of arms in the center. |
| 🇦🇮 | flag: Anguilla | A blue flag with a white circle in the center, containing a red shield with a white dolphin and a yellow sun above it. |
| 🇦🇱 | flag: Albania | A red flag featuring a black, double-headed eagle in the center. |
| 🇦🇲 | flag: Armenia | A horizontal tricolor flag with red on the top, blue in the middle, and orange on the bottom. |
| 🇦🇴 | flag: Angola | A horizontal flag divided horizontally into red and black with a yellow half gear and a machete crossed with a hoe in the center. |
| 🇦🇶 | flag: Antarctica | A blue and white flag with a blue field and a white silhouette of a penguin in the center. |
| 🇦🇷 | flag: Argentina | A horizontal flag with light blue stripes on the top and bottom and a white stripe in the middle, featuring a yellow sun with a face in the center. |
| 🇦🇸 | flag: American Samoa | A blue flag with a red triangle on the left side, containing a white star, and a white stripe on the right side. |
| 🇦🇹 | flag: Austria | A horizontal tricolor flag with red on the top, white in the middle, and red on the bottom. |
| 🇦🇺 | flag: Australia | A blue flag featuring the Union Jack in the top left corner and a large white star with smaller stars on the right side. |
| 🇦🇼 | flag: Aruba | A horizontal flag with a blue field, a red triangle on the left, and a yellow star in the center of the triangle. |
| 🇦🇽 | flag: Åland Islands | A blue flag with a white cross and a red triangle on the left, featuring a yellow star in the center of the triangle. |
| 🇦🇿 | flag: Azerbaijan | A horizontal tricolor flag with blue on the top, red in the middle, and green on the bottom, featuring a white crescent and an eight-pointed star. |
| 🇧🇦 | flag: Bosnia & Herzegovina | A flag with a blue field, a yellow triangle on the left, and white stars along the hypotenuse of the triangle. |
| 🇧🇧 | flag: Barbados | A vertical flag with a blue field on the top and bottom, and a yellow stripe in the center, featuring a black trident head in the middle. |
| 🇧🇩 | flag: Bangladesh | A green flag with a red circle slightly off-center to the left. |
| 🇧🇪 | flag: Belgium | A vertical tricolor flag with black on the left, yellow in the center, and red on the right. |
| 🇧🇫 | flag: Burkina Faso | A horizontal flag with red on the top, green in the middle, and a yellow star in the center. |
| 🇧🇬 | flag: Bulgaria | A horizontal tricolor flag with white on the top, green in the middle, and red on the bottom. |
| 🇧🇭 | flag: Bahrain | A red flag with a white serrated band on the left side. |
| 🇧🇮 | flag: Burundi | A vertical flag with red on the top, yellow in the middle, and green on the bottom, featuring a white star in the upper left corner. |
| 🇧🇯 | flag: Benin | A vertical flag with green on the left, yellow in the center, and red on the right, featuring a white star in the green section. |
| 🇧🇱 | flag: St. Barthélemy | A red flag with a blue field on the left side, featuring a white star in the center. |
| 🇧🇲 | flag: Bermuda | A red flag featuring a Union Jack in the top left corner and a coat of arms on the right. |
| 🇧🇳 | flag: Brunei | A diagonal bicolor flag with yellow on the top left, black on the bottom right, and a red triangle on the left side. |
| 🇧🇴 | flag: Bolivia | A horizontal tricolor flag with red on the top, yellow in the middle, and green on the bottom, featuring a coat of arms in the center. |
| 🇧🇶 | flag: Caribbean Netherlands | A flag with a blue field and a white star in the center, surrounded by a red circle. |
| 🇧🇷 | flag: Brazil | A green flag with a large yellow diamond in the center, featuring a blue globe with stars and a white band with the national motto. |
| 🇧🇸 | flag: Bahamas | A horizontal flag with a black triangle on the left, and two horizontal stripes of aquamarine and gold. |
| 🇧🇹 | flag: Bhutan | A horizontal flag with a yellow stripe on the top, a red stripe in the middle, and a green stripe on the bottom, featuring a dragon in the center. |
| 🇧🇻 | flag: Bouvet Island | A red flag with a white cross and a blue field in the upper left corner. |
| 🇧🇼 | flag: Botswana | A horizontal flag with light blue on the top, black in the center, and white on the bottom. |
| 🇧🇾 | flag: Belarus | A vertical flag with red on the top, green on the bottom, and a white ornament pattern on the left. |
| 🇧🇿 | flag: Belize | A blue flag with a white circle in the center, containing a coat of arms surrounded by green leaves. |
| 🇨🇦 | flag: Canada | A red flag with a white square in the center, featuring a red maple leaf with eleven points. |
| 🇨🇨 | flag: Cocos (Keeling) Islands | A flag with a green field and a white circle in the center, featuring a red star. |
| 🇨🇩 | flag: Congo - Kinshasa | A vertical flag with blue on the left, yellow in the center, and red on the right, featuring a yellow star in the center. |
| 🇨🇫 | flag: Central African Republic | A vertical tricolor of blue, white, and green with a red stripe on the left side, featuring a yellow star in the blue section. |
| 🇨🇬 | flag: Congo - Brazzaville | A vertical tricolor of green, yellow, and red with a coat of arms in the center. |
| 🇨🇭 | flag: Switzerland | A horizontal tricolor of red, white, and red with a white cross in the center. |
| 🇨🇮 | flag: Côte d’Ivoire | Three vertical stripes of orange, white, and green, with the orange stripe on the left. |
| 🇨🇰 | flag: Cook Islands | A blue field with a circle of white stars in the upper hoist corner and a green and yellow stripe at the bottom. |
| 🇨🇱 | flag: Chile | A horizontal stripe of blue, white, and red, with a white star in the blue section on the left. |
| 🇨🇲 | flag: Cameroon | A vertical tricolor of green, red, and yellow with a yellow star in the center of the red stripe. |
| 🇨🇳 | flag: China | A red field with five yellow stars in the top left corner, one large star surrounded by four smaller ones. |
| 🇨🇴 | flag: Colombia | Three horizontal stripes of yellow, blue, and red, with yellow on top. |
| 🇨🇵 | flag: Clipperton Island | A blue field with a white silhouette of a palm tree and a yellow sun. |
| 🇨🇶 | flag: Sark | A red field with a white cross and a blue canton containing a white star. |
| 🇨🇷 | flag: Costa Rica | A horizontal stripe of blue, white, and red, with two blue stripes on the top and bottom and a red stripe in the middle. |
| 🇨🇺 | flag: Cuba | A horizontal stripe of blue and white with a red triangle on the left containing a white star. |
| 🇨🇻 | flag: Cape Verde | A horizontal tricolor of blue, white, and red with a yellow star in the center. |
| 🇨🇼 | flag: Curaçao | A blue field with a yellow star and a red triangle on the left side. |
| 🇨🇽 | flag: Christmas Island | A green field with a white stripe and a red stripe at the bottom. |
| 🇨🇾 | flag: Cyprus | A white field with a map of Cyprus in orange and two olive branches below it. |
| 🇨🇿 | flag: Czechia | A horizontal stripe of white and red with a blue triangle on the left. |
| 🇩🇪 | flag: Germany | Three horizontal stripes of black, red, and yellow from top to bottom. |
| 🇩🇬 | flag: Diego Garcia | A blue field with a white silhouette of a palm tree and a yellow sun. |
| 🇩🇯 | flag: Djibouti | A blue field with a red triangle on the left and a white star inside it. |
| 🇩🇰 | flag: Denmark | A red field with a white cross that extends to the edges. |
| 🇩🇲 | flag: Dominica | A green field with a yellow star and a red triangle on the left side. |
| 🇩🇴 | flag: Dominican Republic | A red field with a white cross and a blue and yellow shield in the center. |
| 🇩🇿 | flag: Algeria | A green field with a white stripe and a red crescent and star. |
| 🇪🇦 | flag: Ceuta & Melilla | A horizontal stripe of red and yellow with a coat of arms on the left. |
| 🇪🇨 | flag: Ecuador | A horizontal tricolor of yellow, blue, and red with a coat of arms in the center. |
| 🇪🇪 | flag: Estonia | Three horizontal stripes of black, blue, and white from top to bottom. |
| 🇪🇬 | flag: Egypt | A horizontal stripe of red, white, and black with a golden eagle in the center. |
| 🇪🇭 | flag: Western Sahara | A red and white striped flag with a green triangle. |
| 🇪🇷 | flag: Eritrea | A horizontal stripe of green, red, and yellow with a blue triangle on the left. |
| 🇪🇸 | flag: Spain | Three horizontal stripes of red, yellow, and red with the coat of arms on the left. |
| 🇪🇹 | flag: Ethiopia | A green, yellow, and red horizontal stripe with a blue circle and a yellow star in the center. |
| 🇪🇺 | flag: European Union | A blue field with a circle of twelve yellow stars. |
| 🇫🇮 | flag: Finland | A white field with a blue Nordic cross that extends to the edges. |
| 🇫🇯 | flag: Fiji | A blue field with a Union Jack in the top left corner and a coat of arms on the right. |
| 🇫🇰 | flag: Falkland Islands | A blue field with a Union Jack in the top left corner and a coat of arms featuring a sheep and a fish. |
| 🇫🇲 | flag: Micronesia | A blue field with a white star and a red stripe at the bottom. |
| 🇫🇴 | flag: Faroe Islands | A blue field with a red cross outlined in white. |
| 🇫🇷 | flag: France | A vertical tricolor of blue, white, and red from left to right. |
| 🇬🇦 | flag: Gabon | A vertical tricolor of green, yellow, and blue stripes, with green on the top, yellow in the middle, and blue on the bottom. |
| 🇬🇧 | flag: United Kingdom | A combination of red, white, and blue, featuring a red cross edged in white superimposed on a blue field with a diagonal red and white cross. |
| 🇬🇩 | flag: Grenada | A red field with a green diagonal stripe and a yellow triangle on the left side, featuring a black star in the center of the triangle. |
| 🇬🇪 | flag: Georgia | A white field with a red cross, intersected by a red vertical stripe, and four smaller red crosses in each quadrant. |
| 🇬🇫 | flag: French Guiana | A blue field with a yellow diagonal stripe, featuring a red square in the top left corner with a white star. |
| 🇬🇬 | flag: Guernsey | A red cross on a yellow background, with a coat of arms featuring a lion and three gold crowns at the top. |
| 🇬🇭 | flag: Ghana | A horizontal tricolor of red, yellow, and green stripes, with a black star in the center of the yellow stripe. |
| 🇬🇮 | flag: Gibraltar | A white field with a red vertical stripe on the left, featuring a castle and two red towers on the top. |
| 🇬🇱 | flag: Greenland | A red and white field, with a blue circle featuring a white polar bear in the center. |
| 🇬🇲 | flag: Gambia | A horizontal tricolor of red, blue, and green stripes, with a thin white stripe separating the blue from the red and green. |
| 🇬🇳 | flag: Guinea | A vertical tricolor of red, yellow, and green stripes, with red on the left, yellow in the middle, and green on the right. |
| 🇬🇵 | flag: Guadeloupe | A blue field with a yellow cross, featuring a green palm tree and a red flower in each quadrant. |
| 🇬🇶 | flag: Equatorial Guinea | A vertical tricolor of green, yellow, and red stripes, with a yellow triangle on the left side containing a red star. |
| 🇬🇷 | flag: Greece | A blue and white striped field with a blue canton featuring a white cross. |
| 🇬🇸 | flag: South Georgia & South Sandwich Islands | A blue field with a red triangle on the left, featuring a white star and a red and white striped border. |
| 🇬🇹 | flag: Guatemala | A vertical stripe of blue and white, with a coat of arms featuring a quetzal bird and two crossed rifles in the center. |
| 🇬🇺 | flag: Guam | A blue field with a yellow triangle on the left, featuring a red and white coat of arms in the center. |
| 🇬🇼 | flag: Guinea-Bissau | A vertical tricolor of yellow, red, and green stripes, with a black star on the left side. |
| 🇬🇾 | flag: Guyana | A horizontal tricolor of green, yellow, and red stripes, with a black triangle on the left side. |
| 🇭🇰 | flag: Hong Kong SAR China | A red field with a white flower design in the center, symbolizing the region’s culture. |
| 🇭🇲 | flag: Heard & McDonald Islands | A blue field with a red triangle on the left, featuring a white star and a red and white striped border. |
| 🇭🇳 | flag: Honduras | A horizontal tricolor of blue and white stripes, with a coat of arms featuring a mountain and a rainbow in the center. |
| 🇭🇷 | flag: Croatia | A red, white, and blue checkered pattern in the center, with a coat of arms featuring a shield and five smaller shields above it. |
| 🇭🇹 | flag: Haiti | A blue and red field with a white coat of arms featuring a palm tree, cannons, and flags. |
| 🇭🇺 | flag: Hungary | A horizontal tricolor of red, white, and green stripes. |
| 🇮🇨 | flag: Canary Islands | A horizontal tricolor of white, red, and yellow stripes, with a blue emblem in the center. |
| 🇮🇩 | flag: Indonesia | A horizontal bicolor of red on the top and white on the bottom. |
| 🇮🇪 | flag: Ireland | A vertical tricolor of green, white, and orange stripes, with green on the left, white in the middle, and orange on the right. |
| 🇮🇱 | flag: Israel | A white field with a blue Star of David in the center and two horizontal blue stripes at the top and bottom. |
| 🇮🇲 | flag: Isle of Man | A red field with a coat of arms featuring a three-legged figure in the center. |
| 🇮🇳 | flag: India | A horizontal tricolor of saffron, white, and green, with a blue Ashoka Chakra in the center. |
| 🇮🇴 | flag: British Indian Ocean Territory | A blue field with a red triangle on the left, featuring a white star in the center. |
| 🇮🇶 | flag: Iraq | A red, white, and black horizontal tricolor with the Arabic script for ‘God is great’ in green in the center. |
| 🇮🇷 | flag: Iran | A horizontal tricolor of green, white, and red stripes, with a red emblem featuring a stylized representation of a tulip in the center. |
| 🇮🇸 | flag: Iceland | A blue field with a red cross edged in white, intersecting in the center. |
| 🇮🇹 | flag: Italy | A vertical tricolor of green, white, and red stripes, with green on the left, white in the middle, and red on the right. |
| 🇯🇪 | flag: Jersey | A red cross on a white field, with a gold crown above the cross. |
| 🇯🇲 | flag: Jamaica | A diagonal black, green, and yellow pattern, with the black on the top and bottom, and green and yellow forming a ‘V’ shape in the center. |
| 🇯🇴 | flag: Jordan | A horizontal tricolor of black, white, and green stripes, with a red triangle on the left. |
| 🇯🇵 | flag: Japan | A white field with a red circle in the center, symbolizing the sun. |
| 🇰🇪 | flag: Kenya | A vertical tricolor of black, red, and green with a white outline, featuring a Maasai shield and two crossed spears at the center. |
| 🇰🇬 | flag: Kyrgyzstan | A red flag with a yellow sun and a circular pattern of 40 rays, surrounded by a blue and yellow border. |
| 🇰🇭 | flag: Cambodia | A blue stripe at the top, a red stripe in the middle, and a white stripe at the bottom, featuring a white temple in the center. |
| 🇰🇮 | flag: Kiribati | A diagonal red stripe with a yellow triangle on the left, containing three yellow stars, set against a blue background. |
| 🇰🇲 | flag: Comoros | A vertical tricolor of green, white, and red with a blue triangle on the left, featuring a yellow crescent and four stars. |
| 🇰🇳 | flag: St. Kitts & Nevis | A diagonal green stripe with a yellow triangle on the left, featuring a yellow sun and two green stars. |
| 🇰🇵 | flag: North Korea | A horizontal red stripe with a blue stripe on the top and bottom, featuring a white circle with a red star in the center. |
| 🇰🇷 | flag: South Korea | A white field with a red and blue yin-yang symbol in the center, surrounded by four black trigrams in each corner. |
| 🇰🇼 | flag: Kuwait | A horizontal black stripe on the top, green in the middle, and red at the bottom, with a vertical white stripe on the left. |
| 🇰🇾 | flag: Cayman Islands | A blue field with a yellow circle and two green turtle silhouettes, set against a white background. |
| 🇰🇿 | flag: Kazakhstan | A sky blue flag featuring a golden sun with a soaring eagle below it, along with a vertical national ornament on the left. |
| 🇱🇦 | flag: Laos | A horizontal red stripe on the top and bottom, with a blue stripe in the center, featuring a white circle in the middle. |
| 🇱🇧 | flag: Lebanon | A red stripe at the top and bottom, with a white stripe in the center, featuring a green cedar tree in the middle. |
| 🇱🇨 | flag: St. Lucia | A blue field with a white triangle on the left, containing a yellow triangle and a black outline. |
| 🇱🇮 | flag: Liechtenstein | A blue field with a red stripe at the bottom, featuring a coat of arms in the top left corner. |
| 🇱🇰 | flag: Sri Lanka | A golden lion holding a sword on a maroon background, with green and orange vertical stripes on the left. |
| 🇱🇷 | flag: Liberia | A horizontal red and white striped flag with a blue square in the top left corner, containing a white star. |
| 🇱🇸 | flag: Lesotho | A blue field with a red stripe at the bottom, featuring a white crown in the top left corner. |
| 🇱🇹 | flag: Lithuania | A horizontal tricolor of yellow, green, and red, with equal-sized stripes. |
| 🇱🇺 | flag: Luxembourg | A horizontal tricolor of red, white, and light blue, with the red stripe on top. |
| 🇱🇻 | flag: Latvia | A horizontal red stripe at the top and bottom, with a white stripe in the center. |
| 🇱🇾 | flag: Libya | A horizontal red stripe at the top, black in the middle, and green at the bottom. |
| 🇲🇦 | flag: Morocco | A red field featuring a green five-pointed star in the center. |
| 🇲🇨 | flag: Monaco | A vertical red and white striped flag with a coat of arms in the top left corner. |
| 🇲🇩 | flag: Moldova | A vertical tricolor of red, yellow, and blue, featuring a coat of arms in the center. |
| 🇲🇪 | flag: Montenegro | A red field with a golden lion and a crown in the center. |
| 🇲🇫 | flag: St. Martin | A blue field with a red stripe at the top and a white stripe at the bottom, featuring a white star. |
| 🇲🇬 | flag: Madagascar | A vertical tricolor of green, white, and red, with a green stripe on the left. |
| 🇲🇭 | flag: Marshall Islands | A blue field with a diagonal orange stripe, featuring a white star in the top left corner. |
| 🇲🇰 | flag: North Macedonia | A red field with a golden sun and eight rays extending outward. |
| 🇲🇱 | flag: Mali | A vertical tricolor of green, yellow, and red. |
| 🇲🇲 | flag: Myanmar (Burma) | A horizontal tricolor of yellow, green, and red, with a white star in the top left corner. |
| 🇲🇳 | flag: Mongolia | A red field with a blue stripe on the left, featuring a golden soyombo symbol. |
| 🇲🇴 | flag: Macao SAR China | A white field with a green lotus flower and a red border. |
| 🇲🇵 | flag: Northern Mariana Islands | A blue field with a white star in the center, surrounded by red and white stripes. |
| 🇲🇶 | flag: Martinique | A green field with a red stripe at the top, featuring a yellow star in the center. |
| 🇲🇷 | flag: Mauritania | A green field with a yellow crescent and a five-pointed star in the center. |
| 🇲🇸 | flag: Montserrat | A blue field with a red stripe at the top, featuring a white star in the top left corner. |
| 🇲🇹 | flag: Malta | A vertical bicolor of white and red, featuring a George Cross in the top left corner. |
| 🇲🇺 | flag: Mauritius | A horizontal tricolor of red, blue, yellow, and green stripes. |
| 🇲🇻 | flag: Maldives | A rectangular flag with a green rectangle in the center, surrounded by a red field, featuring a white crescent moon facing right. |
| 🇲🇼 | flag: Malawi | A horizontal tricolor flag with black on top, red in the middle, and green at the bottom, featuring a yellow sun with a black outline in the top left corner. |
| 🇲🇽 | flag: Mexico | A vertical tricolor flag with green on the left, white in the middle, and red on the right, displaying a national coat of arms featuring an eagle perched on a cactus with a snake in its beak. |
| 🇲🇾 | flag: Malaysia | A flag with 14 red and white stripes, representing the states, and a blue canton with a yellow crescent and a 14-pointed star. |
| 🇲🇿 | flag: Mozambique | A diagonal tricolor flag with green on the top, black in the middle, and yellow on the bottom, featuring a red triangle on the left that contains a yellow star and a book. |
| 🇳🇦 | flag: Namibia | A horizontal tricolor flag with blue on the top, yellow in the middle, and red on the bottom, featuring a sun with 12 rays in the top left corner. |
| 🇳🇨 | flag: New Caledonia | A flag with a blue field, a yellow diagonal stripe from the bottom left to the top right, and a red triangle on the left side containing a white star. |
| 🇳🇪 | flag: Niger | A horizontal tricolor flag with orange on the top, white in the middle, and green on the bottom, featuring a green circle in the center. |
| 🇳🇫 | flag: Norfolk Island | A flag with a blue field, featuring a green silhouette of a palm tree in the center and a small British flag in the top left corner. |
| 🇳🇬 | flag: Nigeria | A vertical flag with green stripes on the sides and a white stripe in the center. |
| 🇳🇮 | flag: Nicaragua | A horizontal blue and white striped flag with a coat of arms in the center, featuring a triangle with five volcanoes and a rainbow above it. |
| 🇳🇱 | flag: Netherlands | A horizontal tricolor flag with red on the top, white in the middle, and blue on the bottom. |
| 🇳🇴 | flag: Norway | A red flag with a blue cross outlined in white, extending to the edges. |
| 🇳🇵 | flag: Nepal | A unique non-rectangular flag shaped like two stacked triangles, red with a blue border, featuring a white moon and a white sun. |
| 🇳🇷 | flag: Nauru | A green flag with a yellow border and a white star in the center, surrounded by two olive branches. |
| 🇳🇺 | flag: Niue | A blue field with a yellow diamond shape in the center, containing a white star. |
| 🇳🇿 | flag: New Zealand | A blue flag with a Union Jack in the top left corner and four red stars with white borders on the right side. |
| 🇴🇲 | flag: Oman | A red flag with a vertical white stripe on the left, featuring a white khanjar (dagger) and two crossed swords above it. |
| 🇵🇦 | flag: Panama | A flag divided into four quadrants, with blue and red squares and a white background, featuring a blue star in the top left and a red star in the bottom right. |
| 🇵🇪 | flag: Peru | A vertical red and white striped flag with a coat of arms in the center, depicting a llama, a cinchona tree, and a cornucopia. |
| 🇵🇫 | flag: French Polynesia | A flag with a blue field featuring a white star and a red and white striped triangle on the left. |
| 🇵🇬 | flag: Papua New Guinea | A black and red flag with a yellow triangle on the left, containing five white stars representing the Southern Cross. |
| 🇵🇭 | flag: Philippines | A horizontal flag with blue on the top, red on the bottom, and a white triangle on the left containing a sun and three stars. |
| 🇵🇰 | flag: Pakistan | A green flag with a white crescent moon and a five-pointed star, symbolizing Islam. |
| 🇵🇱 | flag: Poland | A horizontal flag with white on the top and red on the bottom. |
| 🇵🇲 | flag: St. Pierre & Miquelon | A flag with a blue field, featuring a small French flag in the top left corner and a red and white striped triangle on the right. |
| 🇵🇳 | flag: Pitcairn Islands | A blue flag with a yellow diamond shape in the center, containing a small Union Jack. |
| 🇵🇷 | flag: Puerto Rico | A flag with five horizontal stripes, alternating red and white, and a blue triangle on the left with a white star. |
| 🇵🇸 | flag: Palestinian Territories | A flag with three horizontal stripes of black, white, and green, with a red triangle on the left. |
| 🇵🇹 | flag: Portugal | A flag with green on the left and red on the right, featuring a coat of arms with a shield and seven castles. |
| 🇵🇼 | flag: Palau | A blue flag with a yellow diamond shape in the center, containing a white star. |
| 🇵🇾 | flag: Paraguay | A horizontal tricolor flag with red on the top, white in the middle, and blue on the bottom, featuring a coat of arms in the center. |
| 🇶🇦 | flag: Qatar | A maroon flag with a white serrated vertical stripe on the left side. |
| 🇷🇪 | flag: Réunion | A blue flag with a yellow sun in the center and a green palm tree. |
| 🇷🇴 | flag: Romania | A vertical tricolor flag with blue on the left, yellow in the middle, and red on the right. |
| 🇷🇸 | flag: Serbia | A horizontal tricolor flag with red on the top, blue in the middle, and white on the bottom, featuring a coat of arms on the left. |
| 🇷🇺 | flag: Russia | A horizontal tricolor flag with white on the top, blue in the middle, and red on the bottom. |
| 🇷🇼 | flag: Rwanda | A flag with a blue field on the top, yellow in the middle, and green on the bottom, featuring a yellow sun with 24 rays. |
| 🇸🇦 | flag: Saudi Arabia | A green flag with white Arabic script and a white sword beneath it. |
| 🇸🇧 | flag: Solomon Islands | A flag with a blue field, featuring a yellow triangle on the left and a red triangle on the right. |
| 🇸🇨 | flag: Seychelles | A flag with five diagonal stripes in blue, yellow, red, white, and green, representing the Seychelles. |
| 🇸🇩 | flag: Sudan | A flag with three horizontal stripes in red, white, and black, representing Sudan. |
| 🇸🇪 | flag: Sweden | A blue flag with a yellow Scandinavian cross, representing Sweden. |
| 🇸🇬 | flag: Singapore | A red flag with a white crescent and five white stars, representing Singapore. |
| 🇸🇭 | flag: St. Helena | A flag with a blue field featuring the Union Jack in the top left corner and a coat of arms, representing St. Helena. |
| 🇸🇮 | flag: Slovenia | A tricolor flag with horizontal stripes of white, blue, and red, featuring the coat of arms on the left side, representing Slovenia. |
| 🇸🇯 | flag: Svalbard & Jan Mayen | A flag with a blue field featuring a red and white cross, representing Svalbard and Jan Mayen. |
| 🇸🇰 | flag: Slovakia | A flag with horizontal stripes of white, blue, and red, with a coat of arms on the left, representing Slovakia. |
| 🇸🇱 | flag: Sierra Leone | A green, white, and blue tricolor flag with a coat of arms on the left, representing Sierra Leone. |
| 🇸🇲 | flag: San Marino | A flag with a white field featuring a blue cross and a red triangle, representing San Marino. |
| 🇸🇳 | flag: Senegal | A flag with three horizontal stripes of green, yellow, and red, with a black star in the center, representing Senegal. |
| 🇸🇴 | flag: Somalia | A light blue flag with a white star in the center, representing Somalia. |
| 🇸🇷 | flag: Suriname | A flag with three horizontal stripes of green, white, and red, with a yellow star in the center, representing Suriname. |
| 🇸🇸 | flag: South Sudan | A flag with horizontal stripes of red, white, and black, representing South Sudan. |
| 🇸🇹 | flag: São Tomé & Príncipe | A green flag with a yellow triangle and two black stars, representing São Tomé and Príncipe. |
| 🇸🇻 | flag: El Salvador | A blue and white flag with a coat of arms in the center, representing El Salvador. |
| 🇸🇽 | flag: Sint Maarten | A flag with a blue field and a white cross, representing Sint Maarten. |
| 🇸🇾 | flag: Syria | A flag with three horizontal stripes of red, white, and black, representing Syria. |
| 🇸🇿 | flag: Eswatini | A flag with horizontal stripes of blue, yellow, and green, representing Eswatini. |
| 🇹🇦 | flag: Tristan da Cunha | A flag with a blue field and a red triangle containing a white cross, representing Tristan da Cunha. |
| 🇹🇨 | flag: Turks & Caicos Islands | A flag with a blue field featuring a white star and a red and white stripe, representing the Turks and Caicos Islands. |
| 🇹🇩 | flag: Chad | A flag with three vertical stripes of blue, yellow, and red, representing Chad. |
| 🇹🇫 | flag: French Southern Territories | A flag with a blue field and a white star, representing the French Southern Territories. |
| 🇹🇬 | flag: Togo | A flag with horizontal stripes of green, yellow, and red, with a white star in the top left corner, representing Togo. |
| 🇹🇭 | flag: Thailand | A flag with horizontal stripes of red, white, and blue, representing Thailand. |
| 🇹🇯 | flag: Tajikistan | A flag with a blue field featuring a white crescent and a star, representing Tajikistan. |
| 🇹🇰 | flag: Tokelau | A flag with a blue field and a yellow star, representing Tokelau. |
| 🇹🇱 | flag: Timor-Leste | A flag with horizontal stripes of red, yellow, and green, representing Timor-Leste. |
| 🇹🇲 | flag: Turkmenistan | A flag with a green field featuring a red triangle and a white star, representing Turkmenistan. |
| 🇹🇳 | flag: Tunisia | A flag with a red field featuring a white circle and a red crescent, representing Tunisia. |
| 🇹🇴 | flag: Tonga | A red flag with a white cross in the top left corner, representing Tonga. |
| 🇹🇷 | flag: Türkiye | A red flag with a white star and crescent, representing Türkiye. |
| 🇹🇹 | flag: Trinidad & Tobago | A flag with a black diagonal stripe bordered in white on a red field, representing Trinidad and Tobago. |
| 🇹🇻 | flag: Tuvalu | A flag with a blue field and a white star, representing Tuvalu. |
| 🇹🇼 | flag: Taiwan | A blue flag featuring a white sun with twelve rays, representing Taiwan. |
| 🇹🇿 | flag: Tanzania | A flag with diagonal stripes of green, yellow, black, and blue, representing Tanzania. |
| 🇺🇦 | flag: Ukraine | A flag with horizontal stripes of blue and yellow, representing Ukraine. |
| 🇺🇬 | flag: Uganda | A flag with horizontal stripes of black, yellow, and red, featuring a crane in the center, representing Uganda. |
| 🇺🇲 | flag: U.S. Outlying Islands | A flag with a blue field featuring white stars and red and white stripes, representing U.S. Outlying Islands. |
| 🇺🇳 | flag: United Nations | A light blue flag featuring a world map surrounded by olive branches, representing the United Nations. |
| 🇺🇸 | flag: United States | A rectangular flag with 13 horizontal stripes alternating red and white, and a blue rectangle in the top left corner featuring 50 white stars arranged in nine rows. |
| 🇺🇾 | flag: Uruguay | A flag with nine horizontal stripes alternating white and blue, with a white square in the upper left corner containing a yellow sun with a face and 16 rays. |
| 🇺🇿 | flag: Uzbekistan | A flag with three horizontal stripes of light blue, white, and green, featuring a crescent moon and 12 stars in the blue stripe, and two red stripes bordering the white stripe. |
| 🇻🇦 | flag: Vatican City | A vertical bicolor flag with yellow on the hoist side and white on the fly side, featuring the Papal Tiara and crossed keys in the center. |
| 🇻🇨 | flag: St. Vincent & Grenadines | A flag with a diagonal yellow triangle pointing down from the hoist side, flanked by green and red triangles, with a black border around the yellow triangle. |
| 🇻🇪 | flag: Venezuela | A flag with three horizontal stripes of yellow, blue, and red, featuring seven white stars in an arc on the blue stripe. |
| 🇻🇬 | flag: British Virgin Islands | A green flag with a vertical blue stripe on the hoist side, containing the Union Jack in the upper corner, and a coat of arms featuring a white cross and a blue shield with the Virgin Islands’ patroness. |
| 🇻🇮 | flag: U.S. Virgin Islands | A blue flag featuring the Union Jack in the upper left corner and a coat of arms depicting a white cross and a blue shield with the Virgin Islands’ patroness. |
| 🇻🇳 | flag: Vietnam | A red flag with a large yellow star in the center, surrounded by a thin red border. |
| 🇻🇺 | flag: Vanuatu | A flag with three horizontal stripes of blue, yellow, and red, featuring a black triangle on the left side with a white star. |
| 🇼🇫 | flag: Wallis & Futuna | A blue flag with a red cross and a white background, featuring a white star in each of the four quadrants created by the cross. |
| 🇼🇸 | flag: Samoa | A blue flag with a white star in the upper left corner, and two horizontal stripes of red and white below it. |
| 🇽🇰 | flag: Kosovo | A blue flag with a yellow map of Kosovo in the center, and six white stars arranged in an arc above the map. |
| 🇾🇪 | flag: Yemen | A horizontal tricolor flag with red on the top, white in the middle, and black on the bottom. |
| 🇾🇹 | flag: Mayotte | A flag with a blue background and a white crescent and star in the center. |
| 🇿🇦 | flag: South Africa | A flag with a green Y-shape, black triangle on the left, and horizontal stripes of red, yellow, and blue. |
| 🇿🇲 | flag: Zambia | A rectangular flag with green, red, and black horizontal stripes, featuring an orange eagle on a black background in the upper left corner. |
| 🇿🇼 | flag: Zimbabwe | A flag with horizontal stripes of green, yellow, red, and black, featuring a white triangle with a red five-pointed star and a black Zimbabwe Bird. |
| 🏴 | flag: England | A flag with a white background and a red cross that extends to the edges, representing England. |
| 🏴 | flag: Scotland | A blue flag with a white diagonal cross, representing Scotland. |
| 🏴 | flag: Wales | A red flag with a white cross, representing Wales. |
Appendix D: Notes from earlier versions
This appendix keeps a record of how some parts of QUILL used to work. You do not need any of it to use QUILL today. The chapters describe QUILL as it is now, and where a note here disagrees with a chapter, the chapter is right.
Fixed in 0.7.0 Beta 2
The Beta 2 release brought a sweep of accessibility, macOS and crash fixes. Where a fix changes nothing you can see, the note says so; where it does, the note gives the detail. The full list is in the release notes.
- Closing the last document no longer crashes.
Nothing to change. The crash showed up as “QUILL encountered an
unexpected error and needs to close” when you pressed
Ctrl+Won a document with unsaved changes, chose “Don’t Save”, and the editor was asked about the caret after it had already closed. QUILL now checks first, and you will not see that error any more. - Help > Check for Updates opens cleanly. It used to fail with “QUILL encountered an unexpected error.” Open Help > Check for Updates and the update channel selector appears as before.
- The Setup Wizard opens on a clean window, not on top of an “Untitled” tab. If you have already run the wizard, you see the normal “Untitled” tab when QUILL starts. On a first run you see the wizard on its own, and an untitled document is created for you when the wizard finishes.
Cmd+Qnow quits QUILL on macOS. The new default isCtrl+Q(which isCmd+Qon macOS). Quote Lines moved fromCtrl+QtoCtrl+Shift+Qto make room, and Unquote Lines moved offCtrl+Shift+Q(today it is onAlt+Shift+.). A savedkeymap.jsonthat still has the old keys is corrected the first time QUILL starts, and the correction is saved so the next start is clean.Option+LeftandOption+Rightare no longer taken by Back and Forward Location on macOS. On macOS, Back and Forward Location are nowCmd+[andCmd+], the usual Mac back and forward keys used by Safari, Finder and most other Mac apps. On Windows they stay onAlt+LeftandAlt+Right. If your savedkeymap.jsonon a Mac still has the Windows keys, it is changed to the new Mac keys the first time QUILL starts, and the change is saved so the next start is clean.- The Setup Wizard’s page heading is the first thing that takes focus, and VoiceOver no longer calls the preview “edit text”. On every wizard page a screen reader now lands on the heading, not on the read-only preview. The preview is shown as a read-only document, so VoiceOver reads it as a document or plain text, not as an editable field. Sighted users see the same styled preview as before.
- The wizard’s Back and Next buttons are simply “Back” and “Next”. VoiceOver on macOS used to read the old labels (“< Back” and “Next >”) as “less than Back” and “Next greater than”. The buttons now read “Back” and “Next”, which is what every screen reader says and what is printed on the button.
- Read Aloud and Insert Snippet no longer fire when you type a
plain
RorS. The key shown beside those items in the Tools and Insert menus was being treated as a real shortcut, so the plain letters R and S were caught everywhere. The key is now shown as ordinary text after the item name, and the letters belong to your writing again. - The Help menu is now the macOS system Help menu.
The usual
Cmd+?Help shortcut now works on the Mac. Windows and Linux are unchanged. - AI Hub opens cleanly from the wizard, and the editor no longer trips over the caret before a document is loaded. The AI Hub’s tab labels and the wizard’s AI Hub button had the same fault, and the editor failed silently on every keystroke before you had even opened a document.
- JAWS, NVDA, Narrator and VoiceOver now say the QUILL
version. The window title now includes the full version (for
example, “QUILL for All 0.7.0 Beta 2”), so any screen reader that reads
the window title (JAWS
Insert+T, NVDA+T, NarratorCaps+H, VoiceOver) says the version along with the document name. JAWS’sCtrl+JAWSKey+Vstill says only “Version” until a launcher that carries the version ships; the window title is the change you can hear today. - VoiceOver now reads the editor as a normal text area on
macOS. The editor now tells macOS it is a standard text view
(
NSTextView), so VoiceOver treats it as an ordinary editable text area with all its usual reading commands. Windows is unchanged. - The Report a Bug dialog now speaks field names on macOS, opens in its own window so you can Alt+Tab to the editor, and no longer opens a browser by itself after you submit. Every field is tied to its label, so VoiceOver reads “Summary, edit text”, “What happened, edit text” and so on as you tab in. The dialog opens in its own window that does not block the editor. The report is always on your clipboard after you submit. Opening the browser afterwards is now something you turn on in Settings: “After you submit a bug report, automatically open the support form in your default browser”.
Ctrl+F4on a document with unsaved changes no longer crashes when you choose “Don’t Save”. The close prompt was trying to put focus back in the editor after the editor had already closed. Save and Cancel work as before, and Save still returns focus to the editor.- The print-page detector now treats a right-margin
continuation as certain, and keeps the trailing letter. In a
braille document with print-page numbers in the right margin of line 1,
the next braille page can carry the same number with a continuation
letter (for example
7on braille page 1 and7aon braille page 2). The print page has not changed; the letter is the braille continuation marker. The detector used to rate this asmediumconfidence and drop the letter, so the detailed status readPrint 7instead ofPrint 7a. It now matches the previous page’s right-margin number, rates the boundaryhighconfidence, and keeps the letter. In practice: open a braille document with right-margin print-page numbers, move the caret across a continuation, and the status bar (and “Read Detailed Braille Status”) reads the full7a, not just7.
The original Copy Tray guide
This is the first guide to the Copy Tray, from when it had nine
slots. The Copy Tray now has twelve slots and opens with
Ctrl+Alt+V. Chapter 4, Writing and editing, describes it as
it is today.
Overview
Copy Tray gives you nine independently addressable clipboard slots. Each slot holds a piece of text that you copy there explicitly. Slots survive application restarts – their contents are written to disk automatically so nothing is lost when you close and reopen QUILL.
Unlike the system clipboard, which is shared with every other application and holds only the most recently copied item, Copy Tray slots are exclusive to QUILL and hold their contents until you explicitly replace or clear them. This makes Copy Tray well suited for accumulating related fragments across a long editing session: quotes from multiple sources, code snippets, address blocks, standard disclaimers, or any text you paste repeatedly.
Keyboard Access
Paste from a slot
Hold Ctrl+Shift and press a number key. That is all.
| Key | Action |
|---|---|
Ctrl+Alt+Shift+1 |
Paste from slot 1 at cursor |
Ctrl+Alt+Shift+2 |
Paste from slot 2 at cursor |
Ctrl+Alt+Shift+3 |
Paste from slot 3 at cursor |
Ctrl+Alt+Shift+4 |
Paste from slot 4 at cursor |
Ctrl+Alt+Shift+5 |
Paste from slot 5 at cursor |
Ctrl+Alt+Shift+6 |
Paste from slot 6 at cursor |
Ctrl+Alt+Shift+7 |
Paste from slot 7 at cursor |
Ctrl+Alt+Shift+8 |
Paste from slot 8 at cursor |
Ctrl+Alt+Shift+9 |
Paste from slot 9 at cursor |
If a selection is active when you paste, the pasted text replaces it. If the slot is empty, QUILL announces “Slot N is empty”.
Copy to a slot
Hold the QUILL key (Ctrl+Shift+Grave), release, then
press Shift+digit. The QUILL-key bare digits 1-6 are
heading shortcuts; adding Shift is a distinct binding with no
conflict.
| Key | Action |
|---|---|
Ctrl+Shift+Grave, Shift+1 |
Copy selection to slot 1 |
Ctrl+Shift+Grave, Shift+2 |
Copy selection to slot 2 |
Ctrl+Shift+Grave, Shift+3 |
Copy selection to slot 3 |
Ctrl+Shift+Grave, Shift+4 |
Copy selection to slot 4 |
Ctrl+Shift+Grave, Shift+5 |
Copy selection to slot 5 |
Ctrl+Shift+Grave, Shift+6 |
Copy selection to slot 6 |
Ctrl+Shift+Grave, Shift+7 |
Copy selection to slot 7 |
Ctrl+Shift+Grave, Shift+8 |
Copy selection to slot 8 |
Ctrl+Shift+Grave, Shift+9 |
Copy selection to slot 9 |
You must have text selected. QUILL announces the slot number and a text preview: “Copied to slot 2”.
Management
| Key | Action |
|---|---|
Ctrl+Alt+V |
Open Copy Tray dialog |
All bindings are reassignable in
Tools > Customize & Support > Keymap Editor or
the Command Palette.
Using the Edit Menu
All commands are available in Edit > Copy Tray. The
submenu contains:
Copy to Slot 1throughCopy to Slot 9– copy the current selectionPaste from Slot 1throughPaste from Slot 9– paste at the cursorOpen Copy Tray...– open the management dialogClear All Tray Slots– clear all slots after confirmation
Using the System Tray Icon
Right-click the QUILL icon in the system notification area (bottom-right taskbar area). The context menu includes a Copy Tray submenu that lists every occupied slot with its label (if any) and a text preview. Clicking a slot pastes its content into the currently active QUILL document. This lets you paste from the tray without bringing the main window to the front.
Using the Dialog
Open the dialog with Ctrl+Alt+V,
Edit > Copy Tray > Open Copy Tray, or the Command
Palette (edit.open_copy_tray). The dialog shows all nine
slots in a list. Each row displays:
- The slot number
- An optional label
- A preview of the stored text (empty slots show
(empty))
Navigate the list with the arrow keys. The following buttons appear below the list:
- Paste (Enter or double-click) – paste the selected slot’s text at the cursor position and close the dialog. Disabled when the selected slot is empty.
- Copy Selection Here – copy the current editor selection into the selected slot and refresh the list. Disabled when no text is selected in the editor.
- Set Label… – open a text-entry prompt to name the selected slot. Labels appear in all slot listings and in screen-reader announcements.
- Clear Slot – empty the selected slot. Disabled when already empty.
- Close (Escape) – close the dialog without pasting.
Labelling Slots
Slot labels are optional but recommended for any slot you use regularly. A label makes the slot identifiable in the dialog and in every spoken announcement. Labelling slot 1 “signature” means you will hear “Pasted from slot 1 (signature)” instead of “Pasted from slot 1”.
To set a label:
- Open the Copy Tray dialog.
- Select the slot you want to label.
- Press
Set Label.... - Type the label and press Enter.
Labels are persisted alongside slot text and survive restarts.
Accessibility Notes
- Every Copy Tray operation announces its result through QUILL’s screen-reader interface. Copy, paste, clear, and label operations all produce spoken feedback.
- The slot list in the dialog receives initial focus when the dialog opens.
- Slot labels, when set, are included in every announcement.
- Empty slots are clearly identified as
(empty)in all contexts. - The
Clear All Tray Slotsconfirmation dialog defaults to No to prevent accidental data loss. - The
Ctrl+Shift+Npaste scheme is designed for screen reader users: one familiar chord activates slot N instantly, no menu navigation required.
Tips
- Research accumulator. Assign each tray slot to a document section. Copy a relevant excerpt to each slot as you read through a source, then paste them in order when drafting.
- Code boilerplate. Keep import blocks, standard headers, and closing patterns in labelled slots for one-chord insertion.
- Cross-document paste. Copy a phrase to a tray slot, switch documents, paste from the tray – the system clipboard is untouched.
- Persistent library. Slots survive restarts. Build a set of standard fragments you reach for daily.
- System tray access. Paste into any QUILL document directly from the notification-area icon without bringing the window to the front.
Appendix E: Design notes for developers
The last appendix is for people who build on QUILL or are curious about how parts of it were designed. It is written for developers, so it talks about code, files and plans in a way the rest of this guide does not. Some of what it describes was planned rather than built; the chapters and Appendix A describe what QUILL does today.
The Developer Console design document
Feature name
QUILL Developer Console and Automation API
Status
Proposed for QUILL 1.1, with the Python console eligible for a 1.0 experimental/dev-preview flag if the command registry and announcement infrastructure are stable enough.
Owner
Community Access
Target platform
Windows 10 and Windows 11
Target users
- QUILL developers
- QUILL power users
- Accessibility professionals
- Blind programmers and technical writers
- Macro authors
- Support/debugging users working with Community Access staff
- Future Quillins/plugin developers
1. Vision
QUILL should provide a screen-reader-first developer console that lets trusted users inspect and manipulate the running editor through a stable automation API.
The console is not an afterthought, a hidden debug hack, or a generic unsafe scripting surface. It is a first-class, accessible automation layer that exposes QUILL’s command system, document model, editor state, diagnostics, and accessibility announcement pipeline in a predictable way.
The goal is to let a developer or power user type commands such as:
q.insert_text("Hello from QUILL.")
q.goto_line(42)
q.run_command("quill.document.wordCount")
q.run_command("quill.markdown.normalizeHeadings")or, in TypeScript:
await quill.insertText("Hello from TypeScript.");
await quill.gotoLine(42);
const stats = await quill.documentStats();
console.log(stats.words);Every editor-changing action must go through the QUILL command registry or official scripting API so undo, dirty-state tracking, accessibility announcements, status bar updates, telemetry, and tests remain consistent.
2. Problem statement
QUILL is becoming a rich writing and document environment with commands, macros, Quillins, profiles, diagnostics, document intake, spell checking, format conversion, and accessibility-aware UI behavior.
Without a developer console and automation API:
- Developers must debug by adding temporary logging or breakpoints.
- Support staff cannot easily inspect user state during troubleshooting.
- Power users cannot automate repetitive editor actions.
- Macro support risks becoming a separate one-off system instead of using the same command architecture as the rest of QUILL.
- Future Quillins may lack a simple interactive testing surface.
- Accessibility professionals cannot quickly inspect document state, selection state, command availability, profile gating, or announcement behavior.
QUILL needs an embedded, accessible command line for trusted local development and automation.
3. Goals
- Provide an accessible Python console inside the running QUILL app.
- Provide a TypeScript automation console through a controlled Node subprocess bridge.
- Expose a stable
q/quillscripting object instead of raw internal objects. - Route all mutations through the command registry or official scripting API.
- Preserve undo/redo, dirty-state tracking, backups, status bar updates, and screen-reader announcements.
- Make console results easy to review with NVDA, JAWS, Narrator, braille displays, and keyboard-only workflows.
- Support command history, multi-line input, copy/paste, saved snippets, and transcript export.
- Gate the feature behind profiles and explicit settings so it does not surprise ordinary users.
- Make the console useful for macro development, plugin development, support diagnostics, and test automation.
- Never enable remote execution by default.
4. Non-goals
- QUILL will not provide a public remote execution service in v1.
- QUILL will not allow untrusted scripts to run silently.
- QUILL will not expose arbitrary internal object mutation as the recommended workflow.
- QUILL will not make Python or TypeScript scripting required for normal use.
- QUILL will not replace a full IDE, debugger, or terminal.
- QUILL will not guarantee sandbox security for arbitrary malicious code in the local Python console.
- QUILL will not let scripts bypass document protection, source-file safety, cloud-consent prompts, or profile safety rules.
5. User stories
5.1 Developer
As a QUILL developer, I want to open a console, inspect the active document, run commands, and test editor behavior without rebuilding or adding temporary menu items.
Example:
q.doc.name
q.selection.text
q.goto_line(100)
q.run_command("quill.find.next")5.2 Accessibility tester
As an accessibility tester, I want to inspect the focused region, active command, current screen-reader announcement backend, and the last announcements so I can diagnose what a user experienced.
Example:
q.a11y.last_announcements()
q.a11y.announce("Testing announcement path.")
q.focus.describe()5.3 Macro author
As a power user, I want to experiment with commands interactively and save successful sequences as a macro.
Example:
q.begin_macro("Clean OCR text")
q.run_command("quill.text.normalizeUnicode")
q.run_command("quill.text.dehyphenateLines")
q.run_command("quill.text.reflowParagraphs")
q.end_macro()5.4 Support technician
As a support technician, I want a user to run a safe diagnostic command and copy the output into an email or support ticket.
Example:
q.support.diagnostic_summary()5.5 TypeScript user
As a developer more comfortable with TypeScript, I want to run async commands against QUILL using a typed API and receive clear errors.
Example:
const doc = await quill.activeDocument();
await quill.gotoLine(25);
console.log(doc.name);6. Feature placement
The feature appears in the following command surfaces:
Tools menu
Tools > Authoring and Automation > Developer Console
Submenu items:
- Open Python Console
- Open TypeScript Console
- Open Console Transcript
- Save Current Console as Macro
- Manage Console Snippets
- Console Safety Settings
- Copy Diagnostic Summary
Command palette
Commands:
quill.console.openPythonquill.console.openTypeScriptquill.console.clearquill.console.copyTranscriptquill.console.saveTranscriptquill.console.saveInputAsSnippetquill.console.insertSnippetquill.console.runSelectionquill.console.runCurrentDocumentquill.console.showContextquill.console.resetNamespacequill.console.restartTypeScriptWorkerquill.console.openSafetySettings
Feature profiles
Default visibility:
| Profile | Python console | TypeScript console | Macro recording | Remote console |
|---|---|---|---|---|
| Essential | Off | Off | Off | Locked off |
| Casual Writer | Quiet | Off | Quiet | Locked off |
| Reader and Student | Off | Off | Off | Locked off |
| Office and Admin | Quiet | Off | Quiet | Locked off |
| Accessibility Professional | On | Quiet | On | Locked off |
| Developer and Power Text | On | On | On | Locked off |
| Braille and Screen Reader Power User | Quiet | Quiet | On | Locked off |
| Full Quill | On | On | On | Locked off |
Remote execution remains unavailable unless an experimental developer build explicitly enables it.
7. UX requirements
7.1 Console window layout
The console is a standard wx dialog or frame using stock controls.
Required controls:
Transcript output
- Read-only multi-line
wx.TextCtrl - Receives command output, errors, return values, announcements, and command prompts
- Supports select all, copy, find, and save transcript
- Read-only multi-line
Command input
- Editable
wx.TextCtrl - Single-line by default
- Multi-line mode available with a toggle or
Shift+Enter - Enter runs the current command when the command is complete
- Editable
Language selector
- Python
- TypeScript
- Future: command-only mode
Status line
- Shows current language, prompt state, active document, and worker status
Buttons
- Run
- Clear
- Copy transcript
- Save transcript
- Insert snippet
- Help
- Close
7.2 Keyboard behavior
Required shortcuts:
| Shortcut | Action |
|---|---|
| Enter | Execute current command |
| Shift+Enter | Insert newline in multi-line input |
| Ctrl+Enter | Force execute multi-line command |
| Up/Down | Previous/next command history when input cursor is at boundary |
| Ctrl+L | Clear transcript |
| Ctrl+Shift+C | Copy transcript |
| Ctrl+S | Save transcript |
| Ctrl+F | Find in transcript |
| F6 | Move between transcript, input, status, and buttons |
| Esc | Return focus to editor if console is non-modal; close if modal confirmation is not needed |
| F1 | Open console help |
| Ctrl+Space | Trigger completion if available |
| Tab | Insert indentation in multi-line mode or move focus depending on setting |
7.3 Screen-reader behavior
The console must be fully usable with NVDA, JAWS, and Narrator.
Requirements:
- Every control has a clear accessible name.
- The transcript announces new output without stealing focus.
- Errors are announced with the prefix “Error”.
- Return values are announced with the prefix “Result”.
- Long output is not automatically spoken in full; the console announces a summary and lets the user review the transcript.
- The console supports a “copy last result” command.
- The console supports a “speak last result” command.
- The console uses QUILL’s central announcement path.
- Braille users can review the transcript as plain text.
- No custom drawn controls are allowed in the primary console workflow.
7.4 Prompt behavior
Python prompt:
>>>
Continuation prompt:
...
TypeScript prompt:
ts>
Async TypeScript pending prompt:
ts*>
The prompt itself is included in the transcript but not required in copied code unless the user chooses “Copy with prompts”.
8. Python console requirements
8.1 Execution model
The Python console runs in-process and uses Python’s embedded interpreter facilities.
The console maintains a persistent namespace for the session. Hiding the console does not destroy the namespace unless the user explicitly resets it.
8.2 Default namespace
The following names are available by default:
q # Primary QUILL scripting API
app # Application-level read-mostly object
frame # Main frame, available for debugging
commands # Command registry read/execute facade
doc # Active document snapshot
editor # Active editor snapshot
sel # Current selection snapshot
caret # Current caret snapshot
profile # Active feature profile snapshot
settings # Safe settings facade
diagnostics # Diagnostics facade
a11y # Announcement/testing facade
log # Console-safe logger
wx # wx module, developer profile only8.3 Snapshot refresh
The console updates snapshot variables when:
- The console opens.
- The active document changes.
- The user runs
q.refresh_context(). - A command changes editor state.
- The user chooses “Refresh Console Context”.
Snapshot variables such as doc, sel, and
caret are safe read-only snapshots unless explicitly
documented otherwise.
8.4 Python examples
q.insert_text("Hello from QUILL.")q.replace_selection("Replacement text")q.goto_line(42)q.run_command("quill.document.wordCount")q.a11y.announce("This is a test announcement.")q.diagnostics.document_summary()q.commands.search("spell")9. TypeScript console requirements
9.1 Execution model
The TypeScript console runs out-of-process through a Node worker.
Python QUILL process:
- Owns the editor, document model, command registry, and UI thread.
- Sends TypeScript code to the Node worker.
- Receives JSON-RPC-style command requests from the worker.
- Executes approved commands on the wx main thread.
- Returns structured results or errors.
Node TypeScript worker:
- Receives TypeScript code.
- Transpiles it to JavaScript.
- Executes it with a limited
quillproxy object. - Sends editor actions back to Python as structured requests.
- Captures
console.log, warnings, errors, and return values.
9.2 TypeScript global API
The TypeScript console exposes:
quill
console
setTimeout
clearTimeout
AbortControllerThe TypeScript worker must not expose unrestricted filesystem, network, process, or shell access through the default console environment.
9.3 TypeScript examples
await quill.insertText("Hello from TypeScript.");await quill.replaceSelection("Replacement text");await quill.gotoLine(42);const stats = await quill.documentStats();
console.log(`${stats.words} words`);await quill.runCommand("quill.markdown.normalizeHeadings");9.4 Type definitions
QUILL ships a quill-console.d.ts type definition file so
TypeScript users get completion and documentation.
Example:
interface QuillConsoleApi {
insertText(text: string): Promise<void>;
replaceSelection(text: string): Promise<void>;
gotoLine(line: number): Promise<void>;
runCommand(commandId: string, args?: Record<string, unknown>): Promise<unknown>;
activeDocument(): Promise<QuillDocumentSnapshot>;
documentStats(): Promise<QuillDocumentStats>;
announce(text: string, options?: AnnouncementOptions): Promise<void>;
}9.5 Worker lifecycle
The TypeScript worker starts only when the TypeScript console is opened.
The worker stops when:
- QUILL exits.
- The user closes the console and worker idle timeout expires.
- The user chooses “Restart TypeScript Worker”.
- The worker exceeds memory or time limits.
- The worker crashes.
Worker crashes must not crash QUILL.
10. QUILL scripting API
10.1 API principles
The scripting API is the official automation surface.
Rules:
- Mutations go through the command registry.
- Undo/redo must work.
- Dirty state must update.
- Status bar must update.
- Screen-reader announcements must happen.
- Profile and feature gates must be respected.
- Cloud/network actions must still ask for consent.
- Protected originals must stay protected.
- Commands must return structured results.
- Errors must be plain-language first, traceback second.
10.2 Python API shape
class QuillScriptAPI:
def insert_text(self, text: str) -> None: ...
def replace_selection(self, text: str) -> None: ...
def selected_text(self) -> str: ...
def document_text(self) -> str: ...
def set_document_text(self, text: str) -> None: ...
def goto_line(self, line: int) -> None: ...
def goto_offset(self, offset: int) -> None: ...
def run_command(self, command_id: str, **kwargs): ...
def command_exists(self, command_id: str) -> bool: ...
def list_commands(self, query: str | None = None) -> list[CommandInfo]: ...
def active_document(self) -> DocumentSnapshot: ...
def document_stats(self) -> DocumentStats: ...
def refresh_context(self) -> None: ...10.3 TypeScript API shape
interface QuillApi {
insertText(text: string): Promise<void>;
replaceSelection(text: string): Promise<void>;
selectedText(): Promise<string>;
documentText(): Promise<string>;
setDocumentText(text: string): Promise<void>;
gotoLine(line: number): Promise<void>;
gotoOffset(offset: number): Promise<void>;
runCommand(commandId: string, args?: Record<string, unknown>): Promise<unknown>;
commandExists(commandId: string): Promise<boolean>;
listCommands(query?: string): Promise<CommandInfo[]>;
activeDocument(): Promise<DocumentSnapshot>;
documentStats(): Promise<DocumentStats>;
refreshContext(): Promise<void>;
}10.4 Safe facades
The console exposes safe facades instead of raw internals wherever possible.
Required facades:
q.documentsq.editorq.selectionq.commandsq.bookmarksq.searchq.spellq.markdownq.textq.a11yq.diagnosticsq.profileq.settingsq.supportq.macrosq.quillins
11. Command registry integration
Every console-callable command must declare metadata:
Command(
id="quill.editor.insertText",
title="Insert Text",
description="Insert text at the current caret position.",
handler=insert_text_handler,
default_key=None,
when="editorFocus",
scriptable=True,
mutates_document=True,
undo_group="typing",
requires_consent=False,
profile_feature="developer.console",
)Required metadata fields for scriptable commands:
idtitledescriptionscriptablemutates_documentundo_grouprequires_consentprofile_featureprivacy_labelnetwork_labelreturn_schemaargument_schema
The console refuses to run commands marked
scriptable=False unless developer unsafe mode is
enabled.
12. Macro integration
The console is the fastest path to creating and testing macros.
Requirements:
- Users can save selected console history as a macro.
- Macros are stored as command sequences by default, not arbitrary Python code.
- Python macros are developer-profile-only.
- TypeScript macros are developer-profile-only.
- Command-sequence macros are allowed in more profiles.
- Macro execution shows a preview when it will modify the document.
- Macro execution is one undo group unless the macro author explicitly splits undo groups.
- Macro failures stop execution and announce the failed step.
Example command-sequence macro:
{
"name": "Clean OCR text",
"steps": [
{"command": "quill.text.normalizeUnicode"},
{"command": "quill.text.dehyphenateLines"},
{"command": "quill.text.reflowParagraphs"}
]
}13. Security and safety
13.1 Local trust model
The Python console is trusted local code execution.
QUILL must clearly warn users:
The Developer Console can run code inside QUILL.
Only run commands you understand or received from a trusted source.
This warning appears:
- The first time the console opens.
- When enabling the feature from Settings.
- When pasting multi-line code from the clipboard.
- When attempting to enable unsafe developer mode.
13.2 Remote execution
Remote execution is locked off by default.
Requirements:
- No listening socket in stable builds.
- No hidden remote console.
- No command-line flag that silently enables remote execution.
- Experimental remote console, if ever added, must bind to localhost only by default.
- Remote console must require an explicit one-time token.
- Remote console must show a persistent status bar warning.
- Remote console must auto-disable on restart unless the user explicitly chooses otherwise.
13.3 Dangerous operations
The console must prompt or block for:
- Running shell commands
- Reading arbitrary files outside allowed locations
- Writing arbitrary files outside QUILL-controlled flows
- Sending document content to network services
- Installing Quillins
- Changing profile safety rules
- Disabling backups or crash recovery
- Accessing protected source documents
- Running pasted multi-line code
13.4 TypeScript worker limits
Default limits:
| Limit | Default |
|---|---|
| Execution timeout | 30 seconds |
| Idle timeout | 10 minutes |
| Memory warning | 256 MB |
| Memory hard limit | 512 MB |
| Output flood threshold | 100 KB |
| Max transcript size | 5 MB before rotation prompt |
Long-running TypeScript scripts must support cancellation.
14. Accessibility requirements
The console must pass QUILL’s normal accessibility gates.
Required tests:
- NVDA reads console controls correctly.
- JAWS reads console controls correctly.
- Narrator reads console controls correctly.
- F6 cycles through console regions.
- Escape behavior is predictable.
- New output does not steal focus.
- Long output is summarized.
- Errors are reviewable character-by-character.
- Braille display review works through the transcript control.
- High contrast mode remains readable.
- Large font mode does not clip prompts or buttons.
- Keyboard-only users can run, copy, save, clear, and close.
- No console action traps focus.
15. Error handling
Errors appear in three layers:
- Plain-language summary
- Actionable suggestion
- Technical details, expandable or copyable
Example:
Error: Unknown command "quill.markdown.fixHeading".
Suggestion: Run q.commands.search("heading") to find matching commands.
Details: CommandNotFoundError: quill.markdown.fixHeading
Python tracebacks are available but collapsed behind “Show technical details” unless the active profile is Developer and Power Text.
TypeScript stack traces are captured and mapped to the user’s submitted code when possible.
16. Logging and transcripts
The console keeps a local transcript of:
- Commands entered
- Results
- Errors
- Warnings
- Announcements triggered by console commands
- Worker lifecycle events
- Macro recording markers
Privacy requirements:
- Transcripts are not sent anywhere automatically.
- Document text is included only when commands print or return it.
- “Copy diagnostic summary” redacts document content by default.
- Users can save transcripts manually.
- Support packages ask before including transcript content.
17. Settings
Settings page:
Settings > Developer Console and Automation
Settings:
- Enable Developer Console
- Enable Python Console
- Enable TypeScript Console
- Show first-run safety warning again
- Require confirmation before pasted multi-line execution
- Require confirmation before document-wide mutation
- Allow script access to raw wx objects
- Allow shell commands
- Allow filesystem access
- TypeScript worker path
- TypeScript worker timeout
- Transcript retention
- History retention
- Clear history on exit
- Enable completions
- Enable result announcements
- Output verbosity: concise, normal, verbose
- Unsafe developer mode
Dangerous settings are available only in Developer and Power Text or Full Quill profiles.
18. Data storage
Suggested files:
%APPDATA%\Quill\console\
history.jsonl
snippets.json
transcripts\
types\
quill-console.d.ts
ts-worker\
worker.js
Portable mode stores the same structure next to the portable QUILL configuration directory.
History entries contain:
{
"timestamp": "2026-06-10T00:00:00Z",
"language": "python",
"input": "q.document_stats()",
"success": true
}History must not store command output by default.
19. Technical architecture
19.1 New modules
quill/
core/
scripting.py Official QuillScriptAPI facade
script_context.py Active console context snapshots
script_permissions.py Console permission checks
script_results.py Structured result and error models
devtools/
console_window.py wx console UI
python_console.py Embedded Python console
ts_console.py Python-side TypeScript bridge
ts_worker_protocol.py JSON-RPC message schema
completions.py Completion provider
history.py Console history manager
snippets.py Snippet manager
transcripts.py Transcript manager
tools/
ts_worker/
worker.ts TypeScript worker source
worker.js Built worker
quill-console.d.ts Type definitions
19.2 Threading model
Rules:
- UI mutations must run on the wx main thread.
- Console input handling may occur in the UI thread only for quick commands.
- Long commands must run as background tasks.
- TypeScript worker communication runs asynchronously.
- Results are marshaled back to the UI through QUILL’s event queue or
wx.CallAfter. - Command cancellation must be supported for long-running tasks.
19.3 Command execution flow
User enters command
↓
Console parser receives input
↓
Python console or TypeScript worker executes code
↓
Code calls q / quill API
↓
API validates permission, profile, and command metadata
↓
Command registry executes command
↓
Document/editor/status/a11y systems update
↓
Structured result returns to console
↓
Transcript updates and concise result is announced
20. Completion and help
The console should provide discoverability without requiring users to memorize APIs.
Completion sources:
qmethods- command ids
- active document properties
- macro names
- snippet names
- settings keys
- feature ids
Help commands:
q.help()
q.help("insert_text")
q.commands.search("bookmark")
q.describe_command("quill.editor.gotoLine")
q.examples("markdown")TypeScript equivalents:
await quill.help();
await quill.commands.search("bookmark");
await quill.describeCommand("quill.editor.gotoLine");21. Testing strategy
21.1 Unit tests
QuillScriptAPI.insert_textroutes through command registry.replace_selectioncreates one undoable operation.goto_linerejects invalid line numbers with plain-language errors.run_commandrefuses non-scriptable commands.- Profile gates hide or reject console commands properly.
- Permission checks block dangerous operations.
- Snapshot refresh updates document, selection, and caret state.
- TypeScript protocol serializes and deserializes results correctly.
- Worker crash returns a structured error.
21.2 Integration tests
- Open Python console, run
q.insert_text, verify document changes. - Run document-wide command, verify undo restores prior state.
- Run command that announces result, verify announcement transcript.
- Open TypeScript console, run
await quill.insertText(...). - Restart TypeScript worker and verify QUILL stays alive.
- Save console history as macro and run macro.
- Copy diagnostic summary and verify redaction.
- Paste multi-line code and verify confirmation prompt.
21.3 Accessibility tests
- NVDA reads transcript and input controls.
- JAWS reads transcript and input controls.
- Narrator reads transcript and input controls.
- F6 region cycling works.
- Escape returns focus predictably.
- High contrast and large fonts work.
- Long output does not cause speech flood.
- Error details are reachable and copyable.
21.4 Security tests
- Remote execution is not listening in stable builds.
- TypeScript worker cannot directly access unrestricted shell by default.
- Console cannot bypass network consent.
- Console cannot silently overwrite protected source documents.
- Pasted multi-line execution triggers confirmation.
- Unsafe developer mode cannot be enabled by imported profile alone.
22. Success criteria
The feature is successful when:
- A developer can open the Python console and inspect/manipulate the
active document through
q. - A TypeScript user can run async editor commands through
quill. - All document mutations are undoable.
- Screen-reader users can operate the console without custom scripts.
- Console commands respect profile, permission, and consent rules.
- Long or failed commands do not crash QUILL.
- TypeScript worker crashes do not crash QUILL.
- Support diagnostics can be copied without leaking document content by default.
- Macro creation can reuse console command history.
- CI covers unit, integration, accessibility, and safety behavior.
23. MVP scope
MVP: Python Developer Console
Included:
- Python console window
qscripting API- Command registry execution
- Transcript output
- History
- Clear/copy/save transcript
- Basic completions
- Plain-language errors
- First-run safety warning
- Profile gating
- Undo-aware document mutations
- Accessibility tests with NVDA
Not included in MVP:
- TypeScript console
- Macro recording from history
- Advanced snippets
- Remote execution
- Raw wx unsafe mode
- Plugin authoring APIs
MVP+1: TypeScript Console
Included:
- Node worker bridge
- TypeScript transpilation
quillasync proxy- Type definitions
- Worker restart
- Worker timeout and memory limits
- Console output capture
- TypeScript examples
MVP+2: Macro and Quillin authoring
Included:
- Save console history as macro
- Snippet manager
- Quillin test harness
- Command-sequence macro editor
- Console-based plugin diagnostics
24. Open questions
- Should Python console be included in QUILL 1.0 as hidden experimental functionality?
- Should the console be modal, non-modal, or dockable?
- Should command history persist by default or require opt-in?
- Should TypeScript support be bundled or require Node detection?
- Should a minimal embedded JS engine be considered later for users who do not have Node?
- Should console snippets sync with macros, or remain separate?
- Should support technicians have a restricted “diagnostics-only console” mode?
- Should unsafe developer mode require a launch flag in addition to a setting?
- Should QUILL ship sample scripts for OCR cleanup, Markdown repair, and diagnostics?
- Should console transcript export support Markdown, plain text, and JSON?
25. Example first-run warning
Developer Console
This console can run commands inside QUILL and may change the current document.
Only run commands you understand or received from a trusted source.
Recommended:
- Use q.run_command(...) or documented q methods.
- Do not paste code from unknown sources.
- Save your document before running document-wide commands.
[Open Console] [Cancel] [Learn More]
26. Example diagnostic summary command
Python:
q.support.diagnostic_summary()Output:
QUILL diagnostic summary
Version: 1.1.0-dev
Profile: Developer and Power Text
Active document: chapter-7.md
Modified: yes
Documents open: 3
Screen reader detected: NVDA
Announcement backend: auto
Python console: enabled
TypeScript console: available
Last command: quill.editor.gotoLine
Last error: none
Document content included: no
27. Definition of done
This feature is done when:
- The Python console is fully keyboard accessible.
- The Python console exposes the official
qscripting API. - TypeScript console runs through a subprocess bridge and cannot crash QUILL.
- All editor mutations go through the command registry or scripting API.
- Undo/redo, dirty-state, status bar, and accessibility announcements remain correct after console-driven changes.
- Profile gating and safety settings work.
- First-run safety warnings are present.
- Console history, transcript copy, and transcript save work.
- Dangerous actions require confirmation or are blocked.
- Automated tests cover command execution, accessibility, worker failure, permissions, and undo behavior.
- User documentation explains examples, risks, and safe patterns.
How the Copy Tray was built
What Was Built
Copy Tray is a nine-slot persistent clipboard integrated across QUILL’s menu bar, keyboard layer, dialog system, and system tray icon. Every slot holds text that survives application restarts.
Core model
(quill/core/copy_tray.py)
A pure Python model with no wx dependency. CopyTray owns
nine TraySlot instances. Each slot has text,
label, and copied_at. The model reads and
writes copy_tray.json in the QUILL data directory using
write_json_atomic (temp file + os.replace). A
corrupt file causes a silent fresh start; it never raises to the UI.
UI mixin
(quill/ui/main_frame_copy_tray.py)
CopyTrayMixin is mixed into MainFrame.
Methods:
copy_to_tray_slot(n)– copies the editor selection to slot n; announces slot number and text preview.paste_from_tray_slot(n)– inserts slot n text at cursor (or replaces selection); announces slot number and label.open_copy_tray()– opens the management dialog; pastes if the user chooses Paste and returns to the editor.clear_all_tray_slots()– Yes/No confirmation (default No); clears all nine slots on Yes.
Dialog
(quill/ui/copy_tray_dialog.py)
A resizable wx.Dialog with a ListBox and five action buttons. Each list row shows slot number, optional label, and a 60-character preview. The list receives focus on open. Buttons: Paste (Enter), Copy Selection Here, Set Label…, Clear Slot, Close (Escape). Double-click pastes. Button states update on every selection change: Paste and Clear Slot are disabled on empty slots; Copy Selection Here is disabled when no editor text is selected.
Keyboard bindings
(quill/core/keymap.py)
| Key | Action |
|---|---|
Ctrl+Alt+Shift+1 through
Ctrl+Alt+Shift+9 |
Paste from slot 1-9 |
Ctrl+Shift+Grave, Shift+1 through
Ctrl+Shift+Grave, Shift+9 |
Copy selection to slot 1-9 |
Ctrl+Alt+V |
Open Copy Tray dialog |
The paste bindings use the number row with Ctrl+Shift.
These keys were confirmed free across the entire QUILL keymap. QUILL-key
bare digits 1-6 are heading shortcuts; adding Shift produces a distinct
chord with no conflict.
All 20 commands (edit.open_copy_tray,
edit.clear_all_tray_slots,
edit.copy_to_tray_1..9,
edit.paste_from_tray_1..9) are registered in the keymap and
appear in the Command Palette. All are reassignable in the Keymap
Editor.
Menu integration
(quill/ui/main_frame_menu.py)
Edit > Copy Tray submenu with:
- Copy to Slot 1-9
- Paste from Slot 1-9
- Open Copy Tray…
- Clear All Tray Slots
The 18 per-slot items use dedicated wx.NewIdRef() IDs
(_id_copy_tray_slots and _id_paste_tray_slots
arrays). Management commands are recirculated from the power tools
manifest via _append_power_tools_copy_tray_items.
Power
tools manifest
(quill/ui/main_frame_power_tools_menu.py)
New "copy_tray" group with
edit.open_copy_tray and
edit.clear_all_tray_slots. New recirculation helper
_append_power_tools_copy_tray_items. The 18 individual slot
commands are also registered in the manifest for Command Palette
discoverability.
System tray
integration (quill/ui/main_frame.py)
The _on_tray_right_click method now builds a
Copy Tray submenu listing every occupied slot with its
label (if any) and a 50-character text preview. Clicking a slot calls
_tray_paste_slot(n), which restores the main window if it
is hidden, then pastes the slot content. If all slots are empty, the
submenu shows “(all slots empty)” as a disabled item. “Open Copy Tray…”
is always present at the bottom of the submenu.
Documentation
docs/userguide.md– complete feature reference with keyboard tables, dialog walkthrough, accessibility notes, and workflow tips.docs/QUILL-PRD.md– section 5.77 added with motivation, operations table, keyboard defaults, storage spec, accessibility guarantees, and implementation map.docs/userguide.md– “Copy Tray” section added in Writing and Editing, before “Copy With Source”, with full keyboard tables and a tips block.
The User Experience
First encounter
You open QUILL to write a long document while researching from
several other sources. You read a quote you want to use, select it, and
press Ctrl+Shift+Grave, Shift+1. QUILL says “Copied to slot
1”. You read another fragment. Ctrl+Shift+Grave, Shift+2.
“Copied to slot 2”. A third. Slot 3.
You switch to your draft. Where you want the first quote, press
Ctrl+Alt+Shift+1. QUILL says “Pasted from slot 1” and the
text is there. The system clipboard was never disturbed. The other two
quotes are still in their slots.
You close QUILL. Come back tomorrow. Slots 1, 2, and 3 still hold their contents.
Using labels
After a few days you decide to give slot 1 a permanent home: your
email signature. You open Ctrl+Alt+V, navigate to slot 1,
press Set Label…, type “signature”, press Enter. Now when you paste,
QUILL says “Pasted from slot 1 (signature)”. The slot is identifiable
without looking at a screen.
From the system tray
QUILL is minimized to the system tray while you read in another browser. You right-click the QUILL icon. The menu shows:
Show Quill
Copy Tray >
1. signature — Hi, I wanted to follow up...
2. Hello world...
3. import sys, os, pathlib...
...
Open Copy Tray...
Sticky Notes...
Exit Quill
You click slot 3. QUILL restores its window and pastes the import block at your cursor. You minimize again.
Screen reader workflow
Press Ctrl+Alt+Shift+5. QUILL says “Slot 5 is empty.”
You know immediately without opening a dialog or reading the screen.
Select some text, press Ctrl+Shift+Grave, Shift+5. “Copied
to slot 5.” Move elsewhere. Press Ctrl+Alt+Shift+5. “Pasted
from slot 5.” Everything happened through voice, at typing speed, with
standard modifier+number chords.
Ideas for later: double-tap keys
The user asked whether pressing a key twice quickly could trigger an alternative action. For Copy Tray, the natural double-tap behaviour would be:
- Single
Ctrl+Shift+N– paste from slot N immediately. - Double
Ctrl+Shift+N(two presses within ~300ms) – peek: QUILL speaks what is in slot N without pasting (“Slot 3: Hello world…”). This lets a screen-reader user verify a slot’s content before committing to paste.
Implementing double-tap detection requires a timer in the QUILL-key prefix state machine, a 300ms debounce, and a clear screen-reader announcement pattern. It is architecturally clean and would make the Copy Tray even more efficient for screen-reader-only workflows. This is noted here as a planned enhancement, not yet implemented.
Other places in QUILL where double-tap patterns could add value:
- Double QUILL key (two presses of
Ctrl+Shift+Grave) = open Copy Tray dialog, similar to how WindowsWin+Vopens clipboard history. - Double
F3= repeat the last Find All and jump to the next cluster of matches. - Double
Ctrl+Z= undo back to the last explicit save point. - Double
Ctrl+G= return to the previous location (ping-pong navigation). - Double
Escape= collapse all side panels and return focus to the editor.
These should be evaluated selectively – double-tap timing is sensitive and can interfere with rapid typists. The patterns with the clearest benefit and the lowest collision risk are: Copy Tray peek and QUILL-key-double-press for the tray dialog.
Glossary of QUILL Terms
These are the words you will meet in QUILL’s menus, dialogs and documentation, with what each one means. They are listed roughly in the order a new user tends to run into them.
Abbreviation A short word or phrase that QUILL turns
into longer text as you type. For example, typing brb could
become “be right back”. You manage them in the Abbreviation Manager
(Ctrl+Shift+Grave, Shift+A). Abbreviations expand on their
own, with no separate insert step, and they do not have fill-in
placeholders. Snippets are the ones with placeholders.
Agent / Agent Center An AI helper that takes a goal you describe and turns it into a plan of several steps. The Agent Center shows you each step before it runs, so you can check it and approve it. Agents are built on the Writing Assistant and Prompt Studio, and they need an AI provider set up first.
Browse Mode / Quick Nav Mode A way of moving around
where single keys become navigation commands. Press the QUILL key once
to turn on Quick Nav for just the next key you press. Press it twice to
lock Browse Mode on until you press Escape. While Browse Mode is on,
letter keys and arrow keys move you around instead of typing, much like
your screen reader’s virtual cursor on a web page. (In the keymap the
QUILL key is written Ctrl+Shift+Grave; everywhere else
QUILL shows it as QUILL Key.)
Command Palette A searchable list of every QUILL
command, with the key each one is on right now. Open it with
Ctrl+Shift+P, type any part of a command’s name to narrow
the list, then press Enter to run it. It is the quickest way to anything
when you do not remember the menu or the key.
Copy Tray A clipboard with twelve slots, kept inside
QUILL. The Windows clipboard holds one thing at a time; the Copy Tray
lets you copy different pieces of text into numbered slots and paste
from any of them. To copy into a slot, press
Ctrl+Shift+Grave, Shift+1 through
Ctrl+Shift+Grave, Shift+9, then
Ctrl+Shift+Grave, Shift+0,
Ctrl+Shift+Grave, Shift+- and
Ctrl+Shift+Grave, Shift+= for slots ten to twelve. Open the
Copy Tray dialog with Ctrl+Alt+V, which works much like
Win+V does for Windows’ own clipboard history.
Document Tab One open file, or one thing QUILL made
for you, in the editor area. QUILL opens everything in tabs: each file,
compare summary or AI result gets its own. When you switch tabs with
Ctrl+Tab, QUILL tells you the tab’s name.
GLOW (Guided Layout and Output Workflow) QUILL’s built-in checker for text quality and accessibility. GLOW looks through a document for problems with its structure: heading levels, link text like “click here”, missing alt text, missing language information, tables without header cells, spacing, and paragraphs that are too dense. It offers fixes that do the same thing every time. The results open as tabs you can read. Fixing the open document shows you a named preview and starts a compare, so you can review each change. Fixing a file on disk writes a repaired copy and leaves the original alone. The checks inside the editor cover plain text, Markdown and HTML. The optional GLOW engine adds checks and fixes for DOCX, PPTX, XLSX, PDF and EPUB, with a scored, graded report. You will find all of it under Tools > GLOW.
Keymap / Keyboard Pack (.kqp) The list of which key
runs which QUILL command. You can change any of it in
Preferences > Keyboard. You can export your keymap
as a .kqp file (a Keyboard Pack) to share it, or import one
somebody else made. Resetting the keymap puts the factory keys back and
leaves your other preferences alone.
Macro A recording of things you did in QUILL that you can play back whenever you like. Start from Tools > Macros > Start Recording, do the steps you want to repeat, then stop recording. Play it back later and QUILL repeats the steps exactly. Macros are great for cleanup jobs you do over and over.
Profile (Feature Profile) A named set of switches that decides which QUILL features you see and can use. QUILL comes with profiles such as Writing, Developer and Accessibility. A profile hides the features you do not need for the work in front of you, so the menus and option dialogs stay short. Change or edit profiles in More Preferences > Profiles and Features.
Prompt Studio The place to write and save AI prompts
you want to reuse, with named blanks you fill in each time. A Prompt
Studio template might be “Rewrite for Plain Language: ${input:text}”,
where you supply the text each time you run it. Prompts are saved as
.pqp files, and you can import and export them.
Quillin (Extension) An add-on for QUILL, also called
an extension. A Quillin can add commands, menu items, AI prompts or
automation scripts. Each one has a manifest.json file that
describes what it does. Quillins run in a separate process, so if one
crashes it cannot take the editor down with it. That is not a security
sandbox, though: what keeps Quillins honest is code review and the
Author Covenant. QUILL comes with several Quillins already (word count,
AI writing prompts), and you can install others. The Quillin Manager is
in Preferences > Extensions.
Recovery / Session Recovery QUILL quietly saves a copy of your work every so often. If QUILL closes when you did not expect it (a crash, a power cut, an accidental close), it notices the unsaved work the next time it starts and offers to bring back the last version it kept. Recovery files are kept apart from your own saved files, so a damaged recovery file can never overwrite your original. Manage them in File > Recover Document.
Remote Site A saved connection to a server, so QUILL can open and save files there directly. QUILL works with FTP, SFTP, HTTPS (WebDAV) and S3-compatible object storage. You name and save sites in File > Remote Sites > Manage Remote Sites, so you do not have to type your sign-in details every time. Each site keeps the host, port, protocol, sign-in details (encrypted on Windows with DPAPI) and a starting folder.
Safe Mode A way of starting QUILL with AI, Watch
Folder and Quillin extensions turned off. Use it when a Quillin or an AI
provider is causing trouble and you want a clean start. Start QUILL with
--safe-mode on the command line, or set
QUILL_SAFE_MODE=1 as an environment variable before you
start it. In Safe Mode, the status bar tells you which features are
off.
Session (AI Session) An ongoing conversation between you and an AI provider inside QUILL. A session has a name, a provider, a model and the history of what was said. You can keep several named sessions and switch between them. Sessions are kept on your computer and can be exported. The Writing Assistant always works inside a session.
Skill / Skill Library A named AI workflow you can
reuse, made of several steps (prompts, transforms and conditions). A
skill is more organised than a single prompt: each step can pass what it
produced on to the next. The Skill Library (AI > Skill
Library) is where you browse, run and write skills. Skills are
stored as .json files; the skills you write and share by
hand are .sqp files, and Appendix B shows you how.
Snippet A block of text you reuse, inserted at the
cursor when you ask for it. A snippet can have fill-in blanks:
${input:name} asks you to type something,
${choice:a|b} gives you a list to pick from,
${date} and ${time} fill in the date and time,
and ${cursor} marks where the cursor lands afterwards.
Insert one with Ctrl+Shift+Grave, S, and manage them with
Ctrl+Shift+Grave, Shift+S. Abbreviations are different:
they expand on their own as you type.
Sound Pack A set of sound files QUILL plays as feedback that is not speech: key sounds, navigation tones, alert chimes and, if you want them, tones for indentation levels when you write code. A Sound Pack is loaded from a named folder, and you can swap packs in Preferences. The default pack uses synthesised bell tones. A custom pack can use any WAV files, as long as they follow the naming convention.
Template A ready-made document shape to start new
writing from. QUILL has two kinds. Snippets
(Ctrl+Shift+Grave, S) insert reusable blocks with fill-in
blanks anywhere. The Accessible Vault’s Insert Template
command fills in note templates from your vault’s Templates folder: it
fills in {{date}} and {{title}}, asks you any
{{prompt}} questions, and puts the cursor at
{{cursor}}.
Watch Folder A folder QUILL keeps an eye on while it runs. Drop a supported file into it, and QUILL opens the file as a new document tab (or deals with it by that folder’s own rules). It is handy for transcriptions, dictation and reviewing a batch of files. Set it up in Tools > Watch Folder.
WebView / Side Preview The pane beside the editor
that shows your document as a rendered page. Open it from the
View menu, or turn on Auto Side-by-Side Preview and it
opens on its own. Alt+F6 moves focus to it, and while it is
open it is one of the places F6 cycles through. It uses
Microsoft Edge WebView2 and shows Markdown, HTML and plain text,
updating as you type. The preview is read-only and never changes your
document.
Welcome Guide A short getting-started document that opens inside QUILL as a document tab. The full User Guide opens in your browser; the Welcome Guide shows only the features your current profile has turned on. Open it from Help > Open Welcome Guide.
Writing Assistant QUILL’s AI writing panel. Tell it what you want to do in plain words and it suggests the QUILL commands that fit best. It also has ready-made rewrite, summarize, continue and grammar actions, and it can run a limited Python transform on the current document (with a list of allowed imports and limits on resources, which is not a security boundary). It works inside an AI Session and needs an AI provider set up in Preferences.
QUILL Key The key combination
Ctrl+Shift+Grave (the grave or backtick key, above Tab).
Press it once and the next key you press is a QUILL key command. Press
it twice to lock Quick Nav Mode on. Most of QUILL’s more powerful
features start with the QUILL key. QUILL tells you each chord as you
press it, and you can change any of them in Preferences >
Keyboard. In menus, the Keyboard Reference, the status bar and
the cheat sheet, these chords are written
QUILL Key + <key>. In keymap.json and
the Keymap Editor, the same chord is written
Ctrl+Shift+Grave, <key>.
Getting help
Support is run by Community Access, at support@community-access.org. A real person reads every message, and the reply comes back by email.
The quickest way to write is Help > Get Help from
Support… (Ctrl+Alt+F2). Every app in the family
opens the same form. It asks:
- what kind of message this is,
- a subject,
- what happened,
- and, if you would like an answer, an email address to reply to.
What you expected to happen, and the steps to make it happen again, are optional. When you can give them, they help more than anything else.
Press Send and your own mail program opens with the message already written, addressed to support. QUILL’s name and version and your Windows version are filled in at the bottom. Nothing goes anywhere until you send it from there, so you can read it over, add to it, or change your mind.
If this computer has no mail program set up (you only use webmail, say), the app puts the whole message on your clipboard and tells you the address, so nothing you typed is lost. You can also simply write to support@community-access.org yourself. There is no form you have to use. Just say which app you were using and what happened.