@plastichub/osr-ai-tools
v0.1.7
Published
CLI and library for LLM tools
Downloads
378
Readme
LLM Tools CLI
Command-line interface and library for LLM tools providing filesystem, npm, git, terminal, interactive user, and screen capture operations.
Setup
- Install dependencies:
pnpm install
- Build the project:
pnpm run build
- 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 patternremove_file
: Remove a file at given pathrename_file
: Rename or move a file or directorymodify_project_files
: Modify existing project files with given contentcreate_project_structure
: Create project structure with files and folderscreate_file
: Creates a file with given path and contentread_file
: Read content of a file at given path
NPM Tools (npm)
build_project
: Build project using pnpm build commandrun_npm
: Run an npm/pnpm command with optional argumentsinstall_dependency
: Install project dependencies using pnpm
Git Tools (git)
init_repository
: Initialize a new git repository if it doesn't existcommit_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 responsechoose_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