Model or dataset
pchalasani/claude-code-tools avatar
pchalasani/claude-code-tools

claude-code-tools: A Python Suite for Claude Code and Codex-CLI Workflows

Practical productivity tools for Claude Code, Codex-CLI, and similar CLI coding agents.

2,008 stars134 forksPythonMIT

At a glance

What is it?
pchalasani/claude-code-tools bundles session management, tmux control, secret handling, and inter-agent messaging into one installable Python package. It is a power-user toolkit, not a single-purpose utility, and its documentation lives almost entirely on an external docs site.
Who is it for?
Adopt claude-code-tools if you already run Claude Code or Codex-CLI in a terminal and want session porting, tmux control, or secret handling without writing your own glue. Skip it if you want a single narrow utility or if you depend on the README alone, since the README is a card grid pointing at an external documentation site.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The gap claude-code-tools fills for terminal coding agents

Claude Code and Codex-CLI are interactive terminal programs. They hold a conversation, run commands, and keep session state. What they do not ship with is a standard way to move a session between agents, drive them from a second terminal pane, or keep API keys out of the shell history. That is the space this repository occupies. Its own description calls it "Practical productivity tools for Claude Code, Codex-CLI, and similar CLI coding agents," and the topic list adds claude-code, codex-cli, tmux, and context alongside llm and cli-agent.

The audience is narrow and specific: engineers who already live in a terminal, run more than one coding agent, and are willing to install a Python package and configure hooks or plugins to get more out of them. Someone who uses Claude Code occasionally through an editor integration is not the target. The suite assumes you treat the agent as a process you can script around.

What is actually in the box: a suite, not a tool

The pyproject.toml file lists a long set of console scripts, and that list is the clearest statement of scope. Session work routes through a single entry point: aichat. Everything else is a separate command. vault handles dotenv secrets, tmux-cli and amux drive tmux, env-safe guards environment variables, fix-session repairs broken sessions, msg and msg-hook provide inter-agent communication, agent-tunnel and github-wake handle the networking side, and md2gdoc, gdoc2md, gdoc2docx, csv2gsheet and gsheet2csv cover document conversion.

The repository layout confirms this is a multi-surface project. Top-level directories include claude_code_tools/ (the Python package), lmsh/, node_ui/, packages/, plugins/, rust-search-ui/, docs/, docs-site/ and tests/. There is a Makefile with release targets for several independently versioned components, including voxtype, visual-brief and aichat-search. The practical consequence is that "claude-code-tools" names a family of things with different install paths, not one binary.

How the pieces fit together: entry points, plugins, and hooks

The architecture visible in the repository is a Python package exposing many console scripts, plus a plugin and hook layer that the coding agent itself loads. The .claude-plugin/ directory at the repository root, together with plugins/ and the docs cards for safety-hooks and voice, indicates that some behaviour is delivered as agent plugins rather than as shell commands. The msg-hook entry point in pyproject.toml is the same idea on the Python side: a script designed to be invoked by the agent's hook system rather than typed by a human.

Dependencies tell you what the tools lean on. claude-agent-sdk and mcp are direct dependencies, so the suite builds on the agent SDK and the Model Context Protocol rather than reimplementing them. tantivy appears as a dependency, which points at local full-text search, consistent with the aichat-search component referenced in the README badges and the rust-search-ui/ directory. discord.py is also a dependency, which is a reminder that the scope extends past the terminal into chat surfaces.

This is a design where the agent, not the user, is often the caller. Hooks and plugins run inside a session that is already in progress, which is why fix-session and env-safe exist at all: once you let an agent drive your shell, recovery and guardrails become first-class concerns.

Installing claude-code-tools and running a first command

The README states that installation, every tool, plugins and guides all live in the external documentation site at pchalasani.github.io/claude-code-tools, and it links a getting-started page. The package itself is published to PyPI as claude-code-tools, and requires Python 3.11 or newer. The Makefile also documents an editable install for development work.

For working on the repository itself, the Makefile help text describes an editable install. Note that the aichat menus need the node_ui/ npm dependencies, which the Makefile exposes as a separate target.

bash
make install
make node-ui-deps

After installation, the session commands are all reachable through the aichat entry point. The pyproject.toml comment is explicit: "All session commands accessible via: aichat <subcommand>". Running the command with no arguments is the way to discover the subcommand list.

bash
aichat

Non-session utilities install as their own commands. If you need secret handling, the vault script is available directly. The README does not document the arguments for these scripts, so check the external docs before relying on them.

bash
vault

One optional extra is defined in pyproject.toml. The gdocs extra pulls in the Google API client, google-auth-oauthlib and Pillow, which is what the document conversion commands need.

bash
make install-gdocs

