Local shell skill mount with the Python SDK
Local shell skill mount with the Python SDK.
The request mounts a local skill directory under skills/invoice-auditor/.
Run with: pip install -e mistralrs-pyo3 —features code-execution python examples/python/shell_skills.py
"""Local shell skill mount with the Python SDK.
The request mounts a local skill directory under `skills/invoice-auditor/`.
Run with: pip install -e mistralrs-pyo3 --features code-execution python examples/python/shell_skills.py"""
from pathlib import Pathimport tempfile
from mistralrs import ChatCompletionRequest, Runner, ShellConfig, ShellSkillMount, Which
def write_invoice_skill(root: Path) -> Path: skill_dir = root / "invoice-auditor" skill_dir.mkdir() (skill_dir / "SKILL.md").write_text( """---name: invoice-auditordescription: Checks invoice line items and totals with a local Python helper.---
# Invoice Auditor
Use `python3 skills/invoice-auditor/check_invoice.py skills/invoice-auditor/invoice.csv`to validate the bundled invoice. Report whether the declared total matches thesum of the line items.""", encoding="utf-8", ) (skill_dir / "invoice.csv").write_text( """item,amounthosting,25.00storage,12.50support,17.50declared_total,55.00""", encoding="utf-8", ) (skill_dir / "check_invoice.py").write_text( """import csvimport sys
with open(sys.argv[1], newline="") as handle: rows = list(csv.DictReader(handle))
declared = float(rows[-1]["amount"])line_total = sum(float(row["amount"]) for row in rows[:-1])print(f"line_total={line_total:.2f}")print(f"declared_total={declared:.2f}")print("status=match" if line_total == declared else "status=mismatch")""", encoding="utf-8", ) return skill_dir
def main(): runner = Runner( which=Which.Plain(model_id="Qwen/Qwen3-4B"), shell_config=ShellConfig(), )
with tempfile.TemporaryDirectory() as temp_dir: skill_dir = write_invoice_skill(Path(temp_dir)) response = runner.send_chat_completion_request( ChatCompletionRequest( model="default", messages=[ { "role": "user", "content": "Use the invoice-auditor skill to check the bundled invoice.", } ], shell_skills=[ ShellSkillMount( name="invoice-auditor", description="Checks invoice line items and totals with a local Python helper.", source_path=skill_dir, ) ], max_tool_rounds=6, ) )
for choice in response.choices: print(choice.message.content)
if __name__ == "__main__": main()Source: examples/python/shell_skills.py