@@ -187,3 +187,54 @@ template renders tool definitions, and the server converts Muse Glimmer 30B ATEM
187187output into OpenAI-compatible ` tool_calls ` . See
188188[ ` serving/tool_parsers/atem.py ` ] ( serving/tool_parsers/atem.py ) and
189189[ ` tests/test_atem_tool_parser.py ` ] ( tests/test_atem_tool_parser.py ) .
190+
191+ ### Use from pi
192+
193+ Point pi at the server via ` ~/.pi/agent/models.json ` :
194+
195+ ``` json
196+ {
197+ "providers" : {
198+ "muse-glimmer-local" : {
199+ "baseUrl" : " http://127.0.0.1:8000/v1" ,
200+ "api" : " openai-completions" ,
201+ "apiKey" : " x" ,
202+ "models" : [
203+ {
204+ "id" : " muse-glimmer-30B" ,
205+ "reasoning" : true ,
206+ "contextWindow" : 131072 ,
207+ "maxTokens" : 32768 ,
208+ "compat" : {
209+ "supportsDeveloperRole" : false ,
210+ "supportsReasoningEffort" : false ,
211+ "thinkingFormat" : " chat-template" ,
212+ "chatTemplateKwargs" : { "return_reasoning" : true },
213+ "sendSessionAffinityHeaders" : true
214+ }
215+ }
216+ ]
217+ }
218+ }
219+ }
220+ ```
221+
222+ ``` bash
223+ pi --provider muse-glimmer-local \
224+ --model muse-glimmer-30B \
225+ --thinking high \
226+ --tools read,bash,edit,write
227+ ```
228+
229+ The model id must match ` --model-id ` . The ` compat ` entries:
230+
231+ - ` supportsDeveloperRole ` — the template renders no ` developer ` turn, so pi's
232+ system prompt is otherwise dropped silently.
233+ - ` supportsReasoningEffort ` — the server rejects ` reasoning_effort ` with a 400.
234+ - ` return_reasoning ` — returns the ` to=self ` channel as ` reasoning_content ` .
235+ - ` sendSessionAffinityHeaders ` — optional, for per-conversation sessions; needs
236+ ` --max-sessions ` above 1.
237+
238+ Set ` contextWindow ` to the export's context length (` 128K ` is 131072) and pass
239+ the same value as ` --max-context ` . Add ` "input": ["text", "image"] ` for a vision
240+ export.
0 commit comments