mono/packages/ai-tools
2025-02-20 21:09:49 +01:00
..
dist kbot hopp hopp 2025-02-20 21:09:49 +01:00
scripts kbot esm 1/3 2025-02-20 14:44:05 +01:00
src kbot works :) 2025-02-20 21:02:11 +01:00
tests kbot esm 1/3 2025-02-20 14:44:05 +01:00
.gitignore kbot esm 1/3 2025-02-20 14:44:05 +01:00
.npmignore kbot esm 1/3 2025-02-20 14:44:05 +01:00
history.json kbot esm 1/3 2025-02-20 14:44:05 +01:00
LICENSE kbot esm 1/3 2025-02-20 14:44:05 +01:00
llm-tools.json kbot esm 1/3 2025-02-20 14:44:05 +01:00
openai.md kbot esm 1/3 2025-02-20 14:44:05 +01:00
package-lock.json kat babe love :) 2025-02-20 19:44:08 +01:00
package.json kat babe love :) 2025-02-20 19:44:08 +01:00
query.json kbot esm 1/3 2025-02-20 14:44:05 +01:00
README.md kbot esm 1/3 2025-02-20 14:44:05 +01:00
schema_ui.json kbot esm 1/3 2025-02-20 14:44:05 +01:00
schema.json kbot esm 1/3 2025-02-20 14:44:05 +01:00
stats.json kbot esm 1/3 2025-02-20 14:44:05 +01:00
tools-template.md kbot esm 1/3 2025-02-20 14:44:05 +01:00
tools.json kbot esm 1/3 2025-02-20 14:44:05 +01:00
tools.json.md kbot esm 1/3 2025-02-20 14:44:05 +01:00
tools.md kbot esm 1/3 2025-02-20 14:44:05 +01:00
tsconfig.json ai-tools esm 2/3 2025-02-20 15:09:51 +01:00
tsup.config.ts ai-tools esm 2/3 2025-02-20 15:09:51 +01:00

LLM Tools CLI

Command-line interface and library for LLM tools providing filesystem, npm, git, terminal, interactive user, and screen capture operations.

Setup

  1. Install dependencies:
pnpm install
  1. Build the project:
pnpm run build
  1. Configure environment: Either set environment variable:
export OPENAI_API_KEY=your-key-here

Or create a configuration file (e.g. .env.dev.json):

{
  "openai": {
    "key": "your-key-here"
  }
}

Then use with --env_key parameter:

pnpm start invoke --env_key dev

Available Commands

Generate TypeScript Types

Generates TypeScript interfaces from Zod schemas:

pnpm run types

List Available Tools

Show all available tools and their descriptions:

pnpm start list

# Write tools list to file
pnpm start list --output ./tools.json

Invoke Tool Functions

Invoke specific tool functions:

pnpm start invoke \
  --tools fs \
  --function list_files \
  --target ./src \
  --params '{"directory":".","pattern":"**/*.ts"}'

Available Tools

Filesystem Tools (fs)

  • list_files: List all files in a directory with optional glob pattern
  • remove_file: Remove a file at given path
  • rename_file: Rename or move a file or directory
  • modify_project_files: Modify existing project files with given content
  • create_project_structure: Create project structure with files and folders
  • create_file: Creates a file with given path and content
  • read_file: Read content of a file at given path

NPM Tools (npm)

  • build_project: Build project using pnpm build command
  • run_npm: Run an npm/pnpm command with optional arguments
  • install_dependency: Install project dependencies using pnpm

Git Tools (git)

  • init_repository: Initialize a new git repository if it doesn't exist
  • commit_files_git: Commit and push files to git repository with specified message

Terminal Tools (terminal)

  • execute_command: Execute terminal commands with options:
    • Run in background (non-blocking)
    • Open in new window
    • Run detached from parent process
    • Specify working directory

Interactive Tools (interact)

  • ask_question: Ask user a simple question and get response
  • choose_option: Ask user to choose from multiple options:
    • Single selection mode
    • Multiple selection mode (checkbox)

User Tools (user)

  • capture_screen: Capture a screenshot of the entire screen or a specific region

Project Structure

src/
  ├── commands/          # Command implementations
  │   ├── index.ts       # Command registry
  │   ├── invoke.ts      # Invoke command
  │   ├── list.ts        # List command
  │   └── types.ts       # Types command
  ├── lib/               # Core functionality
  │   └── tools/         # Tool implementations
  │       ├── fs.ts      # Filesystem tools
  │       ├── git.ts     # Git operations
  │       ├── npm.ts     # NPM commands
  │       ├── interact.ts # Interactive tools
  │       ├── user.ts    # User tools (screenshots)
  │       └── terminal.ts # Terminal operations
  ├── constants.ts       # Logger name constant
  ├── index.ts          # Logger setup
  ├── main.ts           # CLI entry point
  ├── tools.ts          # Tools registry
  ├── zod_schemas.ts    # Zod schemas
  └── zod_types.ts      # Generated TypeScript interfaces