vimlm 0.0.5__tar.gz → 0.0.6__tar.gz

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.
vimlm-0.0.6/PKG-INFO ADDED
@@ -0,0 +1,158 @@
1
+ Metadata-Version: 2.2
2
+ Name: vimlm
3
+ Version: 0.0.6
4
+ Summary: VimLM - LLM-powered Vim assistant
5
+ Home-page: https://github.com/JosefAlbers/vimlm
6
+ Author: Josef Albers
7
+ Author-email: albersj66@gmail.com
8
+ Requires-Python: >=3.12.8
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: nanollama==0.0.5
12
+ Requires-Dist: mlx_lm_utils==0.0.2
13
+ Requires-Dist: watchfiles==1.0.4
14
+ Dynamic: author
15
+ Dynamic: author-email
16
+ Dynamic: description
17
+ Dynamic: description-content-type
18
+ Dynamic: home-page
19
+ Dynamic: requires-dist
20
+ Dynamic: requires-python
21
+ Dynamic: summary
22
+
23
+
24
+ # VimLM - Local LLM-Powered Coding Assistant for Vim
25
+
26
+ ![vimlm](https://raw.githubusercontent.com/JosefAlbers/VimLM/main/assets/captioned_vimlm.gif)
27
+
28
+ LLM-powered coding companion for Vim, inspired by GitHub Copilot/Cursor. Integrates contextual code understanding, summarization, and AI assistance directly into your Vim workflow.
29
+
30
+ ## Features
31
+
32
+ - **Model Agnostic** - Use any MLX-compatible model via a configuration file
33
+ - **Vim-Native UX** - Intuitive keybindings and split-window responses
34
+ - **Deep Context** - Understands code context from:
35
+ - Current file
36
+ - Visual selections
37
+ - Referenced files
38
+ - Project directory structure
39
+ - **Conversational Coding** - Iterative refinement with follow-up queries
40
+ - **Air-Gapped Security** - 100% offline - no APIs, no tracking, no data leaks
41
+
42
+ ## Requirements
43
+
44
+ - Apple M-series chip
45
+ - Python 3.12.8
46
+
47
+ ## Quick Start
48
+
49
+ Install:
50
+
51
+ ```zsh
52
+ pip install vimlm
53
+ ```
54
+
55
+ Launch:
56
+
57
+ ```zsh
58
+ vimlm
59
+ ```
60
+
61
+ or
62
+
63
+ ```zsh
64
+ vimlm path/to/your_file
65
+ ```
66
+
67
+ This launches Vim with the LLM in a split window, ready to assist you.
68
+
69
+ ## Basic Usage
70
+
71
+ 1. **From Normal Mode**:
72
+ - `Ctrl-l`: Adds current line + file to context
73
+ - Example prompt: "Regex for removing html tags from item.content"
74
+
75
+ 2. **From Visual Mode**:
76
+ - Select code → `Ctrl-l`: Adds selected block + current file to context
77
+ - Example prompt: "Convert this to async/await syntax"
78
+
79
+ 3. **Inline Commands**:
80
+
81
+ !include: Adds specified outside files/folders to context:
82
+ - `!include` (no path): Current folder
83
+ - `!include ~/scrap/jph00/hypermedia-applications.summ.md`: Specific folder
84
+ - `!include ~/wtm/utils.py`: Specific file
85
+ - Example prompt: "AJAX-ify this app @ ~/scrap/jph00/hypermedia-applications.summ.md"
86
+
87
+ !deploy: Extract code blocks to files in user specified dir (current dir if none specified).
88
+
89
+ !continue: Lets the LLM resume the generation from where it had halted due to length limits.
90
+
91
+ !followup: Continue the thread (equivalent to `Ctrl-j`
92
+
93
+ 4. **Follow-Up**: After initial response:
94
+ - `Ctrl-j`: Continue thread
95
+ - Example follow-up: "In Manifest V3"
96
+
97
+ 4. **Code Extraction: Press `Ctrl-p` to choose a code block from the response and insert them into:
98
+ - The last selected visual block (in Normal mode)
99
+ - The current selection (in Visual mode)
100
+ - Example workflow:
101
+ 1. Select a block of code in Visual mode.
102
+ 2. Prompt the LLM with `Ctrl-l` (e.g., "Convert this to async/await syntax").
103
+ 3. Once the response is generated, press `Ctrl-p` to replace the selected block with the extracted code.
104
+
105
+ ### Key Bindings
106
+
107
+ | Binding | Mode | Action |
108
+ |------------|---------------|----------------------------------------|
109
+ | `Ctrl-l` | Normal/Visual | Send current file + selection to LLM |
110
+ | `Ctrl-j` | Normal | Continue conversation |
111
+ | `Ctrl-p` | Normal/Visual | Replace the selection with generated code |
112
+ | `Esc` | Prompt | Cancel input |
113
+
114
+ ## Advanced Configuration
115
+
116
+ VimLM uses a JSON config file with the following configurable parameters:
117
+
118
+ ```json
119
+ {
120
+ "DEBUG": true,
121
+ "LLM_MODEL": null,
122
+ "NUM_TOKEN": 2000,
123
+ "SEP_CMD": "!",
124
+ "USE_LEADER": false
125
+ }
126
+ ```
127
+
128
+ ### Custom Model Setup
129
+
130
+ 1. **Browse models**: [MLX Community Models on Hugging Face](https://huggingface.co/mlx-community)
131
+
132
+ 2. **Edit config file**:
133
+
134
+ ```json
135
+ {
136
+ "LLM_MODEL": "mlx-community/DeepSeek-R1-Distill-Qwen-7B-4bit"
137
+ }
138
+ ```
139
+ 3. **Save to**:
140
+
141
+ ```
142
+ ~/vimlm/config.json
143
+ ```
144
+
145
+ 4. **Restart VimLM**
146
+
147
+
148
+ ### Custom Keybinding
149
+
150
+ If you prefer using `<Leader>` in place of `<Ctrl>` for the ViMLM key bindings:
151
+
152
+ ```json
153
+ {
154
+ "USER_LEADER": true
155
+ }
156
+ ```
157
+
158
+
vimlm-0.0.6/README.md ADDED
@@ -0,0 +1,136 @@
1
+
2
+ # VimLM - Local LLM-Powered Coding Assistant for Vim
3
+
4
+ ![vimlm](https://raw.githubusercontent.com/JosefAlbers/VimLM/main/assets/captioned_vimlm.gif)
5
+
6
+ LLM-powered coding companion for Vim, inspired by GitHub Copilot/Cursor. Integrates contextual code understanding, summarization, and AI assistance directly into your Vim workflow.
7
+
8
+ ## Features
9
+
10
+ - **Model Agnostic** - Use any MLX-compatible model via a configuration file
11
+ - **Vim-Native UX** - Intuitive keybindings and split-window responses
12
+ - **Deep Context** - Understands code context from:
13
+ - Current file
14
+ - Visual selections
15
+ - Referenced files
16
+ - Project directory structure
17
+ - **Conversational Coding** - Iterative refinement with follow-up queries
18
+ - **Air-Gapped Security** - 100% offline - no APIs, no tracking, no data leaks
19
+
20
+ ## Requirements
21
+
22
+ - Apple M-series chip
23
+ - Python 3.12.8
24
+
25
+ ## Quick Start
26
+
27
+ Install:
28
+
29
+ ```zsh
30
+ pip install vimlm
31
+ ```
32
+
33
+ Launch:
34
+
35
+ ```zsh
36
+ vimlm
37
+ ```
38
+
39
+ or
40
+
41
+ ```zsh
42
+ vimlm path/to/your_file
43
+ ```
44
+
45
+ This launches Vim with the LLM in a split window, ready to assist you.
46
+
47
+ ## Basic Usage
48
+
49
+ 1. **From Normal Mode**:
50
+ - `Ctrl-l`: Adds current line + file to context
51
+ - Example prompt: "Regex for removing html tags from item.content"
52
+
53
+ 2. **From Visual Mode**:
54
+ - Select code → `Ctrl-l`: Adds selected block + current file to context
55
+ - Example prompt: "Convert this to async/await syntax"
56
+
57
+ 3. **Inline Commands**:
58
+
59
+ !include: Adds specified outside files/folders to context:
60
+ - `!include` (no path): Current folder
61
+ - `!include ~/scrap/jph00/hypermedia-applications.summ.md`: Specific folder
62
+ - `!include ~/wtm/utils.py`: Specific file
63
+ - Example prompt: "AJAX-ify this app @ ~/scrap/jph00/hypermedia-applications.summ.md"
64
+
65
+ !deploy: Extract code blocks to files in user specified dir (current dir if none specified).
66
+
67
+ !continue: Lets the LLM resume the generation from where it had halted due to length limits.
68
+
69
+ !followup: Continue the thread (equivalent to `Ctrl-j`
70
+
71
+ 4. **Follow-Up**: After initial response:
72
+ - `Ctrl-j`: Continue thread
73
+ - Example follow-up: "In Manifest V3"
74
+
75
+ 4. **Code Extraction: Press `Ctrl-p` to choose a code block from the response and insert them into:
76
+ - The last selected visual block (in Normal mode)
77
+ - The current selection (in Visual mode)
78
+ - Example workflow:
79
+ 1. Select a block of code in Visual mode.
80
+ 2. Prompt the LLM with `Ctrl-l` (e.g., "Convert this to async/await syntax").
81
+ 3. Once the response is generated, press `Ctrl-p` to replace the selected block with the extracted code.
82
+
83
+ ### Key Bindings
84
+
85
+ | Binding | Mode | Action |
86
+ |------------|---------------|----------------------------------------|
87
+ | `Ctrl-l` | Normal/Visual | Send current file + selection to LLM |
88
+ | `Ctrl-j` | Normal | Continue conversation |
89
+ | `Ctrl-p` | Normal/Visual | Replace the selection with generated code |
90
+ | `Esc` | Prompt | Cancel input |
91
+
92
+ ## Advanced Configuration
93
+
94
+ VimLM uses a JSON config file with the following configurable parameters:
95
+
96
+ ```json
97
+ {
98
+ "DEBUG": true,
99
+ "LLM_MODEL": null,
100
+ "NUM_TOKEN": 2000,
101
+ "SEP_CMD": "!",
102
+ "USE_LEADER": false
103
+ }
104
+ ```
105
+
106
+ ### Custom Model Setup
107
+
108
+ 1. **Browse models**: [MLX Community Models on Hugging Face](https://huggingface.co/mlx-community)
109
+
110
+ 2. **Edit config file**:
111
+
112
+ ```json
113
+ {
114
+ "LLM_MODEL": "mlx-community/DeepSeek-R1-Distill-Qwen-7B-4bit"
115
+ }
116
+ ```
117
+ 3. **Save to**:
118
+
119
+ ```
120
+ ~/vimlm/config.json
121
+ ```
122
+
123
+ 4. **Restart VimLM**
124
+
125
+
126
+ ### Custom Keybinding
127
+
128
+ If you prefer using `<Leader>` in place of `<Ctrl>` for the ViMLM key bindings:
129
+
130
+ ```json
131
+ {
132
+ "USER_LEADER": true
133
+ }
134
+ ```
135
+
136
+
@@ -5,7 +5,7 @@ with open("requirements.txt") as f:
5
5
 
6
6
  setup(
7
7
  name="vimlm",
8
- version="0.0.5",
8
+ version="0.0.6",
9
9
  author="Josef Albers",
10
10
  author_email="albersj66@gmail.com",
11
11
  readme='README.md',
@@ -0,0 +1,158 @@
1
+ Metadata-Version: 2.2
2
+ Name: vimlm
3
+ Version: 0.0.6
4
+ Summary: VimLM - LLM-powered Vim assistant
5
+ Home-page: https://github.com/JosefAlbers/vimlm
6
+ Author: Josef Albers
7
+ Author-email: albersj66@gmail.com
8
+ Requires-Python: >=3.12.8
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: nanollama==0.0.5
12
+ Requires-Dist: mlx_lm_utils==0.0.2
13
+ Requires-Dist: watchfiles==1.0.4
14
+ Dynamic: author
15
+ Dynamic: author-email
16
+ Dynamic: description
17
+ Dynamic: description-content-type
18
+ Dynamic: home-page
19
+ Dynamic: requires-dist
20
+ Dynamic: requires-python
21
+ Dynamic: summary
22
+
23
+
24
+ # VimLM - Local LLM-Powered Coding Assistant for Vim
25
+
26
+ ![vimlm](https://raw.githubusercontent.com/JosefAlbers/VimLM/main/assets/captioned_vimlm.gif)
27
+
28
+ LLM-powered coding companion for Vim, inspired by GitHub Copilot/Cursor. Integrates contextual code understanding, summarization, and AI assistance directly into your Vim workflow.
29
+
30
+ ## Features
31
+
32
+ - **Model Agnostic** - Use any MLX-compatible model via a configuration file
33
+ - **Vim-Native UX** - Intuitive keybindings and split-window responses
34
+ - **Deep Context** - Understands code context from:
35
+ - Current file
36
+ - Visual selections
37
+ - Referenced files
38
+ - Project directory structure
39
+ - **Conversational Coding** - Iterative refinement with follow-up queries
40
+ - **Air-Gapped Security** - 100% offline - no APIs, no tracking, no data leaks
41
+
42
+ ## Requirements
43
+
44
+ - Apple M-series chip
45
+ - Python 3.12.8
46
+
47
+ ## Quick Start
48
+
49
+ Install:
50
+
51
+ ```zsh
52
+ pip install vimlm
53
+ ```
54
+
55
+ Launch:
56
+
57
+ ```zsh
58
+ vimlm
59
+ ```
60
+
61
+ or
62
+
63
+ ```zsh
64
+ vimlm path/to/your_file
65
+ ```
66
+
67
+ This launches Vim with the LLM in a split window, ready to assist you.
68
+
69
+ ## Basic Usage
70
+
71
+ 1. **From Normal Mode**:
72
+ - `Ctrl-l`: Adds current line + file to context
73
+ - Example prompt: "Regex for removing html tags from item.content"
74
+
75
+ 2. **From Visual Mode**:
76
+ - Select code → `Ctrl-l`: Adds selected block + current file to context
77
+ - Example prompt: "Convert this to async/await syntax"
78
+
79
+ 3. **Inline Commands**:
80
+
81
+ !include: Adds specified outside files/folders to context:
82
+ - `!include` (no path): Current folder
83
+ - `!include ~/scrap/jph00/hypermedia-applications.summ.md`: Specific folder
84
+ - `!include ~/wtm/utils.py`: Specific file
85
+ - Example prompt: "AJAX-ify this app @ ~/scrap/jph00/hypermedia-applications.summ.md"
86
+
87
+ !deploy: Extract code blocks to files in user specified dir (current dir if none specified).
88
+
89
+ !continue: Lets the LLM resume the generation from where it had halted due to length limits.
90
+
91
+ !followup: Continue the thread (equivalent to `Ctrl-j`
92
+
93
+ 4. **Follow-Up**: After initial response:
94
+ - `Ctrl-j`: Continue thread
95
+ - Example follow-up: "In Manifest V3"
96
+
97
+ 4. **Code Extraction: Press `Ctrl-p` to choose a code block from the response and insert them into:
98
+ - The last selected visual block (in Normal mode)
99
+ - The current selection (in Visual mode)
100
+ - Example workflow:
101
+ 1. Select a block of code in Visual mode.
102
+ 2. Prompt the LLM with `Ctrl-l` (e.g., "Convert this to async/await syntax").
103
+ 3. Once the response is generated, press `Ctrl-p` to replace the selected block with the extracted code.
104
+
105
+ ### Key Bindings
106
+
107
+ | Binding | Mode | Action |
108
+ |------------|---------------|----------------------------------------|
109
+ | `Ctrl-l` | Normal/Visual | Send current file + selection to LLM |
110
+ | `Ctrl-j` | Normal | Continue conversation |
111
+ | `Ctrl-p` | Normal/Visual | Replace the selection with generated code |
112
+ | `Esc` | Prompt | Cancel input |
113
+
114
+ ## Advanced Configuration
115
+
116
+ VimLM uses a JSON config file with the following configurable parameters:
117
+
118
+ ```json
119
+ {
120
+ "DEBUG": true,
121
+ "LLM_MODEL": null,
122
+ "NUM_TOKEN": 2000,
123
+ "SEP_CMD": "!",
124
+ "USE_LEADER": false
125
+ }
126
+ ```
127
+
128
+ ### Custom Model Setup
129
+
130
+ 1. **Browse models**: [MLX Community Models on Hugging Face](https://huggingface.co/mlx-community)
131
+
132
+ 2. **Edit config file**:
133
+
134
+ ```json
135
+ {
136
+ "LLM_MODEL": "mlx-community/DeepSeek-R1-Distill-Qwen-7B-4bit"
137
+ }
138
+ ```
139
+ 3. **Save to**:
140
+
141
+ ```
142
+ ~/vimlm/config.json
143
+ ```
144
+
145
+ 4. **Restart VimLM**
146
+
147
+
148
+ ### Custom Keybinding
149
+
150
+ If you prefer using `<Leader>` in place of `<Ctrl>` for the ViMLM key bindings:
151
+
152
+ ```json
153
+ {
154
+ "USER_LEADER": true
155
+ }
156
+ ```
157
+
158
+
@@ -0,0 +1,3 @@
1
+ nanollama==0.0.5
2
+ mlx_lm_utils==0.0.2
3
+ watchfiles==1.0.4