Voice dictation is deliberately not an extra. The pyproject.toml comment states that voxtype is a standalone package and should be installed directly with uv tool install voxtype.

Where claude-code-tools gets in your way

The README is a wall of images linking to an external site. It contains no installation commands, no usage examples, and no configuration reference. Everything substantive is off-repository, which means the README alone is not enough to evaluate or operate the suite. If the documentation site is unavailable or out of step with the released version, you are reading source code.

The dependency list is heavy for a productivity toolkit. Installing the base package brings in the agent SDK, MCP, tantivy, discord.py, rich, questionary, pytest and commitizen. That is a lot of surface area for someone who only wants tmux control. The Python floor of 3.11 also rules out older interpreters, and the presence of both a node_ui/ directory and a rust-search-ui/ directory means some features have toolchain requirements beyond pip.

The release cadence is fast. Three releases landed within two days in early September 2026, v1.26.5 through v1.27.1, and the last push to main was on 2026-09-07. Frequent releases are not a defect, but they do mean the documentation can lag the code, and pinning a version is the safer choice for anything you depend on.

Finally, several components are versioned and released separately through the Makefile, including voxtype, visual-brief and aichat-search. A single "version" for claude-code-tools does not describe the state of the whole family, so upgrade planning has to account for more than one artifact.

claude-code-tools versus MCP servers and agent skills

The most natural comparison is with an MCP server. MCP is a protocol for exposing tools and resources to a model, and claude-code-tools depends on the mcp package rather than competing with it. An MCP server gives the agent a capability it can call during a conversation. claude-code-tools mostly gives you commands you run yourself, plus hooks and plugins that run inside the agent's lifecycle. The overlap is real but the layer is different: MCP is the interface, this suite is a set of applications built on top of the agent ecosystem.

The second comparison is with skills and plugins as a packaging format. A skill is content the agent loads to change how it behaves. Several items here ship that way, which is why .claude-plugin/ and plugins/ exist at the top level. But the suite also ships plain console scripts like vault, tmux-cli and fix-session that have nothing to do with agent behaviour. Choosing between the two is really choosing between extending the agent and operating around it. claude-code-tools does both, and that breadth is the honest reason to pick it over a single-purpose alternative.

Licence and upgrade cost

The repository is MIT licensed. For practical purposes that means you can use, modify and redistribute the code, including in commercial settings, provided the licence text and copyright notice are preserved. This is a general description of the MIT terms as they apply to this repository, not legal advice; read the LICENSE file at the repository root if the distinction matters to your organisation.

Upgrade cost is the more interesting question. Because the suite bundles independently released components, upgrading the Python package does not necessarily upgrade everything you use. The Makefile has separate version, build, release and publish targets for voxtype, visual-brief and aichat-search, and voxtype is explicitly not an extra of the suite. If you rely on voxtype, you are tracking a second package with its own release cycle. The same logic applies to anything installed from packages/ rather than from PyPI.

Editorial conclusion

Adopt claude-code-tools if you already run Claude Code or Codex-CLI in a terminal and want session porting, tmux control, or secret handling without writing your own glue. Skip it if you want a single narrow utility or if you depend on the README alone, since the README is a card grid pointing at an external documentation site. Verify first that the Python requirement (>=3.11) matches your environment and that the console scripts you need actually appear in pyproject.toml after install.

Frequently asked questions

What is claude-code-tools?

It is a Python package of CLI tools, skills, agents, hooks and plugins for Claude Code, Codex-CLI and similar CLI coding agents, published on PyPI as claude-code-tools and licensed under MIT.

How do I use claude-code-tools?

Session commands are all reached through the aichat entry point, as the pyproject.toml comment states: aichat <subcommand>. Non-session utilities such as vault, tmux-cli and fix-session install as their own commands. Detailed usage lives on the external documentation site, not in the README.

How is claude-code-tools different from MCP?

They operate at different layers. MCP is a protocol for exposing tools to a model, and claude-code-tools depends on the mcp package rather than replacing it. The suite provides console commands plus hooks and plugins that run inside the agent's lifecycle.

Is Claude Code a free tool?

The repository does not address Claude Code's pricing. claude-code-tools itself is MIT licensed and published on PyPI, but the material says nothing about what the underlying coding agent costs.

Is Claude Code a good tool?

The repository does not evaluate Claude Code itself. It treats Claude Code and Codex-CLI as the environments its tools plug into, and its own description frames the suite as productivity tools for those agents.

Official sources

  1. Issues
  2. License: MIT
  3. pchalasani/claude-code-tools on GitHub
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/pchalasani-claude-code-tools.svg)](https://hysenlabs.com/projects/pchalasani-claude-code-tools)