atbash-hermes-plugin 0.4.5.dev1__tar.gz → 0.4.6.dev1__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atbash-hermes-plugin
3
- Version: 0.4.5.dev1
3
+ Version: 0.4.6.dev1
4
4
  Summary: Atbash safety plugin for Hermes Agent
5
5
  Author: atbash
6
6
  License-Expression: LicenseRef-Atbash-Proprietary
@@ -10,7 +10,7 @@ Keywords: atbash,hermes,hermes-agent,agent-safety,ai-safety,tool-guard,judge,pol
10
10
  Requires-Python: <3.13,>=3.9
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
- Requires-Dist: atbash-sdk==0.4.5.dev0
13
+ Requires-Dist: atbash-sdk==0.4.7.dev0
14
14
  Requires-Dist: httpx<1,>=0.27
15
15
  Requires-Dist: opentelemetry-exporter-otlp-proto-http<2,>=1.29
16
16
  Requires-Dist: opentelemetry-sdk<2,>=1.29
@@ -30,24 +30,38 @@ stopped before execution.
30
30
  - Intercepts Hermes tool calls through `pre_tool_call`.
31
31
  - Sends the tool name, arguments, command-like payload, session metadata, and
32
32
  inferred action class to Atbash.
33
- - Blocks tool execution on `BLOCK`, `DENY`, `REJECT`, `DISALLOW`, or `HOLD`.
33
+ - Blocks tool execution on `BLOCK`, `DENY`, `REJECT`, or `DISALLOW`; holds it for operator review on `HOLD`.
34
34
  - Persists learned Hermes tool classifications across sessions.
35
35
 
36
36
  ## Install
37
37
 
38
- Install the plugin into the same Python environment that runs Hermes.
39
- This prerelease requires Python 3.10 through 3.12, matching `atbash-sdk==0.4.3.dev0`.
38
+ Hermes manages its own Python environment. Install the plugin directly into it
39
+ do **not** use your system `pip` on macOS and some Linux distros it will be blocked by the OS.
40
+
41
+ **If you installed Hermes via the official install script (`curl … | bash`):**
40
42
 
41
43
  ```bash
42
- pip install --pre atbash-hermes-plugin==0.4.3.dev0
44
+ ~/.hermes/hermes-agent/venv/bin/pip3 install atbash-hermes-plugin
43
45
  ```
44
46
 
45
- If Hermes is installed in a virtual environment, use that environment's Python:
47
+ **If you installed Hermes via `uv`:**
46
48
 
47
49
  ```bash
48
- /path/to/hermes/venv/bin/python -m pip install --pre atbash-hermes-plugin==0.4.3.dev0
50
+ uv pip install --python ~/.hermes/hermes-agent/venv/bin/python atbash-hermes-plugin
49
51
  ```
50
52
 
53
+ To install the latest dev release, add `--pre` (pip) or `--prerelease=allow` (uv):
54
+
55
+ ```bash
56
+ # pip
57
+ ~/.hermes/hermes-agent/venv/bin/pip3 install --pre atbash-hermes-plugin
58
+
59
+ # uv
60
+ uv pip install --python ~/.hermes/hermes-agent/venv/bin/python --prerelease=allow atbash-hermes-plugin
61
+ ```
62
+
63
+ No further activation step is needed — Hermes discovers the plugin automatically on next start.
64
+
51
65
  ## Configure Atbash
52
66
 
53
67
  The plugin needs an Atbash agent key. Configure either `ATBASH_KEY_PATH` or
@@ -56,10 +70,10 @@ The plugin needs an Atbash agent key. Configure either `ATBASH_KEY_PATH` or
56
70
  Recommended:
57
71
 
58
72
  ```bash
59
- ATBASH_KEY_PATH=$HOME/.config/atbash/guard-client-key
73
+ ATBASH_KEY_PATH=~/.config/atbash/guard-client-key
60
74
  ```
61
75
 
