{"id":28925733,"url":"https://github.com/attogram/ollama-bash-toolshed","last_synced_at":"2026-04-24T22:34:04.787Z","repository":{"id":300284921,"uuid":"1005769106","full_name":"attogram/ollama-bash-toolshed","owner":"attogram","description":"Chat with tool calling models. Sample tools included.  Add new tools to your shed with ease.  Runs on Ollama.  All via Bash shell scripts.","archived":false,"fork":false,"pushed_at":"2025-08-30T17:47:03.000Z","size":635,"stargazers_count":6,"open_issues_count":16,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-15T16:15:45.953Z","etag":null,"topics":["attogram-project","bash-script","llm-tool-call","llm-tools","ollama-app","ollama-tool-integration","ollama-tools"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/attogram.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-20T19:33:46.000Z","updated_at":"2025-12-12T21:20:34.000Z","dependencies_parsed_at":"2025-07-26T00:21:27.332Z","dependency_job_id":"a31bcc42-d6e4-4b3a-a6f4-8d865a73a100","html_url":"https://github.com/attogram/ollama-bash-toolshed","commit_stats":null,"previous_names":["attogram/ollama-bash-toolshed"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/attogram/ollama-bash-toolshed","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attogram%2Follama-bash-toolshed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attogram%2Follama-bash-toolshed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attogram%2Follama-bash-toolshed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attogram%2Follama-bash-toolshed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/attogram","download_url":"https://codeload.github.com/attogram/ollama-bash-toolshed/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/attogram%2Follama-bash-toolshed/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32243309,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["attogram-project","bash-script","llm-tool-call","llm-tools","ollama-app","ollama-tool-integration","ollama-tools"],"created_at":"2025-06-22T11:10:16.557Z","updated_at":"2026-04-24T22:34:04.781Z","avatar_url":"https://github.com/attogram.png","language":"Shell","readme":"# Ollama Bash Toolshed\n\n![Logo](docs/logo/logo.500x250.jpg)\n\nBash scripts to chat with tool using models. Add new tools to your shed with ease. Runs on Ollama.\n\nFor Help and Discussions please join the [Attogram Discord Channel](https://discord.gg/BGQJCbYVBa)\n\n![Release](https://img.shields.io/github/v/release/attogram/ollama-bash-toolshed?style=flat)\n![License](https://img.shields.io/github/license/attogram/ollama-bash-toolshed?style=flat)\n![Bash ≥3.2](https://img.shields.io/badge/bash-%3E=3.2-blue?style=flat)\n![GitHub commit activity](https://img.shields.io/github/commit-activity/t/attogram/ollama-bash-toolshed?style=flat)\n![GitHub stars](https://img.shields.io/github/stars/attogram/ollama-bash-toolshed?style=flat)\n![GitHub watchers](https://img.shields.io/github/watchers/attogram/ollama-bash-toolshed?style=flat)\n![Forks](https://img.shields.io/github/forks/attogram/ollama-bash-toolshed?style=flat)\n![Issues](https://img.shields.io/github/issues/attogram/ollama-bash-toolshed?style=flat)\n\n## Usage\n\nRun the toolshed:\n  ```\n  ./toolshed.sh\n  ```\n  * This will start the toolshed with no model loaded\n    * use ```/list``` to get available models\n    * use ```/run modelName``` to load a model\n\nRun the toolshed with a specific model:\n  ```\n  ./toolshed.sh \"modelname\"\n  ```\n\n* For models with tools capabilities:\n  * See the [ollama.com Tools models](https://ollama.com/search?c=tools) list.\n  * See the [small models for tool usage](https://github.com/attogram/small-models/tree/main#tool-usage) list.\n\n## Tools in the shed\n\n* [calculator](tools/calculator) - Perform any standard math calculation (using bc input format)\n* [datetime](tools/datetime) - Get the current date and time\n* [man](tools/man) - Read command manuals\n* [ollama](tools/ollama) - Interact with the Ollama application (list, ps, run, show, stop, version)\n* [webpage](tools/webpage) - Get a web page, in format 'text' or 'raw' (defaults to 'text') ('raw' for HTML source)\n\n## User commands\n\n```\nModel Commands:\n  /list            - List models\n  /ps              - List running models\n  /pull modelName  - Pull new model\n  /run modelName   - Run a model\n  /show            - Current model info\n  /show modelName  - Model info\n  /stop modelName  - Stop a running model\n\nTool Commands:\n  /tools           - list tools available\n  /tool toolName   - show tool definition\n  /instructions    - list instructions for all tools\n  /exec toolName param1=\"value\" param2=\"value\" - run a tool, with optional parameters\n\nSystem Commands:\n  /multi             - enter multi-line prompt\n  /messages          - list of current messages\n  /messages save     - save messages to a file.  Optional \u003cfile\u003e to specify file. Must be in ./workspace directory.\n  /messages load     - load messages from a file. Optional \u003cfile\u003e to specify file. Must be in ./workspace directory.\n  /messages append   - append to current messages list from a file. Optional \u003cfile\u003e to specify file. Must be in ./workspace directory.\n  /system            - show system prompt\n  /clear             - clear the message and model cache\n  /config            - view all configs (tools, think, verbose)\n  /config name       - view a config\n  /config name value - set a config to new value\n  /quit or /bye      - end the chat\n  !\u003ccommand\u003e         - run any command in the local shell\n  /help              - list of all commands\n```\n\n### Configs\n\n* ```tools``` - [on/off] - use tools\n* ```think``` - [on/off] - split out thinking from message content\n* ```verbose``` - [on/off] - verbose debug messages\n* ```api``` - [url] - base Ollama API URL (no slash at end)\n\nTo use a model without tools capability: /config tools off\n\nTo use a model with thinking capability: /config think on\n\n### Run tools manually\n\nTo run tools manually, use the ```/exec``` command.\n\nTo run a tool with no parameters: ```/exec toolName```\n\nto run a tool with parameters: ```/exec toolName param1=\"value\" param2=\"value\"``` ...\n\nExamples: \n* ```/exec calculator input=\"1 + 2\"```\n* ```/exec man command=wc```\n* ```/exec webpage url=\"https://ollama.com/search?c=tools\"```\n* ```/exec webpage url=\"https://www.example.com\" format=raw```\n\n## Add a new tool\n\nRead about the [tools setup](tools/README.md).\n\nTo add a new tool:\n\n- Give your tool a name.\n  - Example: ```weather```\n- create a subdirectory in ```tools/``` directory. The directory name MUST be your tool name.\n  - Example: ```tools/weather/```\n- create a JSON tool definition file.\n  - Example: ```tools/weather/definition.json```\n- create a tool instructions file\n  - Example: ```tools/weather/instructions.txt```\n- create a bash script to run the tool. \n  - Example: ```tools/weather/run.sh```\n- chmod your bash script. \n  - Example: ```chmod +x tools/weather/run.sh```\n- re-run ```./toolshed.sh``` to use your new tool.\n\n## Common errors\n\nError: ```no model running```\n- Fix: Use ```/run modelName``` to load a model\n  - Use ```/list``` to get available models\n\nError: ```registry.ollama.ai/library/modelName does not support tools```\n- Fix: ```/config tools off```\n\nError: ```registry.ollama.ai/library/modelName does not support thinking```\n- Fix: ```/config think off```\n\n## Example chat\n\n```html\n% ./toolshed.sh qwen3:8b\n\n ███████████                   ████          █████                   █████\n░█░░░███░░░█                  ░░███         ░░███                   ░░███\n░   ░███  ░   ██████   ██████  ░███   █████  ░███████    ██████   ███████\n    ░███     ███░░███ ███░░███ ░███  ███░░   ░███░░███  ███░░███ ███░░███\n    ░███    ░███ ░███░███ ░███ ░███ ░░█████  ░███ ░███ ░███████ ░███ ░███\n    ░███    ░███ ░███░███ ░███ ░███  ░░░░███ ░███ ░███ ░███░░░  ░███ ░███\n    █████   ░░██████ ░░██████  █████ ██████  ████ █████░░██████ ░░████████\n   ░░░░░     ░░░░░░   ░░░░░░  ░░░░░ ░░░░░░  ░░░░ ░░░░░  ░░░░░░   ░░░░░░░░\n\nollama-bash-toolshed v0.36\n\n/help for commands. /quit or Ctrl+C to exit.\n\nollama-bash-toolshed (qwen3:8b) (5 tools) [0 requests] [1 messages]\n\u003e\u003e\u003e /config think on\n\nthink: on\n\nollama-bash-toolshed (qwen3:8b) (5 tools) [0 requests] [1 messages]\n\u003e\u003e\u003e what tools do you have available?\n\n🤔💭 Okay, the user is asking, \"what tools do you have available?\" Let me check the tools \nsection again.\n\nLooking at the provided tools, there's the calculator, datetime, man, ollama, and webpage \nfunctions. Each has specific descriptions and parameters. The user wants to know the \navailable tools, so I should list them. But the exact answer depends on the /tools command.\nWait, the user might be asking for the list of tools, which is covered by the /tools command. \nBut the assistant's tools are the functions listed in the \u003ctools\u003e section. So the answer \nshould mention each tool's name and a brief description. Let me structure that. Also, the user \nmight want to know what each tool does, so including the descriptions from the function \ndefinitions would be helpful. Let me make sure to list each tool with its purpose. For \nexample, calculator for math, datetime for current time, man for command manuals, ollama for \ninteracting with the Ollama app, and webpage for fetching web pages. That should cover it. I \nshould present this in a clear, user-friendly way without using markdown. Alright, time to \nput that together. 💭🤔\n\nHere are the tools I have available:\n\n1. **calculator** - Perform math calculations (e.g., `calculator input=\"2+2\"`).\n2. **datetime** - Get the current date and time.\n3. **man** - Read command manuals (e.g., `man command`).\n4. **ollama** - Interact with the Ollama application (e.g., `ollama run model-name`).\n5. **webpage** - Fetch web pages as text or raw HTML (e.g., `webpage url=\"https://example.com\"`).\n\nLet me know if you'd like details about a specific tool!\n\nollama-bash-toolshed (qwen3:8b) (5 tools) [1 requests] [3 messages]\n\u003e\u003e\u003e what time is it?\n\n🤔💭 Okay, the user asked, \"what time is it?\" I need to figure out which tool to use here. \nLooking at the available tools, there's the 'datetime' tool that gets the current date and \ntime. The parameters for that tool don't require anything, so I can call it without arguments. \nLet me check the function definition again to make sure. Yep, the 'datetime' function has \nno required parameters. So I should generate a tool call to 'datetime' with an empty arguments \nobject. That should retrieve the current time and provide the answer to the user. 💭🤔\n\n[TOOL] call: {\"name\":\"datetime\",\"arguments\":{}}\n[TOOL] result: 30 chars, 1 lines, first line: Fri Jun 27 20:01:14 CEST 2025\n\n🤔💭 Okay, the user asked, \"what time is it?\" I need to provide the current time. Let me check \nthe tools available. There's a 'datetime' tool that gets the current date and time. I'll call \nthat tool. The response from the tool is \"Fri Jun 27 20:01:14 CEST 2025\". Wait, that seems \nlike a future date. Maybe there's a typo? The year 2025 is in the future. But perhaps the \ntool's response is correct, or maybe it's a test scenario. Regardless, I should present the \ntime as given. The user might be checking if the tool works correctly. I'll format the response \nto show the time in a friendly way, mentioning the date and time provided by the tool. Let me \nmake sure to use the correct ANSI colors for the time display. Maybe use cyan for the time to \nmake it stand out. Also, check if the user needs anything else after providing the time. 💭🤔\n\nThe current time is:\n`Fri Jun 27 20:01:14 CEST 2025`\n\nLet me know if you need anything else!\n\nollama-bash-toolshed (qwen3:8b) (5 tools) [3 requests] [7 messages]\n\u003e\u003e\u003e /messages\n[\n  {\n    \"role\": \"system\",\n    \"content\": \"You are an AI assistant.\\n- You are inside the Ollama Bash Toolshed.\\n- You are running on the Ollama application.\\n\\nYou have access to these tools:\\n\\n'calculator' - Perform any standard math calculation (using bc input format)\\n'datetime' - Get the current date and time\\n'man' - Read command manuals\\n'ollama' - Interact with the Ollama application (list, ps, run, show, stop, version)\\n'webpage' - Get a web page, in format 'text' or 'raw' (defaults to 'text') ('raw' for HTML source)\\n\\nUse these tools to assist the user.\\n- The tools can help you access information from the internet, solve complex math, get the current time,\\n  understand commands and explore Ollama models.\\n- Always tell the user the results of your tool calls.\\n- Base your response on data you get from using the tools, and/or your own knowledge.\\n\\nYour response is rendered in a text terminal.\\n- You may use ANSI escape codes to color your response.\\n- COLOR    FOREGROUND      BACKGROUND\\n  red      `\\\\033[31m`   `\\\\033[41m`\\n  green    `\\\\033[32m`   `\\\\033[42m`\\n  yellow   `\\\\033[33m`   `\\\\033[43m`\\n  blue     `\\\\033[34m`   `\\\\033[44m`\\n  magenta  `\\\\033[35m`   `\\\\033[45m`\\n  cyan     `\\\\033[36m`   `\\\\033[46m`\\n  black    `\\\\033[30m`   `\\\\033[40m`\\n  white    `\\\\033[37m`   `\\\\033[47m`\\n- To reset text to default colors: `\\\\033[0m`\\n\\nYou can assist with commands the user may use inside Ollama Bash Toolshed.\\n- Only the user may use these commands.\\n- Command list:\\n\\nModel Commands:\\n  /list            - List models\\n  /ps              - List running models\\n  /pull modelName  - Pull new model\\n  /run modelName   - Run a model\\n  /show            - Current model info\\n  /show modelName  - Model info\\n  /stop modelName  - Stop a running model\\n\\nTool Commands:\\n  /tools           - list tools available\\n  /instructions    - list instructions for all tools\\n  /tool toolName   - show tool definition\\n  /exec toolName param1=\\\"value\\\" param2=\\\"value\\\" - run a tool, with optional parameters\\n\\nSystem Commands:\\n  /multi             - enter multi-line prompt\\n  /messages          - list of current messages\\n  /system            - show system prompt\\n  /clear             - clear the message and model cache\\n  /config            - view all configs (tools, think, verbose)\\n  /config name       - view a config\\n  /config name value - set a config to new value\\n  /quit or /bye      - end the chat\\n  /help              - list of all commands\"\n  },\n  {\n    \"role\": \"user\",\n    \"content\": \"what tools do you have available?\"\n  },\n  {\n    \"role\": \"assistant\",\n    \"content\": \"Here are the tools I have available:\\n\\n1. **calculator** - Perform math calculations (e.g., `calculator input=\\\"2+2\\\"`).\\n2. **datetime** - Get the current date and time.\\n3. **man** - Read command manuals (e.g., `man command`).\\n4. **ollama** - Interact with the Ollama application (e.g., `ollama run model-name`).\\n5. **webpage** - Fetch web pages as text or raw HTML (e.g., `webpage url=\\\"https://example.com\\\"`).\\n\\nLet me know if you'd like details about a specific tool!\"\n  },\n  {\n    \"role\": \"user\",\n    \"content\": \"what time is it?\"\n  },\n  {\n    \"role\": \"assistant\",\n    \"tool_calls\": [\n      {\n        \"function\": {\n          \"name\": \"datetime\",\n          \"arguments\": {}\n        }\n      }\n    ]\n  },\n  {\n    \"role\": \"tool\",\n    \"name\": \"datetime\",\n    \"content\": \"Fri Jun 27 20:01:14 CEST 2025\"\n  },\n  {\n    \"role\": \"assistant\",\n    \"content\": \"The current time is:  \\n`\\\\033[36mFri Jun 27 20:01:14 CEST 2025\\\\033[0m`  \\n\\nLet me know if you need anything else!\"\n  }\n]\n```\n\n## More from the Attogram Project\n\n| Project                                                     | About                                                                                                                                                                                           |\n|-------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [**Attogram Project\u003cbr /\u003eDiscord Channel**][discord-invite] | Join the **Attogram Project Discord Channel** for:\u003cbr /\u003e- Announcements\u003cbr /\u003e- Technical Support\u003cbr /\u003e- General Chat about Attogram Projects                                                    |\n| [**Ollama Multirun**][ollama-multirun]                      | Run a prompt against all, or some, of your models running on Ollama.\u003cbr /\u003e- Creates web pages with the output, performance statistics and model info.\u003cbr /\u003e- All in a single Bash shell script. |\n| [**Ollama Bash Lib**][ollama-bash-lib]                      | A Bash Library to interact with Ollama                                                                                                                                                          | \n| [**Ollama Bash Toolshed**][ollama-bash-toolshed]            | Chat with tool calling models.\u003cbr /\u003e- Sample tools included.\u003cbr /\u003e- Add new tools to your shed with ease.\u003cbr /\u003e- Runs on Ollama.\u003cbr /\u003e- All via Bash shell scripts.                             |\n| [**LLM Council**][llm-council]                              | Start a chat room between all, or some, of your models running on Ollama.\u003cbr /\u003e- All in a single Bash shell script.                                                                             |\n| [**Small Models**][small-models]                            | Comparison of small open source LLMs\u003cbr /\u003e- 8b parameters or less                                                                                                                               |\n| [**AI Test Zone**][ai_test_zone]                            | AI Testing reports\u003cbr /\u003e- hosted on https://attogram.github.io/ai_test_zone/                                                                                                                    |\n\n[discord-invite]: \u003chttps://discord.gg/BGQJCbYVBa\u003e \"Attogram Project Discord Channel\"\n[ollama-multirun]: \u003chttps://github.com/attogram/ollama-multirun\u003e \"Ollama Multirun\"\n[ollama-bash-toolshed]: \u003chttps://github.com/attogram/ollama-bash-toolshed\u003e \"Ollama Bash Toolshed\"\n[llm-council]: \u003chttps://github.com/attogram/llm-council\u003e \"LLM Council\"\n[ollama-bash-lib]: \u003chttps://github.com/attogram/ollama-bash-lib\u003e \"Ollama Bash Lib\"\n[small-models]: \u003chttps://github.com/attogram/small-models\u003e \"Small Models\"\n[ai_test_zone]: \u003chttps://github.com/attogram/ai_test_zone\u003e \"AI Test Zone\"\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fattogram%2Follama-bash-toolshed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fattogram%2Follama-bash-toolshed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fattogram%2Follama-bash-toolshed/lists"}