Scribbles Documentation
Complete reference guide for Scribbles — a feature-rich text editor built with .NET 8 for Windows.
Command-Line Arguments
Scribbles supports a variety of command-line arguments for automation, scripting, and customization.
Basic Usage
Scribbles.exe [options] [file]
Help & Version
| Argument | Description |
|---|---|
--help, -h, -? | Show help message with all available options |
--version, -v | Show version information and exit |
File Options
| Argument | Description |
|---|---|
<file> | Open the specified file |
--skipfileload | Don't restore previous session, start with empty document |
--read-only | Open files in read-only mode |
--line <number> | Jump to specified line number when opening file |
--column <number> | Jump to specified column when opening file |
--diff <file1> <file2> | Open diff viewer comparing two files |
Window Options
| Argument | Description |
|---|---|
--new-instance | Force new instance instead of single instance mode |
--minimized | Start with window minimized |
--maximized | Start with window maximized |
--stay-on-top | Keep window always on top |
--no-splash | Skip splash screen on startup |
Appearance Options
| Argument | Description |
|---|---|
--theme <name> | Start with specified theme (dark, light, monokai, etc.) |
--font <name> | Use specified font (e.g., "Consolas", "Cascadia Code") |
--font-size <size> | Use specified font size (e.g., 12, 14) |
Advanced Options
| Argument | Description |
|---|---|
--portable | Run in portable mode (settings stored in app folder) |
--session <name> | Load a named session |
--no-plugins | Disable plugin loading |
--uitest | Run in UI test mode (for automated testing). UI tests cover tab-hosted forms and main-window features only; dialog-based forms are excluded. |
--firstrun | Force the first-launch setup wizard to run |
Examples
# Open a file
Scribbles.exe document.txt
# Open with dark theme and specific font
Scribbles.exe --theme dark --font "Cascadia Code" document.txt
# Jump to specific line and column
Scribbles.exe --line 100 --column 20 myfile.cs
# Compare two files
Scribbles.exe --diff file1.txt file2.txt
# Start maximized with stay-on-top
Scribbles.exe --new-instance --maximized --stay-on-top
# Portable mode for USB drive
Scribbles.exe --portable --no-splash
File Management
| Feature | Shortcut | Description |
|---|---|---|
| New File | Ctrl+N | Create a new untitled document |
| New from Template | Menu | Create file from predefined templates |
| Open File | Ctrl+O | Open existing files (supports all file types) |
| Save | Ctrl+S | Save the current document |
| Save As | Ctrl+Shift+S | Save with a new filename |
| Save All | Ctrl+Alt+S | Save all open documents |
| Close Tab | Ctrl+W | Close the current tab |
| Ctrl+P | Print the current document | |
| Print Preview | Ctrl+Shift+P | Preview document before printing |
Editing
| Feature | Shortcut | Description |
|---|---|---|
| Undo | Ctrl+Z | Undo the last action |
| Redo | Ctrl+Y | Redo the last undone action |
| Cut | Ctrl+X | Cut selected text |
| Copy | Ctrl+C | Copy selected text |
| Paste | Ctrl+V | Paste from clipboard (RTF auto-cleaned) |
| Clipboard History | Ctrl+Alt+V | View and paste from clipboard history |
| Select All | Ctrl+A | Select all text |
| Find | Ctrl+F | Open find dialog |
| Find and Replace | Ctrl+H | Open find and replace dialog |
| Regex Replace | Ctrl+Shift+H | Regex-based find and replace |
| Find in Files | Ctrl+Shift+F | Search across multiple files |
| Go to Line | Ctrl+G | Jump to specific line number |
| Go to Symbol | Ctrl+Shift+O | Navigate to functions/classes |
| Format Document | Ctrl+Alt+F | Auto-format JSON, XML, SQL, or YAML |
| Delete Current Line | Ctrl+Shift+K | Delete the line at cursor |
| Diff with Clipboard | Menu | Compare editor content with clipboard |
| Remove Empty Lines | Menu | Strip blank lines from document |
| Trim Whitespace | Menu | Remove trailing whitespace |
Insert Menu
The Insert menu provides quick insertion of dates, GUIDs, random numbers, encoding operations, special characters, and file information.
Date/Time
Insert various date and time formats: ISO date (yyyy-MM-dd), US date, EU date, long date, 24h time, 12h time, ISO 8601, RFC, UTC, Unix timestamps (seconds & milliseconds).
GUID/UUID
Generate and insert GUIDs in different formats: lowercase, UPPERCASE, no hyphens, braces, parentheses, or empty GUID.
Random Numbers
Insert random integers (0-100, 0-1000, 0-1000000), random decimals, percentages, and sequences (1-10, 1-100).
Encoding/Hashing
Inline operations on selected text: Base64 encode/decode, URL encode/decode, MD5/SHA1/SHA256 hash.
Special Characters
Insert special characters: Tab, LF, CRLF, Em Dash, En Dash, Bullet, Copyright, Registered, Trademark, Degree, Plus/Minus, Arrows, Check Mark, Cross Mark.
File Info
Insert file metadata: Current File Path, File Name, Directory, User Name, Machine Name, OS Version.
View Options
| Feature | Shortcut | Description |
|---|---|---|
| Word Wrap | Toolbar | Toggle word wrap on/off |
| Line Numbers | Menu | Show/hide line numbers |
| Code Folding | Menu | Toggle collapsible code regions panel |
| Bracket Matching | Menu | Highlight matching brackets |
| Indent Guides | Menu | Show indentation guide lines |
| Minimap | Ctrl+Shift+M | Toggle code overview minimap panel |
| Formatting Toolbar | Menu | Toggle rich-text formatting toolbar |
| Zoom In | Ctrl++ | Increase editor font size |
| Zoom Out | Ctrl+- | Decrease editor font size |
| Reset Zoom | Ctrl+0 | Reset to default font size |
| Preview Pane | Ctrl+Shift+V | Toggle MD/HTML preview pane |
| Terminal | Ctrl+` | Toggle integrated terminal |
| Folder Viewer | Ctrl+Shift+E | Toggle file explorer panel |
| Performance Monitor | Menu | Show/hide CPU, memory, and disk usage |
| Sticky Notes | Ctrl+Shift+N | Toggle sticky notes panel for quick reminders |
| Full File Name in Tabs | Menu | Show full path in tab titles |
| Multi-Row Tabs | Menu | Enable multi-row tab display |
| Show User Label | Menu | Show username badge in menu bar |
| World Clock | Menu | Configurable multi-city clock in menu bar |
| Tab Groups | Menu | Organize tabs into named, color-coded groups |
| Zen Mode | F11 | Distraction-free fullscreen editing mode |
| Next Document | Ctrl+Tab | Switch to next tab |
| Previous Document | Ctrl+Shift+Tab | Switch to previous tab |
| Toggle Menu Bar | Menu | Hide/show menu bar |
| Toggle Toolbar | Menu | Hide/show toolbar |
| Toggle Status Bar | Menu | Hide/show status bar |
Themes
Scribbles includes 18 built-in themes plus System and Custom theme support:
- Light — Clean white theme with blue accents
- Dark — Modern dark theme easy on the eyes
- Monokai — Popular dark theme with vibrant colors
- Solarized Dark — Low contrast dark theme
- Nord — Arctic, bluish color palette
- Ocean — Deep blue ocean-inspired palette
- Matrix — Green-on-black hacker aesthetic
- Sakura — Soft pink cherry blossom theme
- Rustic — Warm earthy tones
- Sepia — Classic aged paper look
- Midnight — Deep midnight blue
- Forest — Natural green forest palette
- Amber — Warm amber/orange tones
- Teal — Cool teal and cyan colors
- Terminal — Classic green terminal style
- Cosmic — Deep purple space-inspired theme
- Techy — Modern tech-inspired dark theme
- Low Contrast — Reduced contrast for eye comfort
- High Contrast — Maximum contrast for accessibility
- System — Follows Windows system theme
Custom Themes
Create your own theme via View → Theme → Customize...
Pick custom colors for background, foreground, menus, tabs, status bar, editor, and accent.
Syntax Highlighting
Automatic syntax highlighting for 25 languages:
| Language | Extensions |
|---|---|
| C# | .cs |
| JavaScript | .js, .jsx, .mjs |
| TypeScript | .ts, .tsx |
| Python | .py |
| HTML | .html, .htm |
| CSS | .css, .scss, .less |
| XML | .xml, .xaml, .csproj |
| JSON | .json |
| YAML | .yaml, .yml |
| Markdown | .md |
| SQL | .sql |
| PowerShell | .ps1 |
| Batch | .bat, .cmd |
| INI | .ini, .cfg |
| CSV | .csv |
| Log | .log |
| Kusto (KQL) | .kql, .kusto |
| Env | .env |
Text Analysis
The Text Analysis menu provides tools for examining and transforming text.
Case Conversion
Convert selected text to: UPPER CASE, lower case, Title Case, camelCase, snake_case.
Line Operations
- Sort Ascending/Descending — sort lines alphabetically
- Sort by Length — sort lines by character count
- Shuffle — randomize line order
- Deduplicate — remove duplicate lines
Analysis Tools
| Tool | Description |
|---|---|
| Text Statistics | Word, character, line, paragraph counts, reading time, frequent words |
| Word Frequency | Detailed word frequency analysis |
| Readability Score | Flesch-Kincaid readability rating |
| AI Summary | AI-generated text summary |
| Duplicate Lines | Find and highlight duplicate lines |
| Todo Scanner | Scan for TODO, FIXME, HACK comments |
| Syntax Validator | Validate JSON, XML, and other formats |
| Code Metrics | Cyclomatic complexity and other code metrics |
| Encoding Detector | Detect file encoding (UTF-8, ASCII, etc.) |
Macros
Macros let you automate repetitive tasks by recording your keystrokes and mouse actions, then replaying them on demand. No coding required — just press record, perform your actions, and stop. For script-based automation, see Plugins.
Recording a Macro
- Start Recording: Ctrl+Shift+M or Tools → Macros → Start Recording
- Perform Actions: Type text, navigate, select, edit — all actions are captured
- Stop Recording: Tools → Macros → Stop Recording
- Save Prompt: You'll be asked to save the macro with a name
What Gets Recorded
- Text input — All characters you type
- Special keys — Enter, Tab, Backspace, Delete, arrows, Home, End, Page Up/Down
- Mouse clicks — Single, double, and triple clicks with cursor position
- Selections — Text selections made with mouse or keyboard
Playing a Macro
- Quick Play: Ctrl+M or Tools → Macros → Play Macro
- With Repeat: Open Macro Manager, set repeat count (1-1000), click Play
Managing Macros
Open Tools → Macros → Manage Macros... to view, play, save, or delete macros. Macros are stored in %AppData%\Scribbles\macros.json.
Snippets
Save and quickly insert reusable code fragments.
Creating a Snippet
Open Tools → Snippets, click New, and enter:
- Name: Descriptive name (e.g., "Console Log")
- Shortcut: Quick trigger text (e.g., "clog")
- Category: Organize by language/purpose
- Content: The actual snippet text
Snippet Variables
| Variable | Description |
|---|---|
${1}, ${2} | Tab stops for cursor positions |
${date} | Current date |
${time} | Current time |
${filename} | Current file name |
Bookmarks
Mark important lines for quick navigation.
| Action | Shortcut |
|---|---|
| Toggle Bookmark | Ctrl+B |
| Next Bookmark | F2 |
| Previous Bookmark | Shift+F2 |
| Clear All Bookmarks | Menu |
Bookmarked lines show a red circle in the line number gutter and persist during the session.
Sessions
Save and restore your workspace across restarts.
What Gets Saved
- All open tabs with their file paths
- Unsaved content in untitled documents
- Cursor position and scroll position in each file
- Which tab was active
Session Commands
| Command | Location |
|---|---|
| Save Session | File → Save Session |
| Restore Session | File → Restore Session |
%AppData%\Scribbles\session.json.
File Templates
Create new files from predefined templates via File → New from Template.
| Category | Templates |
|---|---|
| Web | HTML Page, CSS Stylesheet, JavaScript Module |
| Programming | C# Class, Python Script, PowerShell Script |
| Data | JSON File, XML File, YAML Config |
| Documentation | Markdown Document, README Template |
Tools & Extensibility Overview
Scribbles organizes its functionality into six distinct categories, each with its own top-level menu:
| Category | Menu | What It Is | How It Works |
|---|---|---|---|
| Tools | Tools | General-purpose utilities | Built-in, always available |
| Developer | Developer | 33 specialized engineering tools | Built-in, always available |
| Macros | Macros | Recorded keystroke sequences | Record actions, replay them — no coding |
| Plugins | Plugins | Lightweight text-processing scripts | C#, PowerShell, Batch, or Python scripts |
| Extensions | Extensions | Interactive GUI panels | C# scripts that create WinForms UI |
| Modules | Modules | Compiled DLL plugins | .NET class library via Scribbles SDK |
How They Differ
- Tools and Developer are built-in features that ship with Scribbles. Tools are everyday utilities (converters, browser, Kanban board); Developer tools target software engineers (regex, HTTP testing, database queries, network scanning).
- Macros record and replay your keystrokes and mouse actions — no coding required.
- Plugins are small scripts that take selected text as input, transform it, and return the result. They run headless with no UI.
- Extensions are C# scripts that create their own visual interface (forms, buttons, sliders). They can open as a Tab or a floating Dialog.
- Modules are compiled .NET DLLs that implement
IScribblesPluginfrom the Scribbles SDK. They offer the most power and can access the full .NET ecosystem.
Choosing the Right Approach
| Need | Use |
|---|---|
| Automate repetitive typing | Macros |
| Transform selected text with a script | Plugins |
| Build a small interactive tool | Extensions |
| Ship a full-featured compiled add-on | Modules |
Tools Menu
The Tools menu provides general-purpose utilities for everyday tasks. For developer-focused tools, see the Developer Menu.
Utilities
| Tool | Shortcut | Description |
|---|---|---|
| Unit Converter | Ctrl+Shift+U | Convert between units of length, weight, volume, area, speed, time, data, pressure, energy, angle, and temperature |
| CSV Viewer | Ctrl+Shift+C | View CSV files in table format with sorting, column filtering, and auto-detect delimiters |
| ASCII Art Generator | Ctrl+Shift+A | Generate ASCII art text from input with various font styles |
| Color Picker | Ctrl+Shift+L | Visual color picker with RGB, HSL, and Hex formats |
Internet & Media
| Tool | Shortcut | Description |
|---|---|---|
| Internet Speed Test | Ctrl+Alt+I | Measure download speed, upload speed, and ping/latency |
| URL Shortener | Ctrl+Alt+U | Shorten URLs using popular URL shortening services |
| Built-in Browser | Ctrl+Alt+B | Embedded web browser for quick reference without leaving the editor |
| QR Code Generator | Ctrl+Alt+Q | Generate QR codes from text or URLs; copy to clipboard or save as image |
Productivity
| Tool | Shortcut | Description |
|---|---|---|
| Kanban Board | Ctrl+Alt+K | Task management board with drag-and-drop cards across To Do, In Progress, and Done columns |
Sysinternals Suite
Tools → Sysinternals — Download and launch Microsoft Sysinternals tools directly. 70+ utilities with auto-updates from official Microsoft servers.
Windows Tools
Tools → Windows Tools — Launch 50+ Windows system tools organized by category:
- System Information — System Info, Windows Version, System Properties, DirectX Diagnostics
- Device & Hardware — Device Manager, Disk Management, Display Settings, Sound Settings
- Network — Network Connections, Firewall, Network Statistics, MAC Addresses
- System Management — Services, System Configuration, Control Panel, Programs and Features
- Disk & Storage — Disk Cleanup, Disk Usage, ISO Burner
- Utilities — Character Map, Steps Recorder, Folder Tree
External Tools
Tools → External Tools — Configure and launch custom external tools with arguments and working directories.
Developer Menu
The Developer menu provides 33 specialized tools for software development. For general-purpose utilities, see the Tools Menu.
Web & API Tools
| Tool | Shortcut | Description |
|---|---|---|
| HTTP Request Tester | Ctrl+Alt+H | REST API tester with GET, POST, PUT, DELETE, PATCH, custom headers and body |
| JWT Decoder | Ctrl+Alt+J | Decode and inspect JSON Web Tokens — headers, payload, claims, expiration |
| OpenAPI/Swagger Viewer | Ctrl+Alt+O | Parse and browse OpenAPI 2.0/3.0 specifications |
| Protobuf/gRPC Viewer | Ctrl+Alt+P | Visualize Protocol Buffer definitions and gRPC services |
| WebSocket Tester | Ctrl+Alt+W | WebSocket client for testing real-time connections |
Data & Query Tools
| Tool | Shortcut | Description |
|---|---|---|
| Database Query | Ctrl+Alt+Shift+B | SQL database query tool with connection management |
| Kusto Query | Ctrl+Shift+Q | Kusto/KQL query tool |
| JSON Path Tester | Ctrl+Shift+J | Test JSONPath expressions against JSON data |
| XPath Tester | Ctrl+Shift+X | Test XPath expressions against XML data |
| YAML/JSON Converter | Ctrl+Alt+Y | Convert between YAML and JSON formats |
Encoding & Conversion Tools
| Tool | Shortcut | Description |
|---|---|---|
| Regex Editor | Ctrl+Shift+R | Interactive regex testing with live matching |
| Unix Timestamp Converter | Ctrl+Shift+Y | Convert Unix timestamps to/from human-readable dates |
| URL Encoder/Decoder | Ctrl+Alt+Shift+U | URL encode and decode strings |
| HTML Entity Encoder | Ctrl+Alt+Shift+H | HTML entity encode and decode |
| Number Base Converter | Ctrl+Alt+Shift+N | Convert between Binary, Octal, Decimal, Hexadecimal |
| String Escape/Unescape | Ctrl+Alt+Shift+E | Escape strings for JSON, C#, HTML, and more |
Network Tools
| Tool | Shortcut | Description |
|---|---|---|
| DNS Lookup | Ctrl+Alt+A | DNS query tool for domain resolution |
| WHOIS Lookup | Ctrl+Alt+Shift+W | Domain WHOIS information lookup |
| Port Scanner | Ctrl+Alt+Shift+P | Scan network ports on a target host |
| IP/Subnet Calculator | Ctrl+Shift+I | IP subnet calculator with CIDR notation |
| SSH Key Generator | Ctrl+Alt+Shift+S | Generate RSA/ED25519 SSH key pairs |
File & System Tools
| Tool | Shortcut | Description |
|---|---|---|
| Hex Editor | Ctrl+Alt+X | Binary file viewer with hex and ASCII display |
| File Compare | Ctrl+Shift+D | Side-by-side file comparison with diff highlighting |
| Diff Viewer | Ctrl+Alt+D | Visual diff viewer |
| File Explorer | Ctrl+Alt+E | Built-in file explorer |
| Certificate Viewer | Ctrl+Alt+C | View and inspect X.509 certificates |
| Log Viewer | Ctrl+Alt+L | Structured log file viewer |
| Cron Expression Parser | Ctrl+Alt+N | Parse cron expressions with human-readable descriptions |
| Environment Variables | Ctrl+Alt+Z | View and inspect environment variables |
| Docker Compose Validator | Ctrl+Alt+Shift+O | Validate Docker Compose YAML files |
Development Tools
| Tool | Shortcut | Description |
|---|---|---|
| Hosted Terminal | Ctrl+Alt+T | Full embedded terminal |
| DocFX Builder | Ctrl+Alt+Shift+G | DocFX documentation builder |
| Task Runner | Ctrl+Alt+R | Run tasks, scripts, and build commands |
Plugins
Plugins are lightweight scripts that process selected text. Select text, run a plugin, and the result replaces your selection — no UI, no forms, just text in → text out. Unlike Extensions (which have GUI) or Modules (which are compiled DLLs), Plugins are simple script files you can edit in any text editor.
Built-in Plugins
| Plugin | Description |
|---|---|
| Remove Duplicate Lines | Removes duplicate lines from selection |
| Reverse Lines | Reverses the order of selected lines |
| Add Line Numbers | Adds line numbers to selected lines |
| Wrap in Quotes | Wraps selected text in double quotes |
| JSON Escape String | Escapes selected text for JSON |
Plugin Types
Scribbles supports plugins written in four languages:
| Language | File Extension | Executed Via |
|---|---|---|
| C# | .csx | Roslyn scripting engine |
| PowerShell | .ps1 | PowerShell runtime |
| Batch | .bat / .cmd | cmd.exe |
| Python | .py | Python interpreter |
Plugin Manager
Open Plugins → Manage Plugins to create, edit, and delete custom plugins. Plugins are stored in %AppData%\Scribbles\Plugins\.
Creating a Plugin
- Open Plugins → Manage Plugins
- Click New Plugin, choose a language and name
- Write your script — it receives selected text via stdin and outputs the result via stdout
- Save — the plugin appears in the Plugins menu immediately
Extensions
Extensions are C# scripts that create their own visual GUI panels. Unlike Plugins (text in → text out), Extensions build interactive forms with buttons, sliders, and input fields. Unlike Modules (compiled DLLs), Extensions are editable .csx script files — no compilation step required.
Built-in Extensions
| Extension | Description |
|---|---|
| Interactive Calculator | Visual calculator with number pad |
| Color Mixer | RGB sliders with live color preview |
| Stopwatch | Start/stop/lap stopwatch timer |
| Todo List | Quick todo list manager |
| Dice Roller | Configurable dice roller |
| Pomodoro Timer | Work/break cycle Pomodoro timer |
| Countdown Timer | Countdown timer with progress bar |
| Drawing Pad | Simple drawing canvas |
| Password Generator | Strong password generator |
| Flashcard Quiz | Flashcard-based quiz tool |
| Tic-Tac-Toe | Classic Tic-Tac-Toe game |
| Quick Notepad | Simple notepad |
| Unit Converter | Quick unit conversion tool |
| Morse Code Translator | Text to/from Morse code |
| Random Name Generator | Generate random names |
Open Modes
Each extension can open in one of two modes:
- Tab — opens within the main editor tab area, like a document
- Dialog — opens as a floating window that can be moved independently
Extension Manager
Open Extensions → Manage Extensions (Ctrl+Shift+E) to view, enable/disable, and configure extensions. Extensions are stored in %AppData%\Scribbles\Extensions\.
Creating an Extension
- Open Extensions → Manage Extensions
- Click New Extension
- Write C# code that builds a WinForms
Control(panels, buttons, labels, etc.) - The extension appears in the Extensions menu and can be opened as a Tab or Dialog
Modules
Modules are the most powerful extensibility mechanism — compiled .NET DLLs that implement the Scribbles SDK. Unlike Plugins (scripts, text-only) and Extensions (scripts with UI), Modules are full .NET class libraries that can reference NuGet packages, use any .NET API, and ship as distributable DLLs.
Built-in Modules
| Module | Description |
|---|---|
| Color Palette | Browse .NET named colors with hex values — click to copy |
| Regex Tester | Test regular expressions with live match highlighting |
| JSON Formatter | Pretty-print or minify JSON data |
| Hash Generator | Calculate MD5, SHA1, SHA256, SHA512 hashes |
| Lorem Ipsum Generator | Generate placeholder text (paragraphs, sentences, words) |
| Encoding Converter | Encode/decode Base64, URL encoding, HTML entities, hex |
External Modules
Place compiled DLL modules in the Modules/ folder alongside a JSON manifest file. Scribbles discovers and loads them automatically at startup.
Scribbles SDK
Modules implement the IScribblesPlugin interface from the Scribbles.SDK class library:
Name— display name of the moduleDescription— short descriptionVersion— module versionInitialize(IScribblesHost host)— initialization with host servicesCreateUI()— returns a WinForms Control for the module’s UIDispose()— cleanup
Module Manager
Open Modules → Manage Modules to view loaded modules, enable/disable them, and open the modules folder.
Creating a Module
- Create a new .NET class library project and reference
Scribbles.SDK - Implement the
IScribblesPlugininterface - Build the DLL and place it in the
Modules/folder with a JSON manifest - Restart Scribbles — the module appears in the Modules menu
Example: Word Counter Module
1. Create a .NET class library project:
dotnet new classlib -n MyWordCounter -f net8.0-windows
cd MyWordCounter
dotnet add reference ../Scribbles.SDK/Scribbles.SDK.csproj
2. Implement IScribblesPlugin in WordCounterPlugin.cs:
using Scribbles.SDK;
namespace MyWordCounter;
public class WordCounterPlugin : IScribblesPlugin
{
public string Id => "mod-word-counter";
public string Name => "Word Counter";
public string Description => "Counts words in pasted text";
public string Version => "1.0.0";
public string Author => "Your Name";
public Control CreateUI(IScribblesHost host)
{
var panel = new Panel { Dock = DockStyle.Fill, Padding = new Padding(12) };
var input = new TextBox
{
Multiline = true, Dock = DockStyle.Fill,
ScrollBars = ScrollBars.Vertical,
PlaceholderText = "Paste or type text here..."
};
var label = new Label
{
Dock = DockStyle.Bottom, Height = 30,
TextAlign = ContentAlignment.MiddleLeft,
Text = "Words: 0 | Characters: 0 | Lines: 0"
};
input.TextChanged += (s, e) =>
{
var text = input.Text;
int words = string.IsNullOrWhiteSpace(text) ? 0
: text.Split((char[]?)null,
StringSplitOptions.RemoveEmptyEntries).Length;
int chars = text.Length;
int lines = text.Split('\n').Length;
label.Text = $"Words: {words} | Characters: {chars} | Lines: {lines}";
};
panel.Controls.Add(input);
panel.Controls.Add(label);
return panel;
}
public void OnActivated() { }
public void OnDeactivated() { }
public void Dispose() { }
}
3. Create module.json next to the built DLL:
{
"id": "mod-word-counter",
"name": "Word Counter",
"description": "Counts words in pasted text",
"version": "1.0.0",
"author": "Your Name",
"entryDll": "MyWordCounter.dll",
"pluginClass": "MyWordCounter.WordCounterPlugin",
"enabled": true
}
4. Build and deploy:
dotnet build -c Release
Copy MyWordCounter.dll and module.json into the Modules/ folder, then restart Scribbles. Your module will appear under Modules → Word Counter.
Voice Features
Read Aloud (Text-to-Speech)
View → Read Aloud — Have your documents read to you with selectable voices, adjustable speed (0.2x–2x), play/pause/stop controls, and a draggable floating panel.
Dictate (Speech-to-Text)
View → Dictate — Convert speech to text with real-time transcription using Windows speech recognition. Preview text before inserting.
Preview Pane
For Markdown and HTML files, view rendered content alongside source.
- Toggle: Ctrl+Shift+V or View → Preview Pane
- Live Updates: Preview refreshes as you type (500ms debounce)
- Theme Aware: Matches your current theme
- Markdown: Headers, bold, italic, links, images, code blocks, blockquotes, lists, tables, and horizontal rules
Folder Explorer
Windows Explorer-style navigation panel. Toggle via toolbar folder icon or View → Folder View.
- Quick Access: Pin frequently used folders
- This PC: Browse all drives
- Tree Navigation: Expand/collapse folders
- Context Menu: Right-click for file operations
Integrated Terminal
Built-in PowerShell terminal. Toggle with Ctrl+` or View → Terminal.
- Full PowerShell integration
- Command history
- Resizable panel
- Theme-matched colors
- Output scrollback
Data File Viewers
Parquet Viewer
Open Apache Parquet files with data displayed in an HTML table. Shows schema information, limited to 1000 rows for performance.
Bond File Reader
View Microsoft Bond files: schema files (.bond) displayed directly, hex dump for binary Bond files with Compact Binary protocol detection.
Clipboard Viewer
Edit → Clipboard Viewer or Ctrl+Shift+V — Access last 20 clipboard entries with preview. Click to paste.
Hex Editor
Tools → Hex Editor — View binary files with side-by-side hex and ASCII display. See Hex Editor section for details.
OpenAPI / Swagger Viewer
Tools → OpenAPI / Swagger Viewer — Parse and browse API specifications. See OpenAPI Viewer section for details.
Protobuf / gRPC Viewer
Tools → Protobuf / gRPC Viewer — Visualize .proto definitions. See Protobuf Viewer section for details.
Keyboard Shortcuts
File Operations
| Shortcut | Action |
|---|---|
| Ctrl+N | New file |
| Ctrl+O | Open file |
| Ctrl+S | Save |
| Ctrl+Shift+S | Save As |
| Ctrl+Alt+S | Save All |
| Ctrl+P | |
| Ctrl+W | Close tab |
Editing
| Shortcut | Action |
|---|---|
| Ctrl+Z | Undo |
| Ctrl+Y | Redo |
| Ctrl+X | Cut |
| Ctrl+C | Copy |
| Ctrl+V | Paste |
| Ctrl+Alt+V | Clipboard History |
| Ctrl+A | Select All |
| Ctrl+F | Find |
| Ctrl+H | Find and Replace |
| Ctrl+Shift+H | Regex Replace |
| Ctrl+Shift+F | Find in Files |
| Ctrl+G | Go to Line |
| Ctrl+Alt+F | Format Document |
| Ctrl+Shift+K | Delete Current Line |
Macros
| Shortcut | Action |
|---|---|
| Ctrl+Alt+M | Start Recording |
| Ctrl+M | Play Macro |
Bookmarks
| Shortcut | Action |
|---|---|
| Ctrl+B | Toggle Bookmark |
| F2 | Next Bookmark |
| Shift+F2 | Previous Bookmark |
View
| Shortcut | Action |
|---|---|
| Ctrl++ | Zoom In |
| Ctrl+- | Zoom Out |
| Ctrl+0 | Reset Zoom |
| Ctrl+Shift+V | Toggle Preview |
| Ctrl+` | Toggle Terminal |
| Ctrl+Shift+E | Toggle Folder Viewer |
| Ctrl+Shift+M | Toggle Minimap |
| Ctrl+Shift+N | Sticky Notes |
| F11 | Zen Mode |
| Ctrl+Tab | Next Tab |
| Ctrl+Shift+Tab | Previous Tab |
Navigation
| Shortcut | Action |
|---|---|
| Ctrl+Shift+O | Go to Symbol |
| Ctrl+Shift+P | Command Palette |
| Ctrl+E | Quick Open |
| F1 | Help |
Tools
| Shortcut | Action |
|---|---|
| Ctrl+Shift+U | Unit Converter |
| Ctrl+Shift+R | Regex Editor |
| Ctrl+Shift+C | CSV Viewer |
| Ctrl+Shift+D | File Compare |
| Ctrl+Shift+A | ASCII Art Generator |
| Ctrl+Shift+L | Color Picker |
| Ctrl+Alt+K | Kanban Board |
| Ctrl+Alt+B | Built-in Browser |
| Ctrl+Alt+I | Internet Speed Test |
| Ctrl+Alt+U | URL Shortener |
| Ctrl+Alt+Q | QR Code Generator |
Developer Tools
| Shortcut | Action |
|---|---|
| Ctrl+Alt+H | HTTP Request Tester |
| Ctrl+Alt+J | JWT Decoder |
| Ctrl+Alt+N | Cron Expression Parser |
| Ctrl+Alt+X | Hex Editor |
| Ctrl+Alt+O | OpenAPI/Swagger Viewer |
| Ctrl+Alt+P | Protobuf/gRPC Viewer |
| Ctrl+Alt+T | Hosted Terminal |
| Ctrl+Alt+E | File Explorer |
| Ctrl+Alt+R | Task Runner |
| Ctrl+Alt+D | Diff Viewer |
| Ctrl+Alt+C | Certificate Viewer |
| Ctrl+Alt+L | Log Viewer |
| Ctrl+Alt+A | DNS Lookup |
| Ctrl+Alt+W | WebSocket Tester |
| Ctrl+Alt+Z | Environment Variables |
| Ctrl+Alt+Y | YAML/JSON Converter |
| Ctrl+Shift+Q | Kusto Query |
| Ctrl+Shift+J | JSON Path Tester |
| Ctrl+Shift+X | XPath Tester |
| Ctrl+Shift+I | IP/Subnet Calculator |
| Ctrl+Shift+Y | Unix Timestamp Converter |
| Ctrl+Alt+Shift+B | Database Query |
| Ctrl+Alt+Shift+G | DocFX Builder |
| Ctrl+Alt+Shift+P | Port Scanner |
| Ctrl+Alt+Shift+S | SSH Key Generator |
Screen Saver
Scribbles includes built-in full-screen screen savers with four visual effects. Access via Settings → Screen Saver.
| Mode | Description |
|---|---|
| Matrix | Cascading green characters inspired by The Matrix with head/trail rendering |
| Ash | Rising orange-red embers with glow effects and warm gradient at bottom |
| Snow | Falling snowflakes with wind drift, soft glow, and ground accumulation |
| Rain | Fast rain streaks with splash effects, occasional lightning, and wet ground reflection |
Features
- Full-screen rendering with double-buffered graphics for smooth animation
- Prevents Windows idle/sleep using
SetThreadExecutionStateAPI - Elapsed timer displayed at the bottom-right corner
- Exit anytime by pressing Escape, clicking the mouse, or moving the mouse
Settings
Access via Settings menu:
| Setting | Description |
|---|---|
| Preferences (Ctrl+,) | Open settings dialog |
| Theme | Choose from 18+ built-in themes, System theme, or create a Custom theme |
| Auto-save | Toggle automatic saving (every 30 seconds) |
| Editor Font | Choose font family and size |
| UI Font Size | Adjust menu text size (8–14pt) |
| Transparency | Set window opacity (70%–100%) |
| UI Language | Choose from 12 supported languages |
| Screen Saver | Choose from 4 animated screen savers |
| Default Editor | Register file associations |
Auto-Save & Backup
Auto-Save
- Interval: Every 30 seconds
- Location:
Documents/Scribblesfolder - Toggle: Settings → Auto-save
Auto Backup
- Configurable interval
- Stored in
%AppData%\Scribbles\backups - Automatic cleanup of old backups
System Requirements
- OS: Windows 10 or later
- Runtime: .NET 8.0
- RAM: 4GB minimum recommended
- Disk: 100MB for application
Localization
Scribbles supports 12 languages. Language is auto-detected from Windows settings.
- English (default)
- Arabic (العربية)
- Chinese (中文)
- French (Français)
- German (Deutsch)
- Hindi (हिन्दी)
- Japanese (日本語)
- Korean (한국어)
- Portuguese (Português)
- Russian (Русский)
- Spanish (Español)
- Urdu (اردو)
License
MIT License — See LICENSE file for details.