{"id":2171,"date":"2025-06-27T17:34:33","date_gmt":"2025-06-27T17:34:33","guid":{"rendered":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2025\/06\/27\/building-an-easy-private-ai-assistant-with-goose-and-docker-model-runner\/"},"modified":"2025-06-27T17:34:33","modified_gmt":"2025-06-27T17:34:33","slug":"building-an-easy-private-ai-assistant-with-goose-and-docker-model-runner","status":"publish","type":"post","link":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2025\/06\/27\/building-an-easy-private-ai-assistant-with-goose-and-docker-model-runner\/","title":{"rendered":"Building an Easy Private AI Assistant with Goose and Docker Model Runner"},"content":{"rendered":"<p><a href=\"https:\/\/block.github.io\/goose\/\" target=\"_blank\">Goose<\/a> is an innovative CLI assistant designed to automate development tasks using AI models. Docker Model Runner simplifies deploying AI models locally with Docker. Combining these technologies creates a powerful local environment with advanced AI assistance, ideal for coding and automation.<\/p>\n<p>Looking for a seamless way to run AI-powered development tasks locally without compromising on privacy or flexibility? Look no further. By combining the power of<a href=\"https:\/\/github.com\/block\/goose\" target=\"_blank\"> Goose<\/a>, a CLI-based AI assistant, with Docker Model Runner, you get a streamlined, developer-friendly setup for running large language models right on your machine.<\/p>\n<p>Docker Model Runner makes it easy to run open-source AI models with Docker, no cloud APIs or external dependencies required. And the best part? It works out of the box with tools like Goose that expect an OpenAI-compatible interface. That means you can spin up advanced local assistants that not only chat intelligently but also automate tasks, run code, and interact with your system, without sending your data anywhere else.<\/p>\n<p>In this guide, you\u2019ll learn how to build your own AI assistant with these innovative tools. We\u2019ll walk you through how to install Goose, configure it to work with Docker Model Runner, and unleash a private, scriptable AI assistant capable of powering real developer workflows. Whether you want to run one-off commands or schedule recurring automations, this local-first approach keeps you in control and gets things done faster.<\/p>\n<h2 class=\"wp-block-heading\"><strong>Install Goose CLI on macOS<\/strong><\/h2>\n<p>Goose is <a href=\"https:\/\/block.github.io\/goose\/docs\/getting-started\/installation\" target=\"_blank\">available on Windows, macOS, and Linux<\/a> as a command-line tool, and also has a desktop application for macOS if that\u2019s what you prefer. In this article, we\u2019ll configure and show the CLI version on macOS.\u00a0<\/p>\n<p>To install Goose on you can use this handy curl2sudo oneliner technique:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\ncurl -fsSL https:\/\/github.com\/block\/goose\/releases\/download\/stable\/download_cli.sh | bash\n<\/div>\n<h2 class=\"wp-block-heading\"><strong>Enable Docker Model Runner<\/strong><\/h2>\n<p>First, ensure you have <a href=\"https:\/\/docs.docker.com\/get-docker\/\" target=\"_blank\">Docker Desktop<\/a> installed. Then, configure Docker Model Runner with your model of choice. Go to Settings &gt; Beta features and check the checkboxes for Docker Model Runner.<\/p>\n<p>By default, it\u2019s not wired to be available from your host machine, as a security precaution, but we want to simplify the setup and enable the TCP support as well. The default port for that would be 12434, so the base URL for the connection would be: <a href=\"http:\/\/localhost:12434\/\" target=\"_blank\">http:\/\/localhost:12434<\/a><\/p>\n<div class=\"wp-block-ponyo-image\">\n<\/div>\n<p class=\"has-small-font-size\"><em>Figure 1: Docker Desktop beta features settings showing how to enable port 12434<\/em><\/p>\n<p class=\"has-sm-font-size\">Now we can pull the models from Docker Hub: <a href=\"http:\/\/hub.docker.com\/u\/ai\" target=\"_blank\">hub.docker.com\/u\/ai<\/a> and run the models. For this article, we\u2019ll use ai\/qwen3:30B-A3B-Q4_K_M because it gives a good balance of world knowledge and intelligence at just 3B active parameters:\u00a0<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\ndocker model pull ai\/qwen3:30B-A3B-Q4_K_M<br \/>\ndocker model run ai\/qwen3:30B-A3B-Q4_K_M\n<\/div>\n<p>This command starts the interactive chat with the model.<\/p>\n<h2 class=\"wp-block-heading\"><strong>Configure Goose for Docker Model Runner<\/strong><\/h2>\n<p>Edit your Goose config at ~\/.config\/goose\/config.yaml:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\nGOOSE_MODEL: ai\/qwen3:30B-A3B-Q4_K_M<br \/>\nGOOSE_PROVIDER: openai<br \/>\nextensions:<br \/>\n  developer:<br \/>\n    display_name: null<br \/>\n    enabled: true<br \/>\n    name: developer<br \/>\n    timeout: null<br \/>\n    type: builtin<br \/>\nGOOSE_MODE: auto<br \/>\nGOOSE_CLI_MIN_PRIORITY: 0.8<br \/>\nOPENAI_API_KEY: irrelevant<br \/>\nOPENAI_BASE_PATH: \/engines\/llama.cpp\/v1\/chat\/completions<br \/>\nOPENAI_HOST: http:\/\/localhost:12434\n<\/div>\n<p>The OPENAI_API_KEY is irrelevant as Docker Model Runner does not require authentication because the model is run locally and privately on your machine.<\/p>\n<p>We provide the base path for the OpenAI compatible API, and choose the model GOOSE_MODEL: ai\/qwen3:30B-A3B-Q4_K_M that we have pulled before.<\/p>\n<h2 class=\"wp-block-heading\"><strong>Testing It Out<\/strong><\/h2>\n<p>Try Goose CLI by running goose in the terminal. You can see that it automatically connects to the correct model, and when you ask for something, you\u2019ll see the GPU spike as well.<\/p>\n<div class=\"wp-block-ponyo-image\">\n<\/div>\n<p class=\"has-small-font-size\"><em>Figure 2: Goose CLI running in terminal, showing example of response to local prompts<\/em><\/p>\n<p>Now, we also configure Goose to have the Developer extension enabled. It allows it to run various commands on your behalf, and makes it a much more powerful assistant with access to your machine than just a chat application.<\/p>\n<p>You can additionally configure the custom hints to Goose to tweak its behaviour using the <a href=\"https:\/\/block.github.io\/goose\/docs\/guides\/using-goosehints\/\/\" target=\"_blank\">.goosehints<\/a> file.<\/p>\n<p>And what\u2019s even better, you can script Goose to run tasks on your behalf with a simple one-liner:<\/p>\n<p>goose run -t &#8220;your instructions here&#8221; or goose run -i instructions.md<br \/>where instructions.md is the file with what to do.<\/p>\n<p>On macOS you have access to crontab for scheduling recurrent scripts, so you can automate Goose with Docker Model Runner to activate repeatedly and act on your behalf. For example, crontab -e, will open the editor for the commands you want to run, and a line like the one below should do the trick:<\/p>\n\n<div class=\"wp-block-syntaxhighlighter-code \">\n5 8 * * 1-5 goose run -i fetch_and_summarize_news.md\n<\/div>\n<p>Will make Goose run at 8:05 am every workday and follow the instructions in the fetch_and_summarize_news.md file. For example, to skim the internet and prioritize news based on what you like.<\/p>\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n<p>All in all, integrating Goose with Docker Model Runner creates a simple but powerful setup for using local AI for your workflows.<br \/>You can make it run custom instructions for you or easily script it to perform repetitive actions intelligently.<br \/>It is all powered by a local model running in Docker Model Runner, so you don\u2019t compromise on privacy either.<\/p>\n<h3 class=\"wp-block-heading\">Learn more<\/h3>\n<p>Read our quickstart guide to<a href=\"https:\/\/www.docker.com\/blog\/run-llms-locally\/\"> Docker Model Runner<\/a>.<\/p>\n<p>Find documentation for<a href=\"https:\/\/docs.docker.com\/model-runner\/\" target=\"_blank\"> Model Runner<\/a>.<\/p>\n<p>Subscribe to the<a href=\"https:\/\/www.docker.com\/newsletter-subscription\/\"> Docker Navigator Newsletter<\/a>.<\/p>\n<p>New to Docker?<a href=\"https:\/\/hub.docker.com\/signup?_gl=1*1v81gq1*_gcl_au*MTQxNjU3MjYxNS4xNzQyMjI1MTk2*_ga*MTMxODI0ODQ4LjE3NDE4MTI3NTA.*_ga_XJWPQMJYHQ*czE3NDg0NTYyNzIkbzI2JGcxJHQxNzQ4NDU2MzI2JGo2JGwwJGgw\" target=\"_blank\"> Create an account<\/a>.\u00a0<\/p>\n<p>Have questions? The<a href=\"https:\/\/www.docker.com\/community\/\"> Docker community is here to help<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Goose is an innovative CLI assistant designed to automate development tasks using AI models. Docker Model Runner simplifies deploying AI [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[4],"tags":[],"class_list":["post-2171","post","type-post","status-publish","format-standard","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/2171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/comments?post=2171"}],"version-history":[{"count":0,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/2171\/revisions"}],"wp:attachment":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/media?parent=2171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/categories?post=2171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/tags?post=2171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}