pomera-ai-commander 0.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +105 -680
- package/bin/pomera-ai-commander.js +62 -62
- package/core/__init__.py +65 -65
- package/core/app_context.py +482 -482
- package/core/async_text_processor.py +421 -421
- package/core/backup_manager.py +655 -655
- package/core/backup_recovery_manager.py +1033 -1033
- package/core/content_hash_cache.py +508 -508
- package/core/context_menu.py +313 -313
- package/core/data_validator.py +1066 -1066
- package/core/database_connection_manager.py +744 -744
- package/core/database_curl_settings_manager.py +608 -608
- package/core/database_promera_ai_settings_manager.py +446 -446
- package/core/database_schema.py +411 -411
- package/core/database_schema_manager.py +395 -395
- package/core/database_settings_manager.py +1507 -1507
- package/core/database_settings_manager_interface.py +456 -456
- package/core/dialog_manager.py +734 -734
- package/core/efficient_line_numbers.py +510 -510
- package/core/error_handler.py +746 -746
- package/core/error_service.py +431 -431
- package/core/event_consolidator.py +511 -511
- package/core/mcp/__init__.py +43 -43
- package/core/mcp/protocol.py +288 -288
- package/core/mcp/schema.py +251 -251
- package/core/mcp/server_stdio.py +299 -299
- package/core/mcp/tool_registry.py +2372 -2345
- package/core/memory_efficient_text_widget.py +711 -711
- package/core/migration_manager.py +914 -914
- package/core/migration_test_suite.py +1085 -1085
- package/core/migration_validator.py +1143 -1143
- package/core/optimized_find_replace.py +714 -714
- package/core/optimized_pattern_engine.py +424 -424
- package/core/optimized_search_highlighter.py +552 -552
- package/core/performance_monitor.py +674 -674
- package/core/persistence_manager.py +712 -712
- package/core/progressive_stats_calculator.py +632 -632
- package/core/regex_pattern_cache.py +529 -529
- package/core/regex_pattern_library.py +350 -350
- package/core/search_operation_manager.py +434 -434
- package/core/settings_defaults_registry.py +1087 -1087
- package/core/settings_integrity_validator.py +1111 -1111
- package/core/settings_serializer.py +557 -557
- package/core/settings_validator.py +1823 -1823
- package/core/smart_stats_calculator.py +709 -709
- package/core/statistics_update_manager.py +619 -619
- package/core/stats_config_manager.py +858 -858
- package/core/streaming_text_handler.py +723 -723
- package/core/task_scheduler.py +596 -596
- package/core/update_pattern_library.py +168 -168
- package/core/visibility_monitor.py +596 -596
- package/core/widget_cache.py +498 -498
- package/mcp.json +51 -61
- package/package.json +61 -57
- package/pomera.py +7482 -7482
- package/pomera_mcp_server.py +183 -144
- package/requirements.txt +32 -0
- package/tools/__init__.py +4 -4
- package/tools/ai_tools.py +2891 -2891
- package/tools/ascii_art_generator.py +352 -352
- package/tools/base64_tools.py +183 -183
- package/tools/base_tool.py +511 -511
- package/tools/case_tool.py +308 -308
- package/tools/column_tools.py +395 -395
- package/tools/cron_tool.py +884 -884
- package/tools/curl_history.py +600 -600
- package/tools/curl_processor.py +1207 -1207
- package/tools/curl_settings.py +502 -502
- package/tools/curl_tool.py +5467 -5467
- package/tools/diff_viewer.py +1071 -1071
- package/tools/email_extraction_tool.py +248 -248
- package/tools/email_header_analyzer.py +425 -425
- package/tools/extraction_tools.py +250 -250
- package/tools/find_replace.py +1750 -1750
- package/tools/folder_file_reporter.py +1463 -1463
- package/tools/folder_file_reporter_adapter.py +480 -480
- package/tools/generator_tools.py +1216 -1216
- package/tools/hash_generator.py +255 -255
- package/tools/html_tool.py +656 -656
- package/tools/jsonxml_tool.py +729 -729
- package/tools/line_tools.py +419 -419
- package/tools/markdown_tools.py +561 -561
- package/tools/mcp_widget.py +1417 -1417
- package/tools/notes_widget.py +973 -973
- package/tools/number_base_converter.py +372 -372
- package/tools/regex_extractor.py +571 -571
- package/tools/slug_generator.py +310 -310
- package/tools/sorter_tools.py +458 -458
- package/tools/string_escape_tool.py +392 -392
- package/tools/text_statistics_tool.py +365 -365
- package/tools/text_wrapper.py +430 -430
- package/tools/timestamp_converter.py +421 -421
- package/tools/tool_loader.py +710 -710
- package/tools/translator_tools.py +522 -522
- package/tools/url_link_extractor.py +261 -261
- package/tools/url_parser.py +204 -204
- package/tools/whitespace_tools.py +355 -355
- package/tools/word_frequency_counter.py +146 -146
- package/core/__pycache__/__init__.cpython-313.pyc +0 -0
- package/core/__pycache__/app_context.cpython-313.pyc +0 -0
- package/core/__pycache__/async_text_processor.cpython-313.pyc +0 -0
- package/core/__pycache__/backup_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/backup_recovery_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/content_hash_cache.cpython-313.pyc +0 -0
- package/core/__pycache__/context_menu.cpython-313.pyc +0 -0
- package/core/__pycache__/data_validator.cpython-313.pyc +0 -0
- package/core/__pycache__/database_connection_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/database_curl_settings_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/database_promera_ai_settings_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/database_schema.cpython-313.pyc +0 -0
- package/core/__pycache__/database_schema_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/database_settings_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/database_settings_manager_interface.cpython-313.pyc +0 -0
- package/core/__pycache__/dialog_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/efficient_line_numbers.cpython-313.pyc +0 -0
- package/core/__pycache__/error_handler.cpython-313.pyc +0 -0
- package/core/__pycache__/error_service.cpython-313.pyc +0 -0
- package/core/__pycache__/event_consolidator.cpython-313.pyc +0 -0
- package/core/__pycache__/memory_efficient_text_widget.cpython-313.pyc +0 -0
- package/core/__pycache__/migration_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/migration_test_suite.cpython-313.pyc +0 -0
- package/core/__pycache__/migration_validator.cpython-313.pyc +0 -0
- package/core/__pycache__/optimized_find_replace.cpython-313.pyc +0 -0
- package/core/__pycache__/optimized_pattern_engine.cpython-313.pyc +0 -0
- package/core/__pycache__/optimized_search_highlighter.cpython-313.pyc +0 -0
- package/core/__pycache__/performance_monitor.cpython-313.pyc +0 -0
- package/core/__pycache__/persistence_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/progressive_stats_calculator.cpython-313.pyc +0 -0
- package/core/__pycache__/regex_pattern_cache.cpython-313.pyc +0 -0
- package/core/__pycache__/regex_pattern_library.cpython-313.pyc +0 -0
- package/core/__pycache__/search_operation_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/settings_defaults_registry.cpython-313.pyc +0 -0
- package/core/__pycache__/settings_integrity_validator.cpython-313.pyc +0 -0
- package/core/__pycache__/settings_serializer.cpython-313.pyc +0 -0
- package/core/__pycache__/settings_validator.cpython-313.pyc +0 -0
- package/core/__pycache__/smart_stats_calculator.cpython-313.pyc +0 -0
- package/core/__pycache__/statistics_update_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/stats_config_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/streaming_text_handler.cpython-313.pyc +0 -0
- package/core/__pycache__/task_scheduler.cpython-313.pyc +0 -0
- package/core/__pycache__/visibility_monitor.cpython-313.pyc +0 -0
- package/core/__pycache__/widget_cache.cpython-313.pyc +0 -0
- package/core/mcp/__pycache__/__init__.cpython-313.pyc +0 -0
- package/core/mcp/__pycache__/protocol.cpython-313.pyc +0 -0
- package/core/mcp/__pycache__/schema.cpython-313.pyc +0 -0
- package/core/mcp/__pycache__/server_stdio.cpython-313.pyc +0 -0
- package/core/mcp/__pycache__/tool_registry.cpython-313.pyc +0 -0
- package/tools/__pycache__/__init__.cpython-313.pyc +0 -0
- package/tools/__pycache__/ai_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/ascii_art_generator.cpython-313.pyc +0 -0
- package/tools/__pycache__/base64_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/base_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/case_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/column_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/cron_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/curl_history.cpython-313.pyc +0 -0
- package/tools/__pycache__/curl_processor.cpython-313.pyc +0 -0
- package/tools/__pycache__/curl_settings.cpython-313.pyc +0 -0
- package/tools/__pycache__/curl_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/diff_viewer.cpython-313.pyc +0 -0
- package/tools/__pycache__/email_extraction_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/email_header_analyzer.cpython-313.pyc +0 -0
- package/tools/__pycache__/extraction_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/find_replace.cpython-313.pyc +0 -0
- package/tools/__pycache__/folder_file_reporter.cpython-313.pyc +0 -0
- package/tools/__pycache__/folder_file_reporter_adapter.cpython-313.pyc +0 -0
- package/tools/__pycache__/generator_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/hash_generator.cpython-313.pyc +0 -0
- package/tools/__pycache__/html_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/huggingface_helper.cpython-313.pyc +0 -0
- package/tools/__pycache__/jsonxml_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/line_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/list_comparator.cpython-313.pyc +0 -0
- package/tools/__pycache__/markdown_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/mcp_widget.cpython-313.pyc +0 -0
- package/tools/__pycache__/notes_widget.cpython-313.pyc +0 -0
- package/tools/__pycache__/number_base_converter.cpython-313.pyc +0 -0
- package/tools/__pycache__/regex_extractor.cpython-313.pyc +0 -0
- package/tools/__pycache__/slug_generator.cpython-313.pyc +0 -0
- package/tools/__pycache__/sorter_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/string_escape_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/text_statistics_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/text_wrapper.cpython-313.pyc +0 -0
- package/tools/__pycache__/timestamp_converter.cpython-313.pyc +0 -0
- package/tools/__pycache__/tool_loader.cpython-313.pyc +0 -0
- package/tools/__pycache__/translator_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/url_link_extractor.cpython-313.pyc +0 -0
- package/tools/__pycache__/url_parser.cpython-313.pyc +0 -0
- package/tools/__pycache__/whitespace_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/word_frequency_counter.cpython-313.pyc +0 -0
package/README.md
CHANGED
|
@@ -1,680 +1,105 @@
|
|
|
1
|
-
# Pomera AI Commander
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
#### Option 2: Run from Source
|
|
107
|
-
1. Clone the repository:
|
|
108
|
-
```bash
|
|
109
|
-
git clone https://github.com/matbanik/Pomera-AI-Commander.git
|
|
110
|
-
cd Pomera-AI-Commander
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
2. Run the application:
|
|
114
|
-
```bash
|
|
115
|
-
python pomera.py
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
## 📦 Releases and Downloads
|
|
119
|
-
|
|
120
|
-
### Getting the Latest Release
|
|
121
|
-
|
|
122
|
-
Visit the [**Releases page**](https://github.com/matbanik/Pomera-AI-Commander/releases) to download pre-built executables for your platform. Each release includes:
|
|
123
|
-
|
|
124
|
-
- **Cross-platform executables** - No Python installation required
|
|
125
|
-
- **SHA256 checksums** - For security verification
|
|
126
|
-
- **Release notes** - What's new and changed
|
|
127
|
-
- **Installation instructions** - Platform-specific setup guides
|
|
128
|
-
|
|
129
|
-
### Platform-Specific Installation
|
|
130
|
-
|
|
131
|
-
#### Windows
|
|
132
|
-
1. Download `pomera-v1.0.0-windows.exe`
|
|
133
|
-
2. **Optional**: Verify the download using SHA256 checksum from `checksums.txt`
|
|
134
|
-
3. Double-click the executable to run
|
|
135
|
-
4. **Note**: Windows may show a security warning for unsigned executables - click "More info" → "Run anyway"
|
|
136
|
-
|
|
137
|
-
#### Linux
|
|
138
|
-
1. Download `pomera-v1.0.0-linux`
|
|
139
|
-
2. Make executable and run:
|
|
140
|
-
```bash
|
|
141
|
-
chmod +x pomera-v1.0.0-linux
|
|
142
|
-
./pomera-v1.0.0-linux
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
#### macOS
|
|
146
|
-
|
|
147
|
-
**Apple Silicon Macs (M1/M2/M3/M4)**:
|
|
148
|
-
1. Download `pomera-v1.0.0-macos-arm64`
|
|
149
|
-
2. Make executable and run:
|
|
150
|
-
```bash
|
|
151
|
-
chmod +x pomera-v1.0.0-macos-arm64
|
|
152
|
-
./pomera-v1.0.0-macos-arm64
|
|
153
|
-
```
|
|
154
|
-
3. **Note**: macOS may require allowing the app in System Preferences → Security & Privacy
|
|
155
|
-
|
|
156
|
-
### Release Process (For Maintainers)
|
|
157
|
-
|
|
158
|
-
#### Triggering a Release
|
|
159
|
-
1. **Create a version tag** following semantic versioning:
|
|
160
|
-
```bash
|
|
161
|
-
git tag v1.0.0
|
|
162
|
-
git push origin v1.0.0
|
|
163
|
-
```
|
|
164
|
-
2. **GitHub Actions automatically**:
|
|
165
|
-
- Builds executables for Windows, Linux, and macOS
|
|
166
|
-
- Generates SHA256 checksums
|
|
167
|
-
- Creates a GitHub release
|
|
168
|
-
- Uploads all artifacts
|
|
169
|
-
|
|
170
|
-
#### Version Tag Format
|
|
171
|
-
- Use semantic versioning: `v1.0.0`, `v1.2.3`, `v2.0.0-beta.1`
|
|
172
|
-
- Tags must start with `v` to trigger the release workflow
|
|
173
|
-
- Pre-release tags (containing `-alpha`, `-beta`, `-rc`) create pre-releases
|
|
174
|
-
|
|
175
|
-
#### Release Workflow
|
|
176
|
-
```mermaid
|
|
177
|
-
graph LR
|
|
178
|
-
A[Push version tag] --> B[GitHub Actions triggers]
|
|
179
|
-
B --> C[Build on 3 platforms]
|
|
180
|
-
C --> D[Generate checksums]
|
|
181
|
-
D --> E[Create GitHub release]
|
|
182
|
-
E --> F[Upload artifacts]
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
### Troubleshooting Downloads
|
|
186
|
-
|
|
187
|
-
#### Common Issues
|
|
188
|
-
|
|
189
|
-
**Windows: "Windows protected your PC" warning**
|
|
190
|
-
- This is normal for unsigned executables
|
|
191
|
-
- Click "More info" → "Run anyway"
|
|
192
|
-
- Alternative: Run from source if you prefer
|
|
193
|
-
|
|
194
|
-
**Linux/macOS: "Permission denied" error**
|
|
195
|
-
- The executable needs execute permissions
|
|
196
|
-
- Run: `chmod +x pomera-v1.0.0-linux` (or macos)
|
|
197
|
-
|
|
198
|
-
**macOS: "App can't be opened because it is from an unidentified developer"**
|
|
199
|
-
- Go to System Preferences → Security & Privacy
|
|
200
|
-
- Click "Open Anyway" next to the blocked app message
|
|
201
|
-
- Alternative: Run `xattr -d com.apple.quarantine pomera-v1.0.0-macos-arm64`
|
|
202
|
-
|
|
203
|
-
**Download verification fails**
|
|
204
|
-
- Re-download the file (may be corrupted)
|
|
205
|
-
- Check you're comparing against the correct checksum from `checksums.txt`
|
|
206
|
-
- Ensure you downloaded the checksum file from the same release
|
|
207
|
-
|
|
208
|
-
**Executable won't start**
|
|
209
|
-
- Check system requirements (64-bit OS)
|
|
210
|
-
- Try running from command line to see error messages
|
|
211
|
-
- For older systems, try running from source instead
|
|
212
|
-
|
|
213
|
-
#### Getting Help
|
|
214
|
-
- Check the [Troubleshooting Guide](docs/TROUBLESHOOTING.md) for detailed solutions
|
|
215
|
-
- Search [existing issues](https://github.com/matbanik/Pomera-AI-Commander/issues) for known problems
|
|
216
|
-
- Create a new issue with:
|
|
217
|
-
- Your operating system and version
|
|
218
|
-
- The exact error message
|
|
219
|
-
- Steps you tried to resolve it
|
|
220
|
-
|
|
221
|
-
Pomera-AI-Commander/
|
|
222
|
-
├── pomera.py # Main application (supports --mcp-server flag)
|
|
223
|
-
├── tools/ # All tool modules
|
|
224
|
-
│ ├── __init__.py
|
|
225
|
-
│ ├── ai_tools.py
|
|
226
|
-
│ ├── base64_tools.py
|
|
227
|
-
│ ├── case_tool.py
|
|
228
|
-
│ ├── diff_viewer.py
|
|
229
|
-
│ ├── email_extraction_tool.py
|
|
230
|
-
│ ├── email_header_analyzer.py
|
|
231
|
-
│ ├── find_replace.py
|
|
232
|
-
│ ├── generator_tools.py
|
|
233
|
-
│ ├── list_comparator.py
|
|
234
|
-
│ ├── mcp_widget.py # MCP Manager UI
|
|
235
|
-
│ ├── sorter_tools.py
|
|
236
|
-
│ ├── translator_tools.py
|
|
237
|
-
│ ├── url_link_extractor.py
|
|
238
|
-
│ ├── url_parser.py
|
|
239
|
-
│ └── word_frequency_counter.py
|
|
240
|
-
├── core/ # All core utility modules
|
|
241
|
-
│ ├── __init__.py
|
|
242
|
-
│ ├── async_text_processor.py
|
|
243
|
-
│ ├── content_hash_cache.py
|
|
244
|
-
│ ├── mcp/ # MCP Server implementation
|
|
245
|
-
│ │ ├── __init__.py
|
|
246
|
-
│ │ ├── schema.py # MCP message schemas
|
|
247
|
-
│ │ ├── protocol.py # JSON-RPC protocol handling
|
|
248
|
-
│ │ ├── tool_registry.py # Tool registration and adapters
|
|
249
|
-
│ │ └── server_stdio.py # stdio transport server
|
|
250
|
-
│ ├── memory_efficient_text_widget.py
|
|
251
|
-
│ ├── optimized_find_replace.py
|
|
252
|
-
│ └── [other modules...]
|
|
253
|
-
└── docs/
|
|
254
|
-
├── MCP_PROJECT.md # MCP server documentation
|
|
255
|
-
└── MCP_TASKS.md # MCP implementation status
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
## 📖 Usage
|
|
259
|
-
|
|
260
|
-
### Basic Text Processing
|
|
261
|
-
1. **Input Text** - Enter or paste text in the input tabs
|
|
262
|
-
2. **Select Tool** - Choose from the dropdown menu of available tools
|
|
263
|
-
3. **Process** - Click "Apply Tool" or use automatic processing
|
|
264
|
-
4. **View Results** - See processed text in the output tabs
|
|
265
|
-
5. **Export** - Save results in your preferred format
|
|
266
|
-
|
|
267
|
-
### Comprehensive Tool Documentation
|
|
268
|
-
For detailed information about all available tools, features, and usage examples, see the [**Tools Documentation**](docs/TOOLS_DOCUMENTATION.md).
|
|
269
|
-
|
|
270
|
-
### Advanced Features
|
|
271
|
-
- **Diff Viewer** - Compare two texts side-by-side with highlighting
|
|
272
|
-
- **Performance Dashboard** - Monitor application performance and optimize settings
|
|
273
|
-
- **AI Tools** - Access AI-powered text processing capabilities
|
|
274
|
-
- **Batch Processing** - Process multiple texts efficiently
|
|
275
|
-
- **MCP Manager** - Configure and test MCP server integration (Widgets → MCP Manager)
|
|
276
|
-
|
|
277
|
-
### Keyboard Shortcuts
|
|
278
|
-
- `Ctrl+Z` / `Ctrl+Y` - Undo/Redo
|
|
279
|
-
- `Ctrl+S` - Save settings
|
|
280
|
-
- `Ctrl+O` - Open file
|
|
281
|
-
- `Ctrl+E` - Export current output
|
|
282
|
-
- `Ctrl+M` - Open MCP Manager
|
|
283
|
-
|
|
284
|
-
## ⚙️ Configuration
|
|
285
|
-
|
|
286
|
-
### Settings
|
|
287
|
-
The application automatically saves settings to `settings.json`, including:
|
|
288
|
-
- Tool preferences and configurations
|
|
289
|
-
- Performance optimization settings
|
|
290
|
-
- UI layout and preferences
|
|
291
|
-
- Export paths and formats
|
|
292
|
-
|
|
293
|
-
### Performance Optimization
|
|
294
|
-
- **Automatic Mode** - Intelligent performance adjustments based on content size
|
|
295
|
-
- **Manual Mode** - Fine-tune performance settings for your system
|
|
296
|
-
- **Memory Management** - Optimize memory usage for large files
|
|
297
|
-
- **Async Processing** - Enable background processing for better responsiveness
|
|
298
|
-
|
|
299
|
-
## 🔌 MCP Server Integration
|
|
300
|
-
|
|
301
|
-
Pomera can run as an MCP (Model Context Protocol) server, exposing all its text processing tools to AI assistants like Cursor, Claude Desktop, or any MCP-compatible client.
|
|
302
|
-
|
|
303
|
-
### Quick Setup for Cursor
|
|
304
|
-
|
|
305
|
-
1. Open MCP Manager: `Widgets → MCP Manager` or `Ctrl+M`
|
|
306
|
-
2. Go to the **Configuration** tab
|
|
307
|
-
3. Copy the JSON configuration
|
|
308
|
-
4. Add it to your Cursor MCP settings (`~/.cursor/mcp.json`)
|
|
309
|
-
|
|
310
|
-
### Running as MCP Server
|
|
311
|
-
|
|
312
|
-
```bash
|
|
313
|
-
# From source
|
|
314
|
-
python pomera.py --mcp-server
|
|
315
|
-
|
|
316
|
-
# From compiled executable
|
|
317
|
-
pomera.exe --mcp-server
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
### Available MCP Tools (33 total)
|
|
321
|
-
|
|
322
|
-
| Category | Tools |
|
|
323
|
-
|----------|-------|
|
|
324
|
-
| **Text Transform** | `pomera_case_transform`, `pomera_whitespace`, `pomera_line_tools`, `pomera_sort` |
|
|
325
|
-
| **Encoding** | `pomera_base64`, `pomera_hash`, `pomera_string_escape`, `pomera_slug` |
|
|
326
|
-
| **Data Formats** | `pomera_json_xml`, `pomera_markdown`, `pomera_column_tools` |
|
|
327
|
-
| **Extraction** | `pomera_regex_extract`, `pomera_extract_emails`, `pomera_extract_urls`, `pomera_html`, `pomera_email_header_analyzer` |
|
|
328
|
-
| **Utilities** | `pomera_url_parse`, `pomera_timestamp`, `pomera_cron`, `pomera_number_base`, `pomera_text_wrap`, `pomera_text_stats`, `pomera_word_frequency`, `pomera_list_compare` |
|
|
329
|
-
| **Generators** | `pomera_generators`, `pomera_translator` |
|
|
330
|
-
| **Notes** | `pomera_notes_save`, `pomera_notes_get`, `pomera_notes_list`, `pomera_notes_search`, `pomera_notes_update`, `pomera_notes_delete` |
|
|
331
|
-
|
|
332
|
-
### MCP Configuration Example
|
|
333
|
-
|
|
334
|
-
```json
|
|
335
|
-
{
|
|
336
|
-
"mcpServers": {
|
|
337
|
-
"pomera": {
|
|
338
|
-
"command": "python",
|
|
339
|
-
"args": ["C:/path/to/pomera.py", "--mcp-server"]
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
For detailed MCP documentation, see [**MCP Server Guide**](docs/MCP_PROJECT.md).
|
|
346
|
-
|
|
347
|
-
### Setting Up Pomera MCP Server with Cursor
|
|
348
|
-
|
|
349
|
-
Cursor IDE supports MCP servers natively. Follow these steps to integrate Pomera:
|
|
350
|
-
|
|
351
|
-
#### Step 1: Locate Your MCP Configuration File
|
|
352
|
-
|
|
353
|
-
**Windows:**
|
|
354
|
-
```
|
|
355
|
-
%USERPROFILE%\.cursor\mcp.json
|
|
356
|
-
```
|
|
357
|
-
Example: `C:\Users\YourName\.cursor\mcp.json`
|
|
358
|
-
|
|
359
|
-
**macOS:**
|
|
360
|
-
```
|
|
361
|
-
~/.cursor/mcp.json
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
**Linux:**
|
|
365
|
-
```
|
|
366
|
-
~/.cursor/mcp.json
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
#### Step 2: Add Pomera to MCP Configuration
|
|
370
|
-
|
|
371
|
-
Open or create the `mcp.json` file and add the Pomera server configuration:
|
|
372
|
-
|
|
373
|
-
**Using Python (from source):**
|
|
374
|
-
```json
|
|
375
|
-
{
|
|
376
|
-
"mcpServers": {
|
|
377
|
-
"pomera": {
|
|
378
|
-
"command": "python",
|
|
379
|
-
"args": ["C:/path/to/Pomera-AI-Commander/pomera.py", "--mcp-server"]
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
**Using Compiled Executable (Windows):**
|
|
386
|
-
```json
|
|
387
|
-
{
|
|
388
|
-
"mcpServers": {
|
|
389
|
-
"pomera": {
|
|
390
|
-
"command": "C:/path/to/pomera.exe",
|
|
391
|
-
"args": ["--mcp-server"]
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
**Using Compiled Executable (Linux/macOS):**
|
|
398
|
-
```json
|
|
399
|
-
{
|
|
400
|
-
"mcpServers": {
|
|
401
|
-
"pomera": {
|
|
402
|
-
"command": "/path/to/pomera",
|
|
403
|
-
"args": ["--mcp-server"]
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
```
|
|
408
|
-
|
|
409
|
-
#### Step 3: Restart Cursor
|
|
410
|
-
|
|
411
|
-
After saving the configuration, restart Cursor IDE for the changes to take effect.
|
|
412
|
-
|
|
413
|
-
#### Step 4: Verify the Connection
|
|
414
|
-
|
|
415
|
-
1. Open Cursor's MCP panel (usually in settings or via command palette)
|
|
416
|
-
2. You should see "pomera" listed as an available server
|
|
417
|
-
3. The 33 Pomera tools will be available to the AI assistant
|
|
418
|
-
|
|
419
|
-
#### Using Pomera Tools in Cursor
|
|
420
|
-
|
|
421
|
-
Once configured, you can ask Cursor's AI to use Pomera tools:
|
|
422
|
-
|
|
423
|
-
```
|
|
424
|
-
"Use pomera_case_transform to convert this text to title case"
|
|
425
|
-
"Hash this text using pomera_hash with SHA256"
|
|
426
|
-
"Extract all URLs from this document using pomera_extract_urls"
|
|
427
|
-
"Save this as a note using pomera_notes_save"
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
### Setting Up Pomera MCP Server with Visual Studio Code
|
|
431
|
-
|
|
432
|
-
VS Code requires the [MCP extension](https://marketplace.visualstudio.com/items?itemName=anthropics.claude-mcp) or a compatible AI extension that supports MCP.
|
|
433
|
-
|
|
434
|
-
#### Step 1: Install MCP Extension
|
|
435
|
-
|
|
436
|
-
1. Open VS Code
|
|
437
|
-
2. Go to Extensions (`Ctrl+Shift+X`)
|
|
438
|
-
3. Search for "MCP" or "Claude MCP"
|
|
439
|
-
4. Install the official MCP extension
|
|
440
|
-
|
|
441
|
-
#### Step 2: Configure the MCP Server
|
|
442
|
-
|
|
443
|
-
**Option A: Using VS Code Settings (settings.json)**
|
|
444
|
-
|
|
445
|
-
Open your VS Code settings (`Ctrl+,` → Open Settings JSON) and add:
|
|
446
|
-
|
|
447
|
-
```json
|
|
448
|
-
{
|
|
449
|
-
"mcp.servers": {
|
|
450
|
-
"pomera": {
|
|
451
|
-
"command": "python",
|
|
452
|
-
"args": ["C:/path/to/Pomera-AI-Commander/pomera.py", "--mcp-server"]
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
```
|
|
457
|
-
|
|
458
|
-
**Option B: Using Workspace Configuration**
|
|
459
|
-
|
|
460
|
-
Create a `.vscode/mcp.json` file in your workspace:
|
|
461
|
-
|
|
462
|
-
```json
|
|
463
|
-
{
|
|
464
|
-
"servers": {
|
|
465
|
-
"pomera": {
|
|
466
|
-
"command": "python",
|
|
467
|
-
"args": ["${workspaceFolder}/../Pomera-AI-Commander/pomera.py", "--mcp-server"]
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
```
|
|
472
|
-
|
|
473
|
-
#### Step 3: Reload VS Code
|
|
474
|
-
|
|
475
|
-
Use `Ctrl+Shift+P` → "Developer: Reload Window" to apply the configuration.
|
|
476
|
-
|
|
477
|
-
### Setting Up with Claude Desktop
|
|
478
|
-
|
|
479
|
-
Claude Desktop also supports MCP servers. Add Pomera to your Claude configuration:
|
|
480
|
-
|
|
481
|
-
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
482
|
-
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
483
|
-
|
|
484
|
-
```json
|
|
485
|
-
{
|
|
486
|
-
"mcpServers": {
|
|
487
|
-
"pomera": {
|
|
488
|
-
"command": "python",
|
|
489
|
-
"args": ["C:/path/to/Pomera-AI-Commander/pomera.py", "--mcp-server"]
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
### Troubleshooting MCP Integration
|
|
496
|
-
|
|
497
|
-
#### Server Not Starting
|
|
498
|
-
|
|
499
|
-
1. **Check the path**: Ensure the path to `pomera.py` or the executable is correct
|
|
500
|
-
2. **Check Python**: Make sure Python is in your system PATH
|
|
501
|
-
3. **Test manually**: Run `python pomera.py --mcp-server` in terminal to see errors
|
|
502
|
-
|
|
503
|
-
#### Tools Not Appearing
|
|
504
|
-
|
|
505
|
-
1. **Restart the IDE**: Sometimes a full restart is needed
|
|
506
|
-
2. **Check logs**: Look for MCP-related errors in the IDE's developer console
|
|
507
|
-
3. **Verify JSON syntax**: Ensure your configuration file has valid JSON
|
|
508
|
-
|
|
509
|
-
#### Permission Issues (Linux/macOS)
|
|
510
|
-
|
|
511
|
-
```bash
|
|
512
|
-
# Make the executable runnable
|
|
513
|
-
chmod +x /path/to/pomera
|
|
514
|
-
|
|
515
|
-
# If using Python, ensure it's accessible
|
|
516
|
-
which python
|
|
517
|
-
```
|
|
518
|
-
|
|
519
|
-
#### Common Error Messages
|
|
520
|
-
|
|
521
|
-
| Error | Solution |
|
|
522
|
-
|-------|----------|
|
|
523
|
-
| "Command not found" | Check the command path, ensure Python/executable is in PATH |
|
|
524
|
-
| "Connection refused" | Server crashed on startup, check logs |
|
|
525
|
-
| "Invalid JSON" | Fix syntax errors in your mcp.json file |
|
|
526
|
-
| "Permission denied" | Add execute permissions to the file |
|
|
527
|
-
|
|
528
|
-
### MCP Server Logs
|
|
529
|
-
|
|
530
|
-
To debug issues, you can check the MCP server logs:
|
|
531
|
-
|
|
532
|
-
```bash
|
|
533
|
-
# Run with verbose output
|
|
534
|
-
python pomera.py --mcp-server 2>&1 | tee mcp_debug.log
|
|
535
|
-
```
|
|
536
|
-
|
|
537
|
-
The server logs are also written to `mcp_filesystem.log` in the Pomera directory.
|
|
538
|
-
|
|
539
|
-
## 🏗️ Architecture
|
|
540
|
-
|
|
541
|
-
### Core Components
|
|
542
|
-
- **Main Application** (`pomera.py`) - Primary GUI and application logic
|
|
543
|
-
- **Text Processors** - Specialized modules for different text operations
|
|
544
|
-
- **Performance System** - Monitoring, caching, and optimization components
|
|
545
|
-
- **AI Integration** - AI tools and provider interfaces
|
|
546
|
-
|
|
547
|
-
### Performance Optimizations
|
|
548
|
-
- **Lazy Loading** - Modules loaded only when needed
|
|
549
|
-
- **Intelligent Caching** - Smart caching for frequently used operations
|
|
550
|
-
- **Async Processing** - Non-blocking operations for large files
|
|
551
|
-
- **Memory Efficiency** - Optimized memory usage patterns
|
|
552
|
-
|
|
553
|
-
## 🧪 Testing
|
|
554
|
-
|
|
555
|
-
For quick testing setup and procedures, see the [**Testing Quick Start Guide**](docs/TESTING_QUICK_START.md).
|
|
556
|
-
|
|
557
|
-
### Test Coverage
|
|
558
|
-
- **Functionality Tests** - Core feature validation
|
|
559
|
-
- **Performance Tests** - Startup time and memory usage
|
|
560
|
-
- **Integration Tests** - AI tools and external service integration
|
|
561
|
-
- **Regression Tests** - Ensure optimizations don't break functionality
|
|
562
|
-
|
|
563
|
-
## 📊 Performance
|
|
564
|
-
|
|
565
|
-
### Benchmarks
|
|
566
|
-
- **Startup Time** - Optimized to ~0.47 seconds
|
|
567
|
-
- **Memory Usage** - Efficient memory management with lazy loading
|
|
568
|
-
- **Processing Speed** - Async processing for large files
|
|
569
|
-
- **Responsiveness** - Non-blocking UI operations
|
|
570
|
-
|
|
571
|
-
### Optimization Features
|
|
572
|
-
- **Smart Caching** - Intelligent result caching
|
|
573
|
-
- **Lazy Loading** - Modules loaded on-demand
|
|
574
|
-
- **Memory Pools** - Efficient memory allocation
|
|
575
|
-
- **Background Processing** - Non-blocking operations
|
|
576
|
-
|
|
577
|
-
## 🤝 Contributing
|
|
578
|
-
|
|
579
|
-
### Development Setup
|
|
580
|
-
1. Fork the repository
|
|
581
|
-
2. Create a feature branch
|
|
582
|
-
3. Make your changes
|
|
583
|
-
4. Run the validation framework
|
|
584
|
-
5. Submit a pull request
|
|
585
|
-
|
|
586
|
-
### Code Style
|
|
587
|
-
- Follow PEP 8 guidelines
|
|
588
|
-
- Use type hints where appropriate
|
|
589
|
-
- Include docstrings for functions and classes
|
|
590
|
-
- Maintain test coverage for new features
|
|
591
|
-
|
|
592
|
-
### Performance Considerations
|
|
593
|
-
- Profile performance impact of changes
|
|
594
|
-
- Use lazy loading for optional features
|
|
595
|
-
- Implement proper error handling
|
|
596
|
-
- Consider memory usage implications
|
|
597
|
-
|
|
598
|
-
### Release Process (Maintainers)
|
|
599
|
-
|
|
600
|
-
#### Creating a Release
|
|
601
|
-
1. **Prepare the release**:
|
|
602
|
-
- Ensure all changes are merged to main branch
|
|
603
|
-
- Update version numbers if needed
|
|
604
|
-
- Test the application thoroughly
|
|
605
|
-
|
|
606
|
-
2. **Create and push a version tag**:
|
|
607
|
-
```bash
|
|
608
|
-
git tag v1.0.0
|
|
609
|
-
git push origin v1.0.0
|
|
610
|
-
```
|
|
611
|
-
|
|
612
|
-
3. **Automated build process**:
|
|
613
|
-
- GitHub Actions automatically builds executables for all platforms
|
|
614
|
-
- Creates GitHub release with generated release notes
|
|
615
|
-
- Uploads executables and checksums
|
|
616
|
-
|
|
617
|
-
4. **Post-release verification**:
|
|
618
|
-
- Download and test executables from the release page
|
|
619
|
-
- Verify checksums match
|
|
620
|
-
- Update documentation if needed
|
|
621
|
-
|
|
622
|
-
#### Version Numbering
|
|
623
|
-
- Use semantic versioning: `v1.0.0`, `v1.2.3`, `v2.0.0`
|
|
624
|
-
- Pre-releases: `v1.0.0-beta.1`, `v2.0.0-rc.1`
|
|
625
|
-
- Tags must start with `v` to trigger the release workflow
|
|
626
|
-
|
|
627
|
-
#### Release Testing
|
|
628
|
-
- See [**Release Testing Guide**](docs/RELEASE_TESTING.md) for comprehensive testing procedures
|
|
629
|
-
- See [**Release Process Guide**](docs/RELEASE_PROCESS.md) for detailed release procedures
|
|
630
|
-
- See [**Testing Quick Start Guide**](docs/TESTING_QUICK_START.md) for rapid testing setup
|
|
631
|
-
- Test on multiple platforms before tagging
|
|
632
|
-
- Verify all core functionality works in built executables
|
|
633
|
-
|
|
634
|
-
## 📝 License
|
|
635
|
-
|
|
636
|
-
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
637
|
-
|
|
638
|
-
## 🙏 Acknowledgments
|
|
639
|
-
|
|
640
|
-
- Built with Python and Tkinter
|
|
641
|
-
- AI integration powered by various AI service providers
|
|
642
|
-
- Performance optimizations inspired by modern software engineering practices
|
|
643
|
-
- Community feedback and contributions
|
|
644
|
-
|
|
645
|
-
## 📞 Support
|
|
646
|
-
|
|
647
|
-
### Documentation
|
|
648
|
-
- **[Tools Documentation](docs/TOOLS_DOCUMENTATION.md)** - Comprehensive tool reference
|
|
649
|
-
- **[Troubleshooting Guide](docs/TROUBLESHOOTING.md)** - Solutions for common issues
|
|
650
|
-
- **[Release Testing Guide](docs/RELEASE_TESTING.md)** - Testing procedures
|
|
651
|
-
- **[Release Process Guide](docs/RELEASE_PROCESS.md)** - Detailed release procedures
|
|
652
|
-
- **[Testing Quick Start Guide](docs/TESTING_QUICK_START.md)** - Rapid testing setup
|
|
653
|
-
- Check the built-in help system
|
|
654
|
-
- Review the performance dashboard for optimization tips
|
|
655
|
-
|
|
656
|
-
### Issues and Bug Reports
|
|
657
|
-
- **Search existing issues** first: [GitHub Issues](https://github.com/matbanik/Pomera-AI-Commander/issues)
|
|
658
|
-
- **Report bugs** with detailed information:
|
|
659
|
-
- Operating system and version
|
|
660
|
-
- Exact error messages
|
|
661
|
-
- Steps to reproduce the issue
|
|
662
|
-
- Expected vs actual behavior
|
|
663
|
-
|
|
664
|
-
### Feature Requests
|
|
665
|
-
- Submit feature requests via [GitHub Issues](https://github.com/matbanik/Pomera-AI-Commander/issues)
|
|
666
|
-
- Use the "Feature Request" template
|
|
667
|
-
- Describe the use case and expected behavior
|
|
668
|
-
- Consider performance and compatibility implications
|
|
669
|
-
|
|
670
|
-
### Getting Help
|
|
671
|
-
1. **Check the troubleshooting guide** for common solutions
|
|
672
|
-
2. **Search existing issues** to see if your problem is known
|
|
673
|
-
3. **Create a detailed issue** if you can't find a solution
|
|
674
|
-
4. **Join discussions** for general questions and community support
|
|
675
|
-
|
|
676
|
-
---
|
|
677
|
-
|
|
678
|
-
**Pomera AI Commander** - Empowering text processing with AI, performance optimization, and MCP server integration.
|
|
679
|
-
|
|
680
|
-
*Last updated: December 2025*
|
|
1
|
+
# Pomera AI Commander (PAC)
|
|
2
|
+
[](https://github.com/matbanik/Pomera-AI-Commander/releases)
|
|
3
|
+
|
|
4
|
+
A desktop text "workbench" + MCP server: clean, transform, extract, and analyze text fast—manually in a GUI or programmatically from AI assistants (Cursor / Claude Desktop / MCP clients).
|
|
5
|
+
|
|
6
|
+
> Hook: Stop pasting text into 10 random websites. Pomera gives you one place (GUI + MCP) to do the 90% text ops you repeat every week.
|
|
7
|
+
|
|
8
|
+
[Download latest release](https://github.com/matbanik/Pomera-AI-Commander/releases) · Docs: [Tools](docs/TOOLS_DOCUMENTATION.md) · [MCP Guide](docs/MCP_SERVER_GUIDE.md) · [Troubleshooting](docs/TROUBLESHOOTING.md)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 60-second demo (what to expect)
|
|
13
|
+

|
|
14
|
+
|
|
15
|
+
**Best-for workflows**
|
|
16
|
+
- Cleaning pasted logs / PDFs (whitespace, wrapping, stats)
|
|
17
|
+
- Extracting emails/URLs/IDs via regex
|
|
18
|
+
- Normalizing case, sorting, columns
|
|
19
|
+
- Hashing/encoding utilities
|
|
20
|
+
- Letting Cursor/Claude call these as MCP tools in a repeatable pipeline
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Prerequisites
|
|
25
|
+
|
|
26
|
+
**Python 3.8+** is required for all installation methods.
|
|
27
|
+
|
|
28
|
+
### macOS (Homebrew)
|
|
29
|
+
```bash
|
|
30
|
+
# Tkinter support (replace @3.14 with your Python version)
|
|
31
|
+
brew install python-tk@3.14
|
|
32
|
+
pip3 install requests reportlab python-docx
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Ubuntu/Debian
|
|
36
|
+
```bash
|
|
37
|
+
sudo apt-get install python3-tk
|
|
38
|
+
pip3 install requests reportlab python-docx
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Windows
|
|
42
|
+
Tkinter is included with Python from [python.org](https://python.org).
|
|
43
|
+
```cmd
|
|
44
|
+
pip install requests reportlab python-docx
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
> **Note:** For PEP 668 protected environments, use `pip3 install --user` or a virtual environment.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Install / Run
|
|
52
|
+
### Option A — Prebuilt executable (recommended)
|
|
53
|
+
[Download from Releases](https://github.com/matbanik/Pomera-AI-Commander/releases) and run.
|
|
54
|
+
|
|
55
|
+
### Option B — Python (PyPI)
|
|
56
|
+
```bash
|
|
57
|
+
pip install pomera-ai-commander
|
|
58
|
+
# then run:
|
|
59
|
+
pomera-ai-commander --help
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Option C — Node.js (npm)
|
|
63
|
+
```bash
|
|
64
|
+
npm install -g pomera-ai-commander
|
|
65
|
+
# then run:
|
|
66
|
+
pomera-mcp --help
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## MCP Server for AI Assistants
|
|
72
|
+
|
|
73
|
+
Pomera exposes 22 text processing tools via MCP. Configure your AI assistant:
|
|
74
|
+
|
|
75
|
+
**Cursor** (`.cursor/mcp.json`):
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"mcpServers": {
|
|
79
|
+
"pomera": {
|
|
80
|
+
"command": "pomera-ai-commander",
|
|
81
|
+
"args": ["--mcp-server"]
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Claude Desktop** (`claude_desktop_config.json`):
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"mcpServers": {
|
|
91
|
+
"pomera": {
|
|
92
|
+
"command": "pomera-ai-commander",
|
|
93
|
+
"args": ["--mcp-server"]
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
See the full [MCP Server Guide](docs/MCP_SERVER_GUIDE.md) for Antigravity, executable configs, and troubleshooting.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## License
|
|
104
|
+
|
|
105
|
+
MIT License - see [LICENSE](LICENSE) for details.
|