62
- Alternative:
76
+ Alternative (paste the key JSON directly):
63
77
 
64
78
  ```bash
65
79
  ATBASH_AGENT_PRIVKEY='{"pubkey":"...","privkey":"..."}'
@@ -67,7 +81,7 @@ ATBASH_AGENT_PRIVKEY='{"pubkey":"...","privkey":"..."}'
67
81
 
68
82
  ## Where To Set Environment Variables
69
83
 
70
- Hermes commonly loads environment variables from `~/.hermes/.env`.
84
+ Hermes loads environment variables from `~/.hermes/.env`.
71
85
 
72
86
  Create or edit that file:
73
87
 
@@ -78,7 +92,7 @@ nano ~/.hermes/.env
78
92
  Add:
79
93
 
80
94
  ```bash
81
- ATBASH_KEY_PATH=$HOME/.config/atbash/guard-client-key
95
+ ATBASH_KEY_PATH=~/.config/atbash/guard-client-key
82
96
  ATBASH_ENFORCE_DECISION=true
83
97
  ATBASH_DEBUG=false
84
98
  ATBASH_ORG_NAME=your-org-name
@@ -118,7 +132,11 @@ ATBASH_DEBUG=false
118
132
  ATBASH_ORG_NAME=your-org-name
119
133
 
120
134
  # Override where learned Hermes tool classifications are saved.
121
- ATBASH_TOOL_MAP_PATH=$HOME/.config/atbash/hermes-tool-map.json
135
+ ATBASH_TOOL_MAP_PATH=~/.config/atbash/hermes-tool-map.json
136
+
137
+ # HTTP request timeout in seconds for judge API calls. Default: 30.
138
+ # Raise this if you see "read operation timed out" errors on a slow endpoint.
139
+ ATBASH_REQUEST_TIMEOUT=30
122
140
  ```
123
141
 
124
142
  ## Telemetry
@@ -136,19 +154,13 @@ printf '{"enabled": false}\n' > ~/.config/atbash/telemetry.json
136
154
 
137
155
  ## Enable Or Check The Plugin
138
156
 
139
- Hermes should discover installed Python packages that expose the
140
- `hermes_agent.plugins` entry point.
141
-
142
- Check whether Hermes sees the plugin:
143
-
144
- ```bash
145
- hermes plugins list | grep atbash
146
- ```
157
+ Hermes discovers the plugin automatically via Python entry points no manual
158
+ enable step is needed. Restarting Hermes after installation is sufficient.
147
159
 
148
- If needed, enable it:
160
+ To confirm the package is installed in the right environment:
149
161
 
150
162
  ```bash
151
- hermes plugins enable atbash-hermes-plugin
163
+ ~/.hermes/hermes-agent/venv/bin/pip3 show atbash-hermes-plugin
152
164
  ```
153
165
 
154
166
  ## Verify It Is Working
@@ -159,7 +171,7 @@ file or opening a website.
159
171
  In another terminal, watch the Hermes log:
160
172
 
161
173
  ```bash
162
- tail -f ~/.hermes/logs/agent.log
174
+ tail -f ~/.hermes/logs/agent.log | grep -i atbash
163
175
  ```
164
176
 
165
177
  With `ATBASH_DEBUG=true`, you should see lines similar to:
@@ -254,26 +266,24 @@ user to retry after review, rather than automatically re-running the action.
254
266
 
255
267
  ## Troubleshooting
256
268
 
257
- If Hermes does not show the plugin:
269
+ If the plugin is not being picked up, confirm it is installed in the Hermes
270
+ environment (not the system Python):
258
271
 
259
272
  ```bash
260
- hermes plugins list | grep atbash
261
- python -m pip show atbash-hermes-plugin
273
+ ~/.hermes/hermes-agent/venv/bin/pip3 show atbash-hermes-plugin
262
274
  ```
263
275
 
264
- Make sure the package was installed into the same Python environment that runs
265
- Hermes.
266
-
267
- If Atbash verdicts are not appearing in logs:
276
+ If Atbash verdicts are not appearing in logs, enable debug mode by adding this
277
+ to `~/.hermes/.env`:
268
278
 
269
279
  ```bash
