Github · GitHub Repository Radar
sigoden llm-functions
Easily create LLM tools and agents using plain Bash/JavaScript/Python functions.
Stars
774
Forks
128
Watchers: 774
Language
License: MIT License
Repository Radar Score
36 / 100
Growth
- 7d
- +0
- 30d
- +0
- %
- 0.0%
Not enough metric snapshots yet to chart growth for this repository.
Score breakdown
- popularity 52
- growth 0
- activity 15
- freshness 100
- community 70
Need help integrating this stack?
Our team builds with modern open-source stacks. Tell us what you are shipping.
Get a quote →This project empowers you to effortlessly build powerful LLM tools and agents using familiar languages like Bash, JavaScript, and Python.
Forget complex integrations, harness the power of function calling to connect your LLMs directly to custom code and unlock a world of possibilities. Execute system commands, process data, interact with APIs – the only limit is your imagination.
Make sure you have the following tools installed:
Getting Started with AIChat
Currently, AIChat is the only CLI tool that supports llm-functions. We look forward to more tools supporting llm-functions.
git clone https://github.com/sigoden/llm-functions
cd llm-functionsget_current_weather.sh
execute_command.sh
#execute_py_code.py
Where is the web_search tool?
The web_search tool itself doesn't exist directly, Instead, you can choose from a variety of web search tools.
To use one as the web_search tool, follow these steps:
-
Choose a Tool: Available tools include:
web_search_cohere.shweb_search_perplexity.shweb_search_tavily.shweb_search_vertexai.sh
-
Link Your Choice: Use the
argccommand to link your chosen tool asweb_search. For example, to useweb_search_perplexity.sh:$ argc link-web-search web_search_perplexity.sh
This command creates a symbolic link, making
web_search.shpoint to your selectedweb_search_perplexity.shtool.
Now there is a web_search.sh ready to be added to your ./tools.txt.
coder
todo
argc buildIV. Ensure that everything is ready (environment variables, Node/Python dependencies, mcp-bridge server)
argc checkAIChat expects LLM-functions to be placed in AIChat's functions_dir so that AIChat can use the tools and agents that LLM-functions provides.
You can symlink this repository directory to AIChat's functions_dir with:
ln -s "$(pwd)" "$(aichat --info | sed -n 's/^functions_dir\s\+//p')"
# OR
argc link-to-aichatAlternatively, you can tell AIChat where the LLM-functions directory is by using an environment variable:
export AICHAT_FUNCTIONS_DIR="$(pwd)"Done! Now you can use the tools and agents with AIChat.
aichat --role %functions% what is the weather in Paris?
aichat --agent todo list all my todosBuilding tools for our platform is remarkably straightforward. You can leverage your existing programming knowledge, as tools are essentially just functions written in your preferred language.
LLM Functions automatically generates the JSON declarations for the tools based on comments. Refer to ./tools/demo_tool.{sh,js,py} for examples of how to use comments for autogeneration of declarations.
Create a new bashscript in the ./tools/ directory (.e.g. execute_command.sh).
#!/usr/bin/env bash
set -e
# @describe Execute the shell command.
# @option --command! The command to execute.
main() {
eval "$argc_command" >> "$LLM_OUTPUT"
}
eval "$(argc --argc-eval "$0" "$@")"Create a new javascript in the ./tools/ directory (.e.g. execute_js_code.js).
/**
* Execute the javascript code in node.js.
* @typedef {Object} Args
* @property {string} code - Javascript code to execute, such as `console.log("hello world")`
* @param {Args} args
*/
exports.run = function ({ code }) {
eval(code);
}Create a new python script in the ./tools/ directory (e.g. execute_py_code.py).
def run(code: str):
"""Execute the python code.
Args:
code: Python code to execute, such as `print("hello world")`
"""
exec(code)Agent = Prompt + Tools (Function Calling) + Documents (RAG), which is equivalent to OpenAI's GPTs.
The agent has the following folder structure:
└── agents
└── myagent
├── functions.json # JSON declarations for functions (Auto-generated)
├── index.yaml # Agent definition
├── tools.txt # Shared tools
└── tools.{sh,js,py} # Agent tools
The agent definition file (index.yaml) defines crucial aspects of your agent:
name: TestAgent
description: This is test agent
version: 0.1.0
instructions: You are a test ai agent to ...
conversation_starters:
- What can you do?
variables:
- name: foo
description: This is a foo
documents:
- local-file.txt
- local-dir/
- https://example.com/remote-file.txtRefer to ./agents/demo for examples of how to implement a agent.
- mcp/server: Let LLM-Functions tools/agents be used through the Model Context Protocol.
- mcp/bridge: Let external MCP tools be used by LLM-Functions.
The project is under the MIT License, Refer to the LICENSE file for detailed information.
Repository Radar analysis
Deterministic insights derived from public metadata and our observations — not personal testing or reviews.
Why this repository is interesting
- Listed in our discovery index with public GitHub metadata for analysis.
Who should use it
- Developers working primarily with Shell
- Teams exploring AI tooling, agents, or ML infrastructure
Potential use cases
- Reference or evaluate Shell open-source approaches in this domain
- Prototype AI/agent workflows or study reference architectures
Strengths
- README present in our index
- Declared license: MIT License
Limitations / considerations
- Insights are derived from public metadata and our observations — not a substitute for code review
What to watch
- Radar Score is modest — dig into activity and docs before committing
Source: GitHub (public metadata) + Repository Radar analysis. We do not claim ownership of third-party repositories.
Similar repositories
obra/superpowers
★ 281,736 · Shell · radar 66
AlpacaLabsLLC/skills-for-architects
★ 341 · Shell · radar 49
momozi1996/awesome-ai-persona-skills
★ 592 · Shell · radar 48
rz1989s/claude-code-statusline
★ 479 · Shell · radar 44
chengrouter/chengos
★ 217 · Shell · radar 43
AbuZar-Ansarii/Hermes-Agent-On-Android
★ 213 · Shell · radar 40

