claudemol 0.1.0__py3-none-any.whl → 0.2.0__py3-none-any.whl
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.
- claudemol/cli.py +1 -1
- claudemol/connection.py +1 -1
- claudemol/view.py +2 -2
- {claudemol-0.1.0.dist-info → claudemol-0.2.0.dist-info}/METADATA +17 -30
- claudemol-0.2.0.dist-info/RECORD +11 -0
- {claudemol-0.1.0.dist-info → claudemol-0.2.0.dist-info}/WHEEL +1 -1
- claudemol-0.1.0.dist-info/RECORD +0 -11
- {claudemol-0.1.0.dist-info → claudemol-0.2.0.dist-info}/entry_points.txt +0 -0
- {claudemol-0.1.0.dist-info → claudemol-0.2.0.dist-info}/licenses/LICENSE +0 -0
claudemol/cli.py
CHANGED
|
@@ -138,7 +138,7 @@ Commands:
|
|
|
138
138
|
info Show installation info
|
|
139
139
|
|
|
140
140
|
For Claude Code skills, install the claudemol-skills plugin:
|
|
141
|
-
/plugin marketplace add ANaka/
|
|
141
|
+
/plugin marketplace add ANaka/claudemol?path=claude-plugin
|
|
142
142
|
/plugin install claudemol-skills
|
|
143
143
|
""",
|
|
144
144
|
)
|
claudemol/connection.py
CHANGED
|
@@ -195,7 +195,7 @@ def launch_pymol(file_path=None, wait_for_socket=True, timeout=10.0):
|
|
|
195
195
|
if not pymol_cmd:
|
|
196
196
|
raise RuntimeError(
|
|
197
197
|
"PyMOL not found. Please install PyMOL:\n"
|
|
198
|
-
" - Run:
|
|
198
|
+
" - Run: claudemol setup\n"
|
|
199
199
|
" - Or: pip install pymol-open-source-whl\n"
|
|
200
200
|
" - Or: brew install pymol (macOS)"
|
|
201
201
|
)
|
claudemol/view.py
CHANGED
|
@@ -4,7 +4,7 @@ Visual feedback helper for PyMOL.
|
|
|
4
4
|
Provides a simple way to execute commands and save/view the result.
|
|
5
5
|
|
|
6
6
|
Usage:
|
|
7
|
-
from
|
|
7
|
+
from claudemol.view import pymol_view
|
|
8
8
|
|
|
9
9
|
# Execute commands and save a snapshot
|
|
10
10
|
path = pymol_view("cmd.fetch('1ubq'); cmd.show('cartoon')", name="ubq_cartoon")
|
|
@@ -21,7 +21,7 @@ from pathlib import Path
|
|
|
21
21
|
|
|
22
22
|
DEFAULT_HOST = "localhost"
|
|
23
23
|
DEFAULT_PORT = 9880
|
|
24
|
-
SCRATCH_DIR = Path.home() / ".
|
|
24
|
+
SCRATCH_DIR = Path.home() / ".claudemol" / "scratch"
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
def ensure_scratch_dir():
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claudemol
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: PyMOL integration for Claude Code - control molecular visualization via natural language
|
|
5
|
-
Project-URL: Homepage, https://github.com/ANaka/
|
|
6
|
-
Project-URL: Repository, https://github.com/ANaka/
|
|
5
|
+
Project-URL: Homepage, https://github.com/ANaka/claudemol
|
|
6
|
+
Project-URL: Repository, https://github.com/ANaka/claudemol
|
|
7
7
|
Author: Alex Naka
|
|
8
8
|
License: MIT
|
|
9
9
|
License-File: LICENSE
|
|
@@ -20,12 +20,10 @@ Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
|
20
20
|
Requires-Python: >=3.10
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
|
|
23
|
-
#
|
|
23
|
+
# claudemol: Control PyMOL with Claude Code
|
|
24
24
|
|
|
25
25
|
Control PyMOL through natural language using Claude Code. This integration enables conversational structural biology, molecular visualization, and analysis.
|
|
26
26
|
|
|
27
|
-
https://github.com/user-attachments/assets/687f43dc-d45e-477e-ac2b-7438e175cb36
|
|
28
|
-
|
|
29
27
|
## Features
|
|
30
28
|
|
|
31
29
|
- **Natural language control**: Tell Claude what you want to visualize and it executes PyMOL commands
|
|
@@ -49,30 +47,20 @@ Claude Code → TCP Socket (port 9880) → PyMOL Plugin → cmd.* execution
|
|
|
49
47
|
|
|
50
48
|
### Installation
|
|
51
49
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
cd ai-mol
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
2. **Set up the PyMOL plugin:**
|
|
60
|
-
|
|
61
|
-
Add this line to your `~/.pymolrc` (create it if it doesn't exist):
|
|
62
|
-
|
|
63
|
-
```python
|
|
64
|
-
run /path/to/ai-mol/claude_socket_plugin.py
|
|
65
|
-
```
|
|
50
|
+
```bash
|
|
51
|
+
pip install claudemol
|
|
52
|
+
claudemol setup
|
|
53
|
+
```
|
|
66
54
|
|
|
67
|
-
|
|
55
|
+
This installs the package and configures PyMOL to auto-load the socket plugin.
|
|
68
56
|
|
|
69
|
-
|
|
57
|
+
### Start Using It
|
|
70
58
|
|
|
71
|
-
|
|
59
|
+
Open Claude Code and say:
|
|
72
60
|
|
|
73
|
-
|
|
61
|
+
> "Open PyMOL and load structure 1UBQ"
|
|
74
62
|
|
|
75
|
-
|
|
63
|
+
Claude will launch PyMOL (with the socket listener active) and load the structure.
|
|
76
64
|
|
|
77
65
|
## Usage
|
|
78
66
|
|
|
@@ -126,9 +114,8 @@ Claude Code has built-in skills for common workflows:
|
|
|
126
114
|
|
|
127
115
|
### Plugin Not Loading
|
|
128
116
|
|
|
129
|
-
-
|
|
117
|
+
- Run `claudemol setup` to configure PyMOL
|
|
130
118
|
- Check PyMOL's output for any error messages on startup
|
|
131
|
-
- Try running `run /path/to/claude_socket_plugin.py` manually in PyMOL
|
|
132
119
|
|
|
133
120
|
### First-Time Setup Help
|
|
134
121
|
|
|
@@ -139,9 +126,9 @@ Run the `/pymol-setup` skill in Claude Code for guided setup assistance.
|
|
|
139
126
|
The default socket port is **9880**. Both the plugin and Claude Code connection module use this port.
|
|
140
127
|
|
|
141
128
|
Key files:
|
|
142
|
-
- `
|
|
143
|
-
- `
|
|
144
|
-
-
|
|
129
|
+
- `src/claudemol/plugin.py` - PyMOL plugin (auto-loads via pymolrc)
|
|
130
|
+
- `src/claudemol/connection.py` - Python module for socket communication
|
|
131
|
+
- `claude-plugin/skills/` - Claude Code skills for PyMOL workflows
|
|
145
132
|
|
|
146
133
|
## Limitations
|
|
147
134
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
claudemol/__init__.py,sha256=RZDmQTql01kKApSDdMC3qy07Bz71CE1f6vyOJ_l7wHk,618
|
|
2
|
+
claudemol/cli.py,sha256=YMOWlO5fLsczb-fLztnEj8xhj1M9H6Bog16maw_A7ME,5011
|
|
3
|
+
claudemol/connection.py,sha256=lvHb6wJ2uxKiVxpQU-KXUyWD4R_hkNttw12dO1CcXC0,7519
|
|
4
|
+
claudemol/plugin.py,sha256=xRqpd9Ncn2vDZnmZsKHcFrhISJng38FAZv_0Thy-axc,5513
|
|
5
|
+
claudemol/session.py,sha256=BtaIx9UalvnnlmQ1Zr9HFAlvt_0HzrAnT952HPpFG4w,8258
|
|
6
|
+
claudemol/view.py,sha256=k5wzx2jOeYgZKJKNJfk-3Aat3iDvKU-8y9dMAjb4E-A,4103
|
|
7
|
+
claudemol-0.2.0.dist-info/METADATA,sha256=bomqdT1MfSEAGo5GB-WrXO2tjWTxaPLr5bcRnDguDb8,4686
|
|
8
|
+
claudemol-0.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
9
|
+
claudemol-0.2.0.dist-info/entry_points.txt,sha256=zHSqaPcqaXWoGEavppdq_zTrMARmjjrTqLHa5KEBchw,49
|
|
10
|
+
claudemol-0.2.0.dist-info/licenses/LICENSE,sha256=sZWsSm99w9tlHsmCnA7_6KzEAqQaD7nSQlgYesvvWMQ,1075
|
|
11
|
+
claudemol-0.2.0.dist-info/RECORD,,
|
claudemol-0.1.0.dist-info/RECORD
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
claudemol/__init__.py,sha256=RZDmQTql01kKApSDdMC3qy07Bz71CE1f6vyOJ_l7wHk,618
|
|
2
|
-
claudemol/cli.py,sha256=J6cKHGbkZX_gYAcvMVlN3NXkIEJmMSjAeEL4R7GO-ww,5008
|
|
3
|
-
claudemol/connection.py,sha256=PG-iqqJ8kYUrA9JQieigHNSzjdI-cab6c0SKUpZkxTg,7516
|
|
4
|
-
claudemol/plugin.py,sha256=xRqpd9Ncn2vDZnmZsKHcFrhISJng38FAZv_0Thy-axc,5513
|
|
5
|
-
claudemol/session.py,sha256=BtaIx9UalvnnlmQ1Zr9HFAlvt_0HzrAnT952HPpFG4w,8258
|
|
6
|
-
claudemol/view.py,sha256=-qe4xu_U_AuVtZpgj_XK3GqnUgq_8ClraHpJjFd58lU,4097
|
|
7
|
-
claudemol-0.1.0.dist-info/METADATA,sha256=kTIUkA5cu-dB3N4bC_qfLZidrEGXPEPAukAr6i7aU2o,5104
|
|
8
|
-
claudemol-0.1.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
9
|
-
claudemol-0.1.0.dist-info/entry_points.txt,sha256=zHSqaPcqaXWoGEavppdq_zTrMARmjjrTqLHa5KEBchw,49
|
|
10
|
-
claudemol-0.1.0.dist-info/licenses/LICENSE,sha256=sZWsSm99w9tlHsmCnA7_6KzEAqQaD7nSQlgYesvvWMQ,1075
|
|
11
|
-
claudemol-0.1.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|