270
280
  ATBASH_DEBUG=true
271
281
  ```
272
282
 
273
- Then restart Hermes and watch:
283
+ Then restart Hermes and watch in a second terminal:
274
284
 
275
285
  ```bash
276
- tail -f ~/.hermes/logs/agent.log
286
+ tail -f ~/.hermes/logs/agent.log | grep -i atbash
277
287
  ```
278
288
 
279
289
  If the plugin blocks everything with an unavailable-key or authentication error,
@@ -12,24 +12,38 @@ stopped before execution.
12
12
  - Intercepts Hermes tool calls through `pre_tool_call`.
13
13
  - Sends the tool name, arguments, command-like payload, session metadata, and
14
14
  inferred action class to Atbash.
15
- - Blocks tool execution on `BLOCK`, `DENY`, `REJECT`, `DISALLOW`, or `HOLD`.
15
+ - Blocks tool execution on `BLOCK`, `DENY`, `REJECT`, or `DISALLOW`; holds it for operator review on `HOLD`.
16
16
  - Persists learned Hermes tool classifications across sessions.
17
17
 
18
18
  ## Install
19
19
 
20
- Install the plugin into the same Python environment that runs Hermes.
21
- This prerelease requires Python 3.10 through 3.12, matching `atbash-sdk==0.4.3.dev0`.
20
+ Hermes manages its own Python environment. Install the plugin directly into it
21
+ do **not** use your system `pip` on macOS and some Linux distros it will be blocked by the OS.
22
+
23
+ **If you installed Hermes via the official install script (`curl … | bash`):**
22
24
 
23
25
  ```bash
24
- pip install --pre atbash-hermes-plugin==0.4.3.dev0
26
+ ~/.hermes/hermes-agent/venv/bin/pip3 install atbash-hermes-plugin
25
27
  ```
26
28
 
27
- If Hermes is installed in a virtual environment, use that environment's Python:
29
+ **If you installed Hermes via `uv`:**
28
30
 
29
31
  ```bash
30
- /path/to/hermes/venv/bin/python -m pip install --pre atbash-hermes-plugin==0.4.3.dev0
32
+ uv pip install --python ~/.hermes/hermes-agent/venv/bin/python atbash-hermes-plugin
31
33
  ```
32
34
 
35
+ To install the latest dev release, add `--pre` (pip) or `--prerelease=allow` (uv):
36
+
37
+ ```bash
38
+ # pip
39
+ ~/.hermes/hermes-agent/venv/bin/pip3 install --pre atbash-hermes-plugin
40
+
41
+ # uv
42
+ uv pip install --python ~/.hermes/hermes-agent/venv/bin/python --prerelease=allow atbash-hermes-plugin
43
+ ```
44
+
45
+ No further activation step is needed — Hermes discovers the plugin automatically on next start.
46
+
33
47
  ## Configure Atbash
34
48
 
35
49
  The plugin needs an Atbash agent key. Configure either `ATBASH_KEY_PATH` or
@@ -38,10 +52,10 @@ The plugin needs an Atbash agent key. Configure either `ATBASH_KEY_PATH` or
38
52
  Recommended:
39
53
 
40
54
  ```bash
41
- ATBASH_KEY_PATH=$HOME/.config/atbash/guard-client-key
55
+ ATBASH_KEY_PATH=~/.config/atbash/guard-client-key
42
56
  ```
43
57
 
44
- Alternative:
58
+ Alternative (paste the key JSON directly):
45
59
 
46
60
  ```bash
47
61
  ATBASH_AGENT_PRIVKEY='{"pubkey":"...","privkey":"..."}'
