0.0
No release in over 3 years
SharedTools provides a collection of reusable common tools (aka callback functions) for Ruby applications using various LLM-provider API gems.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 2.0
~> 13.0
~> 3.0
>= 0
>= 0

Runtime

~> 2.6
 Project Readme

Shared Tools

Two Robots sharing the same set of tools.

A Ruby gem providing a collection of common tools (call-back functions) for use with the following gems:

  • ruby_llm: multi-provider gem install ruby_llm
  • llm: multi-provider gem install llm.rb
  • omniai: multi-provider gem install omniai-tools (Not part of the SharedTools namespace)
  • more to come ...

Installation

Add this line to your application's Gemfile:

gem 'shared_tools'

And then execute:

bundle install

Or install it yourself as:

gem install shared_tools

Usage

Basic Loading

require 'shared_tools'

Loading RubyLLM Tools

RubyLLM tools are loaded conditionally when needed:

require 'shared_tools'

# Load all RubyLLM tools (requires ruby_llm gem to be available and loaded first)
require 'shared_tools/ruby_llm'

# Or load a specific tool directly
require 'shared_tools/ruby_llm/edit_file'
require 'shared_tools/ruby_llm/read_file'
require 'shared_tools/ruby_llm/python_eval'
# etc.

Rails and Autoloader Compatibility

This gem uses Zeitwerk for autoloading, making it fully compatible with Rails and other Ruby applications that use modern autoloaders. RubyLLM tools are excluded from autoloading and loaded manually to avoid namespace conflicts.

Special Thanks

A special shout-out to Kevin's omniai-tools gem, which is a curated collection of tools for use with his OmniAI gem.