Skip to content

Chak 0.3.1 Release Notes

Choose a tag to compare

@zhixiangxue zhixiangxue released this 09 Apr 08:14
· 32 commits to main since this release

Breaking Change — Human-in-the-Loop upgrade

tool_approval_handler has been replaced by hitl_handler. The old handler returned a plain bool; the new one returns HITLDecision, giving you three control paths:

  • HITLDecision.allow() — proceed unchanged
  • HITLDecision.allow(overrides={...}) — proceed with argument rewrites
  • HITLDecision.abort() — cancel the tool call; the LLM receives a cancellation notice

Migration: replace async def handler(approval) -> bool with async def handler(request: HITLRequest) -> HITLDecision.

New — Built-in execution tools

Two new built-in tools ship with chak.tools.exec:

  • Bash — run any shell command
  • Python — write and execute inline Python code (code interpreter)

Both tools print a security warning on instantiation, since they execute with host-process permissions.

New — ClaudeSkill

Native integration for Anthropic Agent Skills. Point ClaudeSkill at any skill directory and the LLM gains access to its SKILL.md documentation and supporting scripts. Combine with Bash and Python for full agentic execution.

from chak.tools.exec import Bash, Python
from chak.tools.skills import ClaudeSkill

conv = chak.Conversation(
    "openai/gpt-4o",
    api_key="...",
    tools=[ClaudeSkill("./skills/pdf"), Bash(), Python()],
)