IntelliText is a powerful, customizable keyboard macro and text expansion tool that helps you automate repetitive typing tasks and execute custom actions. It's designed to boost your productivity by allowing you to create shortcuts for frequently used text, commands, and actions.
- Quick text expansion using the
!
prefix - Support for multiple text variants with random selection
- Perfect for email templates, code snippets, and common phrases
- Execute commands and scripts using the
#
prefix - Built-in clipboard integration
- Run system commands directly from your keyboard
- Create custom extensions to extend functionality
- Simple plugin architecture
- Support for various output types
- Randomly select from multiple text variants
- Perfect for adding variety to automated responses
- Configurable per macro
pip install intellitext
Platform | Support |
---|---|
Windows | ✅ |
macOS | ❌ |
Linux | ❌ |
⚠️ Currently IntelliText only works on windows, macOS and Linux are not yet supported, although they will be added in the near future
IntelliText has been tested on Windows 11 and Python 3.12 and 3.13.
- IntelliText will create a it_macros.json file in
~/.intellitext/
you can edit it to your liking:
{
"macros": {
"word": {
"!hello": "Hello World!",
"!greet": "Hi there,How are you?,Hello friend!",
"!sig": "Best regards,\nYour Name"
},
"action": {
"#cb": "",
"#rnp": "notepad.exe"
}
},
"macro_settings": {
"shuffle": {
"enabled": true,
"shuffle_macros": ["!greet"]
},
"extension_setting": {
"enabled": true,
"extensions": []
}
}
}
- Run from Terminal:
intellitext.py
- Run IntelliText in Python:
from intellitext import IntelliText
intellitext = IntelliText()
intellitext.run()
- Type
!
followed by your macro name - Example:
!hello
expands to "Hello, World!" - For multiple variants, separate with commas in the config
- Enable shuffle in settings to randomize between variants
#cb
- Paste clipboard content#r[program]
- Run a program#rvsc
(Run vscode)#ite
- Exit IntelliText- Custom actions can be added in the config
An Extension will only run when the macro starts with @ and ends with $
{
"extension_setting": {
"enabled": true,
"extensions": [
{
"@date": "date_formatter.py",
"type": "print",
"cmd": "python",
"args": ["--format", "yyyy-MM-dd"]
}
]
}
}
For example:
@date$
This will run the date extension with the predefined arguments in the it_macros.json file.
The argument priority is with the inline args passed to the extension when typing the macro.
This means that this macro: @date --format yy-mm-dd$
will run with the arguments passed to the macro, and not the ones defined in the it_macros.json
In this case, @date
is what triggers the extension.
The value of @date
is the script or program that will run.
IntelliText will try to look for the script/program name in the ~/.intellitext/extensions
folder,
if it's not found there, it will try to use at as in absolute path.
The extension will not run if the file is not found.
{
"macros": {
"word": {
"!macro_name": "replacement_text"
},
"action": {
"#action_name": "command_or_program"
}
},
"macro_settings": {
"shuffle": {
"enabled": boolean,
"shuffle_macros": ["macro_names"]
},
"extension_setting": {
"enabled": boolean,
"extensions": []
}
}
}
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with pynput
- Create an issue for bug reports or feature requests
- Check existing issues before creating new ones
- Email support: cloner.bl12@gmail.com
⭐ Star us on GitHub — it helps!