@@ -49,7 +63,7 @@ ATBASH_AGENT_PRIVKEY='{"pubkey":"...","privkey":"..."}'
49
63
 
50
64
  ## Where To Set Environment Variables
51
65
 
52
- Hermes commonly loads environment variables from `~/.hermes/.env`.
66
+ Hermes loads environment variables from `~/.hermes/.env`.
53
67
 
54
68
  Create or edit that file:
55
69
 
@@ -60,7 +74,7 @@ nano ~/.hermes/.env
60
74
  Add:
61
75
 
62
76
  ```bash
63
- ATBASH_KEY_PATH=$HOME/.config/atbash/guard-client-key
77
+ ATBASH_KEY_PATH=~/.config/atbash/guard-client-key
64
78
  ATBASH_ENFORCE_DECISION=true
65
79
  ATBASH_DEBUG=false
66
80
  ATBASH_ORG_NAME=your-org-name
@@ -100,7 +114,11 @@ ATBASH_DEBUG=false
100
114
  ATBASH_ORG_NAME=your-org-name
101
115
 
102
116
  # Override where learned Hermes tool classifications are saved.
103
- ATBASH_TOOL_MAP_PATH=$HOME/.config/atbash/hermes-tool-map.json
117
+ ATBASH_TOOL_MAP_PATH=~/.config/atbash/hermes-tool-map.json
118
+
119
+ # HTTP request timeout in seconds for judge API calls. Default: 30.
120
+ # Raise this if you see "read operation timed out" errors on a slow endpoint.
121
+ ATBASH_REQUEST_TIMEOUT=30
104
122
  ```
105
123
 
106
124
  ## Telemetry
@@ -118,19 +136,13 @@ printf '{"enabled": false}\n' > ~/.config/atbash/telemetry.json
118
136
 
119
137
  ## Enable Or Check The Plugin
120
138
 
121
- Hermes should discover installed Python packages that expose the
122
- `hermes_agent.plugins` entry point.
123
-
124
- Check whether Hermes sees the plugin:
125
-
126
- ```bash
127
- hermes plugins list | grep atbash
128
- ```
139
+ Hermes discovers the plugin automatically via Python entry points no manual
140
+ enable step is needed. Restarting Hermes after installation is sufficient.
129
141
 
130
- If needed, enable it:
142
+ To confirm the package is installed in the right environment:
131
143
 
132
144
  ```bash
133
- hermes plugins enable atbash-hermes-plugin
145
+ ~/.hermes/hermes-agent/venv/bin/pip3 show atbash-hermes-plugin
134
146
  ```
135
147
 
136
148
  ## Verify It Is Working
@@ -141,7 +153,7 @@ file or opening a website.
141
153
  In another terminal, watch the Hermes log:
142
154
 
143
155
  ```bash
144
- tail -f ~/.hermes/logs/agent.log
156
+ tail -f ~/.hermes/logs/agent.log | grep -i atbash
145
157
  ```
146
158
 
147
159
  With `ATBASH_DEBUG=true`, you should see lines similar to:
@@ -236,26 +248,24 @@ user to retry after review, rather than automatically re-running the action.
236
248
 
237
249
  ## Troubleshooting
238
250
 
239
- If Hermes does not show the plugin:
251
+ If the plugin is not being picked up, confirm it is installed in the Hermes
252
+ environment (not the system Python):
240
253
 
241
254
  ```bash
242
- hermes plugins list | grep atbash
243
- python -m pip show atbash-hermes-plugin
255
+ ~/.hermes/hermes-agent/venv/bin/pip3 show atbash-hermes-plugin
244
256
  ```
245
257
 
246
- Make sure the package was installed into the same Python environment that runs
247
- Hermes.
248
-
249
- If Atbash verdicts are not appearing in logs:
258
+ If Atbash verdicts are not appearing in logs, enable debug mode by adding this
259
+ to `~/.hermes/.env`:
250
260
 
