Skip to main content

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.

Project description

IntelliText 🚀

PyPI version Python Versions License: MIT

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.

✨ Features

📝 Word Macros

  • Quick text expansion using the ! prefix
  • Support for multiple text variants with random selection
  • Perfect for email templates, code snippets, and common phrases

⚡ Action Macros

  • Execute commands and scripts using the # prefix
  • Built-in clipboard integration
  • Run system commands directly from your keyboard

🔌 Extension System

  • Create custom extensions to extend functionality
  • Simple plugin architecture
  • Support for various output types

🎲 Shuffle System

  • Randomly select from multiple text variants
  • Perfect for adding variety to automated responses
  • Configurable per macro

🚀 Quick Start

Installation

pip install intellitext

Example

Example GIF

💻 Platform Compatibility

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.


Basic Usage

  1. 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": []
        }
    }
}
  1. Run from Terminal:
intellitext.py
  1. Run IntelliText in Python:
from intellitext import IntelliText

intellitext = IntelliText()
intellitext.run()

📖 Usage Guide

Word Macros

  • 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

Action Macros

  • #cb - Paste clipboard content
  • #r[program] - Run a program #rvsc (Run vscode)
  • #ite - Exit IntelliText
  • Custom actions can be added in the config

🔎 Extensions

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.


⚙️ Configuration

Configuration File Structure

{
    "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": []
        }
    }
}

🤝 Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support

  • 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!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

intellitext-0.2.2.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

intellitext-0.2.2-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file intellitext-0.2.2.tar.gz.

File metadata

  • Download URL: intellitext-0.2.2.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for intellitext-0.2.2.tar.gz
Algorithm Hash digest
SHA256 d30bd8bb0ad66ed5fe5dd3cc28375ee28d9af57d32bcbe0fb1a10406bd198d4c
MD5 4d03c8452c2fa243cbf14870bc3e9dbd
BLAKE2b-256 b2f675b0e2a9d91b9ddb552a339065ebe66859d8bc3d87afaf69219134d25e66

See more details on using hashes here.

File details

Details for the file intellitext-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: intellitext-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for intellitext-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 54f435f97cbc5f1a52291d1f94ad6729d5a05da8800e4e8553f9a0b4abb196bc
MD5 435dfc06e1cd838d85e11eb91f0cbcf3
BLAKE2b-256 da4dab7cac08d632a88994c9e4998caf9be0736e8036d55664f0d5abfa48c859

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page