# muxmait
A command-line tool that works with your tmux scrollback. It reads your tmux pane content and provides contextually aware command suggestions using various AI models through litellm.
## Features
- Reads your tmux pane content and sends it to your choice of AI model
- Automatically parses commands from AI responses and puts them into your prompt
- Optional Stack Exchange integration to provide additional context from relevant stack exchange google search.
- Terrible and poorly thought out features like auto-execution and recursive mode for automated system destruction.
## Installation
0. Make sure you have tmux.
1. Install required Python packages:
```bash
pip install muxmait
```
2. Set up your API key for your chosen provider as an environment variable:
The tool looks for API keys in environment variables based on the chosen model:
```bash
# Example API key setup
export OPENROUTER_API_KEY="your-key-here"
export ANTHROPIC_API_KEY="your-key-here"
export GEMINI_API_KEY="your-key-here"
export TOGETHER_API_KEY="your-key-here"
export XAI_API_KEY="your-key-here"
```
- And any others supported by litellm
## Usage
Basic usage:
```bash
mait [options] [input]
```
### Options
- `-A`, `--auto`: Automatically execute the suggested command (use with caution)
- `-r`, `--recursive`: Add `;mait` to the end of suggested commands for continuous operation
- `-m MODEL`, `--model MODEL`: Choose AI model (Can select by shorthand for some models eg.'cs' for claude-3-5-sonnet-latest or 'gf' for gemini/gemini-1.5-flash-latest )
- `-q`, `--quiet`: Only output the command without explanation
- `-v`, `--verbose`: Enable verbose mode with detailed output
- `--debug`: Run in debug mode (skips API request)
- `-t TARGET`, `--target TARGET`: Specify target TMux pane (default: current pane)
- `--log FILE`: Log all output to specified file
- `--log-commands FILE`: Log only commands to specified file
- `--file FILE`: Read additional input from specified file
- `-S LINES`, `--scrollback LINES`: Number of scrollback lines to include from tmux (default: 0)
- `--system-prompt FILE`: Use custom system prompt from file
- `--delay SECONDS`: Set delay before auto-execution (default: 2.0 seconds)
- `-c`, `--add-stackexchange`: Add relevant context from Stack Exchange
- `-M MODEL`, `--model-stackexchange MODEL`: Specify model for Stack Exchange search query generation (default: gemini/gemini-1.5-flash-latest)
### Examples
1. Basic command suggestion based on visible terminal content:
```bash
mait
```
2. Get a suggestion for a specific task:
```bash
mait how to find large files
```
3. Use a specific model by name or shorthand:
```bash
mait -m cs how do I automate these commands
# or
mait -m anthropic/claude-3-5-sonnet-latest how do I automate these commands
```
4. Include Stack Exchange context with custom model:
```bash
mait -c -M gemini/gemini-1.5-pro-latest how to compress images in bulk
```
5. Auto-execute commands with auto and recursive mode(or don't):
```bash
mait -A -r process these files # DO NOT DO THIS
```
6. Include more context from terminal history:
```bash
mait -S 100 why wont this compile
```
## Security Considerations
- **Review commands before execution**: Always review suggested commands before running them
- **Auto-execution risks**: The `-A` flag will execute commands without confirmation
- **Data privacy**: Be mindful that terminal content is sent to AI providers
- **API credentials**: Secure your API keys and avoid exposing them in scripts or logs
- **Recursive mode**: Use `-r` flag with extreme caution as it can create command loops
## Troubleshooting
- Enable verbose mode (-v) for detailed operation information
- Check API key environment variables if model requests fail
## Contributing
Contributions are welcome! Please feel free to submit issues and enhancement requests.
## License
GPL 3
Raw data
{
"_id": null,
"home_page": null,
"name": "muxmait",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "ai, shell, tmux, assistant, terminal, muxmait, mait",
"author": null,
"author_email": "Elijah Knaperek <elijahknaperek@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/37/9e/5470d2155104835d9bbf692890a54930964bd1a1d9246809a1c5c13d390b/muxmait-0.1.3.tar.gz",
"platform": null,
"description": "# muxmait\n\nA command-line tool that works with your tmux scrollback. It reads your tmux pane content and provides contextually aware command suggestions using various AI models through litellm.\n\n## Features\n\n- Reads your tmux pane content and sends it to your choice of AI model\n- Automatically parses commands from AI responses and puts them into your prompt\n- Optional Stack Exchange integration to provide additional context from relevant stack exchange google search.\n- Terrible and poorly thought out features like auto-execution and recursive mode for automated system destruction.\n\n## Installation\n\n0. Make sure you have tmux.\n\n1. Install required Python packages:\n ```bash\n pip install muxmait\n ```\n2. Set up your API key for your chosen provider as an environment variable:\n The tool looks for API keys in environment variables based on the chosen model:\n ```bash\n # Example API key setup\n export OPENROUTER_API_KEY=\"your-key-here\"\n export ANTHROPIC_API_KEY=\"your-key-here\"\n export GEMINI_API_KEY=\"your-key-here\"\n export TOGETHER_API_KEY=\"your-key-here\"\n export XAI_API_KEY=\"your-key-here\"\n ```\n - And any others supported by litellm\n\n## Usage\n\nBasic usage:\n```bash\nmait [options] [input]\n```\n\n### Options\n\n- `-A`, `--auto`: Automatically execute the suggested command (use with caution)\n- `-r`, `--recursive`: Add `;mait` to the end of suggested commands for continuous operation\n- `-m MODEL`, `--model MODEL`: Choose AI model (Can select by shorthand for some models eg.'cs' for claude-3-5-sonnet-latest or 'gf' for gemini/gemini-1.5-flash-latest )\n- `-q`, `--quiet`: Only output the command without explanation\n- `-v`, `--verbose`: Enable verbose mode with detailed output\n- `--debug`: Run in debug mode (skips API request)\n- `-t TARGET`, `--target TARGET`: Specify target TMux pane (default: current pane)\n- `--log FILE`: Log all output to specified file\n- `--log-commands FILE`: Log only commands to specified file\n- `--file FILE`: Read additional input from specified file\n- `-S LINES`, `--scrollback LINES`: Number of scrollback lines to include from tmux (default: 0)\n- `--system-prompt FILE`: Use custom system prompt from file\n- `--delay SECONDS`: Set delay before auto-execution (default: 2.0 seconds)\n- `-c`, `--add-stackexchange`: Add relevant context from Stack Exchange\n- `-M MODEL`, `--model-stackexchange MODEL`: Specify model for Stack Exchange search query generation (default: gemini/gemini-1.5-flash-latest)\n\n### Examples\n\n1. Basic command suggestion based on visible terminal content:\n ```bash\n mait\n ```\n\n2. Get a suggestion for a specific task:\n ```bash\n mait how to find large files\n ```\n\n3. Use a specific model by name or shorthand:\n ```bash\n mait -m cs how do I automate these commands\n # or\n mait -m anthropic/claude-3-5-sonnet-latest how do I automate these commands\n ```\n\n4. Include Stack Exchange context with custom model:\n ```bash\n mait -c -M gemini/gemini-1.5-pro-latest how to compress images in bulk\n ```\n\n5. Auto-execute commands with auto and recursive mode(or don't):\n ```bash\n mait -A -r process these files # DO NOT DO THIS\n ```\n\n6. Include more context from terminal history:\n ```bash\n mait -S 100 why wont this compile\n ```\n\n## Security Considerations\n\n- **Review commands before execution**: Always review suggested commands before running them\n- **Auto-execution risks**: The `-A` flag will execute commands without confirmation\n- **Data privacy**: Be mindful that terminal content is sent to AI providers\n- **API credentials**: Secure your API keys and avoid exposing them in scripts or logs\n- **Recursive mode**: Use `-r` flag with extreme caution as it can create command loops\n\n## Troubleshooting\n\n- Enable verbose mode (-v) for detailed operation information\n- Check API key environment variables if model requests fail\n\n## Contributing\n\nContributions are welcome! Please feel free to submit issues and enhancement requests.\n\n## License\n\nGPL 3\n",
"bugtrack_url": null,
"license": "GPLv3",
"summary": "AI-powered shell assistant that uses tmux",
"version": "0.1.3",
"project_urls": {
"Homepage": "https://github.com/elijahknaperek/muxmait"
},
"split_keywords": [
"ai",
" shell",
" tmux",
" assistant",
" terminal",
" muxmait",
" mait"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8b478c0d22977c6fc314bfeacf02bdd6a882b3799e5ea2a0319e97974ccfd52b",
"md5": "1dc18de812280cdd282ee9a711a3f93d",
"sha256": "7bada9a07ce9e1b86c47748571d0a4e9c2fba5a874e9ebf2789ac5a99ddcf505"
},
"downloads": -1,
"filename": "muxmait-0.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1dc18de812280cdd282ee9a711a3f93d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 20432,
"upload_time": "2024-11-05T21:54:41",
"upload_time_iso_8601": "2024-11-05T21:54:41.164170Z",
"url": "https://files.pythonhosted.org/packages/8b/47/8c0d22977c6fc314bfeacf02bdd6a882b3799e5ea2a0319e97974ccfd52b/muxmait-0.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "379e5470d2155104835d9bbf692890a54930964bd1a1d9246809a1c5c13d390b",
"md5": "98ac53e3ca694d39ffc81b74206ed60b",
"sha256": "a47fe3e13d24553cb6b7e6a0cb93db1f82bfae2f5d4e027a27fc0a9c7bae1a6d"
},
"downloads": -1,
"filename": "muxmait-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "98ac53e3ca694d39ffc81b74206ed60b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 19901,
"upload_time": "2024-11-05T21:54:42",
"upload_time_iso_8601": "2024-11-05T21:54:42.705736Z",
"url": "https://files.pythonhosted.org/packages/37/9e/5470d2155104835d9bbf692890a54930964bd1a1d9246809a1c5c13d390b/muxmait-0.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-05 21:54:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "elijahknaperek",
"github_project": "muxmait",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "muxmait"
}