251
261
  ```bash
252
262
  ATBASH_DEBUG=true
253
263
  ```
254
264
 
255
- Then restart Hermes and watch:
265
+ Then restart Hermes and watch in a second terminal:
256
266
 
257
267
  ```bash
258
- tail -f ~/.hermes/logs/agent.log
268
+ tail -f ~/.hermes/logs/agent.log | grep -i atbash
259
269
  ```
260
270
 
261
271
  If the plugin blocks everything with an unavailable-key or authentication error,
@@ -554,9 +554,10 @@ class AtbashHermesGuard:
554
554
  self.endpoint = os.getenv("ATBASH_ENDPOINT")
555
555
  self.judge_endpoint_policy = os.getenv("ATBASH_JUDGE_ENDPOINT_POLICY")
556
556
  self.judge_verify_pubkey = os.getenv("ATBASH_JUDGE_VERIFY_PUBKEY")
557
- self.key_path = os.getenv("ATBASH_KEY_PATH")
557
+ self.key_path = os.path.expandvars(os.path.expanduser(os.getenv("ATBASH_KEY_PATH") or "")) or None
558
558
  self.privkey = os.getenv("ATBASH_AGENT_PRIVKEY")
559
559
  self.org_name = os.getenv("ATBASH_ORG_NAME")
560
+ self.request_timeout = float(os.getenv("ATBASH_REQUEST_TIMEOUT") or 30.0)
560
561
  self.provider = os.getenv("HERMES_PROVIDER")
561
562
  self.model = os.getenv("HERMES_MODEL")
562
563
  self.tool_map_path = Path(
@@ -612,6 +613,7 @@ class AtbashHermesGuard:
612
613
  judge=judge_cfg,
613
614
  org_name=self.org_name,
614
615
  fail_closed=self.fail_closed,
616
+ timeout=self.request_timeout,
615
617
  )
616
618
  except TypeError:
617
619
  kwargs: Dict[str, Any] = {
@@ -630,6 +632,7 @@ class AtbashHermesGuard:
630
632
  judge=judge_cfg,
631
633
  org_name=self.org_name,
632
634
  fail_closed=self.fail_closed,
635
+ timeout=self.request_timeout,
633
636
  )
634
637
 
635
638
  def _judge_config(self) -> Optional[Dict[str, str]]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atbash-hermes-plugin
3
- Version: 0.4.5.dev1
3
+ Version: 0.4.6.dev1
4
4
  Summary: Atbash safety plugin for Hermes Agent
5
5
  Author: atbash
6
6
  License-Expression: LicenseRef-Atbash-Proprietary
@@ -10,7 +10,7 @@ Keywords: atbash,hermes,hermes-agent,agent-safety,ai-safety,tool-guard,judge,pol
10
10
  Requires-Python: <3.13,>=3.9
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
- Requires-Dist: atbash-sdk==0.4.5.dev0
13
+ Requires-Dist: atbash-sdk==0.4.7.dev0
14
14
  Requires-Dist: httpx<1,>=0.27
15
15
  Requires-Dist: opentelemetry-exporter-otlp-proto-http<2,>=1.29
16
16
  Requires-Dist: opentelemetry-sdk<2,>=1.29
@@ -30,24 +30,38 @@ stopped before execution.
30
30
  - Intercepts Hermes tool calls through `pre_tool_call`.
31
31
  - Sends the tool name, arguments, command-like payload, session metadata, and
32
32
  inferred action class to Atbash.
33
- - Blocks tool execution on `BLOCK`, `DENY`, `REJECT`, `DISALLOW`, or `HOLD`.
33
+ - Blocks tool execution on `BLOCK`, `DENY`, `REJECT`, or `DISALLOW`; holds it for operator review on `HOLD`.
34
34
  - Persists learned Hermes tool classifications across sessions.
35
35
 
36
36
  ## Install
37
37
 
38
- Install the plugin into the same Python environment that runs Hermes.
39
- This prerelease requires Python 3.10 through 3.12, matching `atbash-sdk==0.4.3.dev0`.
38
+ Hermes manages its own Python environment. Install the plugin directly into it
39
+ do **not** use your system `pip` on macOS and some Linux distros it will be blocked by the OS.
40
+
41
+ **If you installed Hermes via the official install script (`curl … | bash`):**
40
42
 
41
43
  ```bash
42
- pip install --pre atbash-hermes-plugin==0.4.3.dev0
44
+ ~/.hermes/hermes-agent/venv/bin/pip3 install atbash-hermes-plugin
43
45
  ```
44
46
 
45
- If Hermes is installed in a virtual environment, use that environment's Python:
47
+ **If you installed Hermes via `uv`:**
46
48
 
47
49
  ```bash
48
- /path/to/hermes/venv/bin/python -m pip install --pre atbash-hermes-plugin==0.4.3.dev0
50
+ uv pip install --python ~/.hermes/hermes-agent/venv/bin/python atbash-hermes-plugin
49
51
  ```
50
52
 
53
+ To install the latest dev release, add `--pre` (pip) or `--prerelease=allow` (uv):
54
+
55
+ ```bash
56
+ # pip
57
+ ~/.hermes/hermes-agent/venv/bin/pip3 install --pre atbash-hermes-plugin
58
+
59
+ # uv
60
+ uv pip install --python ~/.hermes/hermes-agent/venv/bin/python --prerelease=allow atbash-hermes-plugin
61
+ ```
62
+
63
+ No further activation step is needed — Hermes discovers the plugin automatically on next start.
64
+
51
65
  ## Configure Atbash
52
66
 
53
67
  The plugin needs an Atbash agent key. Configure either `ATBASH_KEY_PATH` or
@@ -56,10 +70,10 @@ The plugin needs an Atbash agent key. Configure either `ATBASH_KEY_PATH` or
56
70
  Recommended:
57
71
 
58
72
  ```bash
59
- ATBASH_KEY_PATH=$HOME/.config/atbash/guard-client-key
73
+ ATBASH_KEY_PATH=~/.config/atbash/guard-client-key
60
74
  ```
61
75
 
62
- Alternative:
76
+ Alternative (paste the key JSON directly):
63
77
 
64
78
  ```bash
65
79
  ATBASH_AGENT_PRIVKEY='{"pubkey":"...","privkey":"..."}'
@@ -67,7 +81,7 @@ ATBASH_AGENT_PRIVKEY='{"pubkey":"...","privkey":"..."}'
67
81
 
68
82
  ## Where To Set Environment Variables
69
83
 
70
- Hermes commonly loads environment variables from `~/.hermes/.env`.
84
+ Hermes loads environment variables from `~/.hermes/.env`.
71
85
 
72
86
  Create or edit that file:
73
87
 
@@ -78,7 +92,7 @@ nano ~/.hermes/.env
78
92
  Add:
79
93
 
80
94
  ```bash
81
- ATBASH_KEY_PATH=$HOME/.config/atbash/guard-client-key
95
+ ATBASH_KEY_PATH=~/.config/atbash/guard-client-key
82
96
  ATBASH_ENFORCE_DECISION=true
83
97
  ATBASH_DEBUG=false
84
98
  ATBASH_ORG_NAME=your-org-name
@@ -118,7 +132,11 @@ ATBASH_DEBUG=false
118
132
  ATBASH_ORG_NAME=your-org-name
119
133
 
120
134
  # Override where learned Hermes tool classifications are saved.
121
- ATBASH_TOOL_MAP_PATH=$HOME/.config/atbash/hermes-tool-map.json
135
+ ATBASH_TOOL_MAP_PATH=~/.config/atbash/hermes-tool-map.json
136
+
137
+ # HTTP request timeout in seconds for judge API calls. Default: 30.
138
+ # Raise this if you see "read operation timed out" errors on a slow endpoint.
139
+ ATBASH_REQUEST_TIMEOUT=30
122
140
  ```
123
141
 
124
142
  ## Telemetry
@@ -136,19 +154,13 @@ printf '{"enabled": false}\n' > ~/.config/atbash/telemetry.json
136
154
 
137
155
  ## Enable Or Check The Plugin
138
156
 
139
- Hermes should discover installed Python packages that expose the
140
- `hermes_agent.plugins` entry point.
141
-
142
- Check whether Hermes sees the plugin:
143
-
144
- ```bash
145
- hermes plugins list | grep atbash
146
- ```
157
+ Hermes discovers the plugin automatically via Python entry points no manual
158
+ enable step is needed. Restarting Hermes after installation is sufficient.
147
159
 
148
- If needed, enable it:
160
+ To confirm the package is installed in the right environment:
149
161
 
150
162
  ```bash
151
- hermes plugins enable atbash-hermes-plugin
163
+ ~/.hermes/hermes-agent/venv/bin/pip3 show atbash-hermes-plugin
152
164
  ```
153
165
 
154
166
  ## Verify It Is Working
@@ -159,7 +171,7 @@ file or opening a website.
159
171
  In another terminal, watch the Hermes log:
160
172
 
161
173
  ```bash
162
- tail -f ~/.hermes/logs/agent.log
174
+ tail -f ~/.hermes/logs/agent.log | grep -i atbash
163
175
  ```
164
176
 
165
177
  With `ATBASH_DEBUG=true`, you should see lines similar to:
@@ -254,26 +266,24 @@ user to retry after review, rather than automatically re-running the action.
254
266
 
255
267
  ## Troubleshooting
256
268
 
257
- If Hermes does not show the plugin:
269
+ If the plugin is not being picked up, confirm it is installed in the Hermes
270
+ environment (not the system Python):
258
271
 
259
272
  ```bash
260
- hermes plugins list | grep atbash
261
- python -m pip show atbash-hermes-plugin
273
+ ~/.hermes/hermes-agent/venv/bin/pip3 show atbash-hermes-plugin
262
274
  ```
263
275
 
264
- Make sure the package was installed into the same Python environment that runs
265
- Hermes.
266
-
267
- If Atbash verdicts are not appearing in logs:
276
+ If Atbash verdicts are not appearing in logs, enable debug mode by adding this
277
+ to `~/.hermes/.env`:
268
278
 
269
279
  ```bash
270
280
  ATBASH_DEBUG=true
271
281
  ```
272
282
 
273
- Then restart Hermes and watch:
283
+ Then restart Hermes and watch in a second terminal:
274
284
 
275
285
  ```bash
276
- tail -f ~/.hermes/logs/agent.log
286
+ tail -f ~/.hermes/logs/agent.log | grep -i atbash
277
287
  ```
278
288
 
279
289
  If the plugin blocks everything with an unavailable-key or authentication error,
@@ -1,4 +1,4 @@
1
- atbash-sdk==0.4.5.dev0
1
+ atbash-sdk==0.4.7.dev0
2
2
  httpx<1,>=0.27
3
3
  opentelemetry-exporter-otlp-proto-http<2,>=1.29
4
4
  opentelemetry-sdk<2,>=1.29
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "atbash-hermes-plugin"
7
- version = "0.4.5.dev1"
7
+ version = "0.4.6.dev1"
8
8
  description = "Atbash safety plugin for Hermes Agent"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9,<3.13"
@@ -24,7 +24,7 @@ keywords = [
24
24
  "policy"
25
25
  ]
26
26
  dependencies = [
27
- "atbash-sdk==0.4.5.dev0",
27
+ "atbash-sdk==0.4.7.dev0",
28
28
  "httpx>=0.27,<1",
29
29
  "opentelemetry-exporter-otlp-proto-http>=1.29,<2",
30
30
  "opentelemetry-sdk>=1.29,<2",