mirror of
https://github.com/ollama/ollama.git
synced 2026-05-24 06:31:50 -05:00
Closed
opened 2026-04-28 05:28:46 -05:00 by GiteaMirror
·
36 comments
No Branch/Tag Specified
main
dhiltgen/llama-runner
parth-migrate-pi
codex/make-integration-hidden-and-lunchable
hoyyeva/migrate-pi
hoyyeva/opencode-thinking
hoyyeva/anthropic-local-image-path
parth-launch-codex-app
hoyyeva/anthropic-reference-images-path
parth-anthropic-reference-images-path
brucemacd/download-before-remove
hoyyeva/editor-config-repair
parth-mlx-decode-checkpoints
hoyyeva/qwen
parth/hide-claude-desktop-till-release
parth-add-claude-code-autoinstall
release_v0.22.0
pdevine/manifest-list
codex/fix-codex-model-metadata-warning
pdevine/addressable-manifest
brucemacd/launch-fetch-reccomended
jmorganca/llama-compat
launch-copilot-cli
release_v0.20.7
parth-auto-save-backup
parth-test
jmorganca/gemma4-audio-replacements
fix-manifest-digest-on-pull
hoyyeva/vscode-improve
brucemacd/install-server-wait
parth/update-claude-docs
brucemac/start-ap-install
pdevine/mlx-update
pdevine/qwen35_vision
drifkin/api-show-fallback
mintlify/image-generation-1773352582
hoyyeva/server-context-length-local-config
jmorganca/faster-reptition-penalties
jmorganca/convert-nemotron
parth-pi-thinking
pdevine/sampling-penalties
jmorganca/fix-create-quantization-memory
dongchen/resumable_transfer_fix
pdevine/sampling-cache-error
jessegross/mlx-usage
hoyyeva/openclaw-config
hoyyeva/app-html
pdevine/qwen3next
brucemacd/sign-sh-install
brucemacd/tui-update
brucemacd/usage-api
jmorganca/launch-empty
fix-app-dist-embed
mxyng/mlx-compile
mxyng/mlx-quant
mxyng/mlx-glm4.7
mxyng/mlx
brucemacd/simplify-model-picker
jmorganca/qwen3-concurrent
fix-glm-4.7-flash-mla-config
drifkin/qwen3-coder-opening-tag
brucemacd/usage-cli
fix-cuda12-fattn-shmem
ollama-imagegen-docs
parth/fix-multiline-inputs
brucemacd/config-docs
mxyng/model-files
mxyng/simple-execute
fix-imagegen-ollama-models
mxyng/async-upload
jmorganca/lazy-no-dtype-changes
imagegen-auto-detect-create
parth/decrease-concurrent-download-hf
fix-mlx-quantize-init
jmorganca/x-cleanup
usage
imagegen-readme
jmorganca/glm-image
mlx-gpu-cd
jmorganca/imagegen-modelfile
parth/agent-skills
parth/agent-allowlist
parth/signed-in-offline
parth/agents
parth/fix-context-chopping
improve-cloud-flow
parth/add-models-websearch
parth/prompt-renderer-mcp
jmorganca/native-settings
jmorganca/download-stream-hash
jmorganca/client2-rebased
brucemacd/oai-chat-req-multipart
jessegross/multi_chunk_reserve
grace/additional-omit-empty
grace/mistral-3-large
mxyng/tokenizer2
mxyng/tokenizer
jessegross/flash
hoyyeva/windows-nacked-app
mxyng/cleanup-attention
grace/deepseek-parser
hoyyeva/remember-unsent-prompt
parth/add-lfs-pointer-error-conversion
parth/olmo2-test2
hoyyeva/ollama-launchagent-plist
nicole/olmo-model
parth/olmo-test
mxyng/remove-embedded
parth/render-template
jmorganca/intellect-3
parth/remove-prealloc-linter
jmorganca/cmd-eval
nicole/nomic-embed-text-fix
mxyng/lint-2
hoyyeva/add-gemini-3-pro-preview
hoyyeva/load-model-list
mxyng/expand-path
mxyng/environ-2
hoyyeva/deeplink-json-encoding
parth/improve-tool-calling-tests
hoyyeva/conversation
hoyyeva/assistant-edit-response
hoyyeva/thinking
origin/brucemacd/invalid-char-i-err
parth/improve-tool-calling
jmorganca/required-omitempty
grace/qwen3-vl-tests
mxyng/iter-client
parth/docs-readme
nicole/embed-test
pdevine/integration-benchstat
parth/remove-generate-cmd
parth/add-toolcall-id
mxyng/server-tests
jmorganca/glm-4.6
jmorganca/gin-h-compat
drifkin/stable-tool-args
pdevine/qwen3-more-thinking
parth/add-websearch-client
nicole/websearch_local
jmorganca/qwen3-coder-updates
grace/deepseek-v3-migration-tests
mxyng/fix-create
jmorganca/cloud-errors
pdevine/parser-tidy
revert-12233-parth/simplify-entrypoints-runner
parth/enable-so-gpt-oss
brucemacd/qwen3vl
jmorganca/readme-simplify
parth/gpt-oss-structured-outputs
revert-12039-jmorganca/tools-braces
mxyng/embeddings
mxyng/gguf
mxyng/benchmark
mxyng/types-null
parth/move-parsing
mxyng/gemma2
jmorganca/docs
mxyng/16-bit
mxyng/create-stdin
pdevine/authorizedkeys
mxyng/quant
parth/opt-in-error-context-window
brucemacd/cache-models
brucemacd/runner-completion
jmorganca/llama-update-6
brucemacd/benchmark-list
brucemacd/partial-read-caps
parth/deepseek-r1-tools
mxyng/omit-array
parth/tool-prefix-temp
brucemacd/runner-test
jmorganca/qwen25vl
brucemacd/model-forward-test-ext
parth/python-function-parsing
jmorganca/cuda-compression-none
drifkin/num-parallel
drifkin/chat-truncation-fix
jmorganca/sync
parth/python-tools-calling
drifkin/array-head-count
brucemacd/create-no-loop
parth/server-enable-content-stream-with-tools
qwen25omni
mxyng/v3
brucemacd/ropeconfig
jmorganca/silence-tokenizer
parth/sample-so-test
parth/sampling-structured-outputs
brucemacd/doc-go-engine
parth/constrained-sampling-json
jmorganca/mistral-wip
brucemacd/mistral-small-convert
parth/sample-unmarshal-json-for-params
brucemacd/jomorganca/mistral
pdevine/bfloat16
jmorganca/mistral
brucemacd/mistral
pdevine/logging
parth/sample-correctness-fix
parth/sample-fix-sorting
jmorgan/sample-fix-sorting-extras
jmorganca/temp-0-images
brucemacd/parallel-embed-models
brucemacd/shim-grammar
jmorganca/fix-gguf-error
bmizerany/nameswork
jmorganca/faster-releases
bmizerany/validatenames
brucemacd/err-no-vocab
brucemacd/rope-config
brucemacd/err-hint
brucemacd/qwen2_5
brucemacd/logprobs
brucemacd/new_runner_graph_bench
progress-flicker
brucemacd/forward-test
brucemacd/go_qwen2
pdevine/gemma2
jmorganca/add-missing-symlink-eval
mxyng/next-debug
parth/set-context-size-openai
brucemacd/next-bpe-bench
brucemacd/next-bpe-test
brucemacd/new_runner_e2e
brucemacd/new_runner_qwen2
pdevine/convert-cohere2
brucemacd/convert-cli
parth/log-probs
mxyng/next-mlx
mxyng/cmd-history
parth/templating
parth/tokenize-detokenize
brucemacd/check-key-register
bmizerany/grammar
jmorganca/vendor-081b29bd
mxyng/func-checks
jmorganca/fix-null-format
parth/fix-default-to-warn-json
jmorganca/qwen2vl
jmorganca/no-concat
parth/cmd-cleanup-SO
brucemacd/check-key-register-structured-err
parth/openai-stream-usage
parth/fix-referencing-so
stream-tools-stop
jmorganca/degin-1
brucemacd/install-path-clean
brucemacd/push-name-validation
brucemacd/browser-key-register
jmorganca/openai-fix-first-message
jmorganca/fix-proxy
jessegross/sample
parth/disallow-streaming-tools
dhiltgen/remove_submodule
jmorganca/ga
jmorganca/mllama
pdevine/newlines
pdevine/geems-2b
jmorganca/llama-bump
mxyng/modelname-7
mxyng/gin-slog
mxyng/modelname-6
jyan/convert-prog
jyan/quant5
paligemma-support
pdevine/import-docs
jmorganca/openai-context
jyan/paligemma
jyan/p2
jyan/palitest
bmizerany/embedspeedup
jmorganca/llama-vit
brucemacd/allow-ollama
royh/ep-methods
royh/whisper
mxyng/api-models
mxyng/fix-memory
jyan/q4_4/8
jyan/ollama-v
royh/stream-tools
roy-embed-parallel
bmizerany/hrm
revert-5963-revert-5924-mxyng/llama3.1-rope
royh/embed-viz
jyan/local2
jyan/auth
jyan/local
jyan/parse-temp
jmorganca/template-mistral
jyan/reord-g
royh-openai-suffixdocs
royh-imgembed
royh-embed-parallel
jyan/quant4
royh-precision
jyan/progress
pdevine/fix-template
jyan/quant3
pdevine/ggla
mxyng/update-registry-domain
jmorganca/ggml-static
mxyng/create-context
jyan/v0.146
mxyng/layers-from-files
build_dist
bmizerany/noseek
royh-ls
royh-name
timeout
mxyng/server-timestamp
bmizerany/nosillyggufslurps
royh-params
jmorganca/llama-cpp-7c26775
royh-openai-delete
royh-show-rigid
jmorganca/enable-fa
jmorganca/no-error-template
jyan/format
royh-testdelete
bmizerany/fastverify
language_support
pdevine/ps-glitches
brucemacd/tokenize
bruce/iq-quants
bmizerany/filepathwithcoloninhost
mxyng/split-bin
bmizerany/client-registry
jmorganca/if-none-match
native
jmorganca/native
jmorganca/batch-embeddings
jmorganca/initcmake
jmorganca/mm
pdevine/showggmlinfo
modenameenforcealphanum
bmizerany/modenameenforcealphanum
jmorganca/done-reason
jmorganca/llama-cpp-8960fe8
ollama.com
bmizerany/filepathnobuild
bmizerany/types/model/defaultfix
rmdisplaylong
nogogen
bmizerany/x
modelfile-readme
bmizerany/replacecolon
jmorganca/limit
jmorganca/execstack
jmorganca/replace-assets
mxyng/tune-concurrency
jmorganca/testing
whitespace-detection
jmorganca/options
upgrade-all
scratch
cuda-search
mattw/airenamer
mattw/allmodelsonhuggingface
mattw/quantcontext
mattw/whatneedstorun
brucemacd/llama-mem-calc
mattw/faq-context
mattw/communitylinks
mattw/noprune
mattw/python-functioncalling
rename
mxyng/install
pulse
remove-first
editor
mattw/selfqueryingretrieval
cgo
mattw/howtoquant
api
matt/streamingapi
format-config
mxyng/extra-args
shell
update-nous-hermes
cp-model
upload-progress
fix-unknown-model
fix-model-names
delete-fix
insecure-registry
ls
deletemodels
progressbar
readme-updates
license-layers
skip-list
list-models
modelpath
matt/examplemodelfiles
distribution
go-opts
v0.30.0-rc23
v0.30.0-rc22
v0.30.0-rc21
v0.30.0-rc20
v0.30.0-rc19
v0.30.0-rc18
v0.25.0-rc0
v0.30.0-rc17
v0.30.0-rc16
v0.24.0-rc1
v0.24.0
v0.24.0-rc0
v0.23.4
v0.23.4-rc0
v0.30.0-rc15
v0.23.3
v0.23.3-rc1
v0.30.0-rc14
v0.23.3-rc0
v0.30.0-rc13
v0.30.0-rc12
v0.30.0-rc11
v0.30.0-rc10
v0.30.0-rc9
v0.30.0-rc8
v0.30.0-rc7
v0.30.0-rc6
v0.30.0-rc5
v0.23.2
v0.23.2-rc0
v0.30.0-rc4
v0.30.0-rc3
v0.30.0-rc2
v0.30.0-rc1
v0.30.0-rc0
v0.23.1
v0.23.1-rc0
v0.23.0
v0.23.0-rc0
v0.22.1
v0.22.1-rc1
v0.22.1-rc0
v0.22.0
v0.22.0-rc1
v0.21.3-rc0
v0.21.2-rc1
v0.21.2
v0.21.2-rc0
v0.21.1
v0.21.1-rc1
v0.21.1-rc0
v0.21.0
v0.21.0-rc1
v0.21.0-rc0
v0.20.8-rc0
v0.20.7
v0.20.7-rc1
v0.20.7-rc0
v0.20.6
v0.20.6-rc1
v0.20.6-rc0
v0.20.5
v0.20.5-rc2
v0.20.5-rc1
v0.20.5-rc0
v0.20.4
v0.20.4-rc2
v0.20.4-rc1
v0.20.4-rc0
v0.20.3
v0.20.3-rc0
v0.20.2
v0.20.1
v0.20.1-rc2
v0.20.1-rc1
v0.20.1-rc0
v0.20.0
v0.20.0-rc1
v0.20.0-rc0
v0.19.0
v0.19.0-rc2
v0.19.0-rc1
v0.19.0-rc0
v0.18.4-rc1
v0.18.4-rc0
v0.18.3
v0.18.3-rc2
v0.18.3-rc1
v0.18.3-rc0
v0.18.2
v0.18.2-rc1
v0.18.2-rc0
v0.18.1
v0.18.1-rc1
v0.18.1-rc0
v0.18.0
v0.18.0-rc2
v0.18.0-rc1
v0.18.0-rc0
v0.17.8-rc4
v0.17.8-rc3
v0.17.8-rc2
v0.17.8-rc1
v0.17.8-rc0
v0.17.7
v0.17.7-rc2
v0.17.7-rc1
v0.17.7-rc0
v0.17.6
v0.17.5
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.1-rc2
v0.17.1-rc1
v0.17.1-rc0
v0.17.0
v0.17.0-rc2
v0.17.0-rc1
v0.17.0-rc0
v0.16.3
v0.16.3-rc2
v0.16.3-rc1
v0.16.3-rc0
v0.16.2
v0.16.2-rc0
v0.16.1
v0.16.0
v0.16.0-rc2
v0.16.0-rc0
v0.16.0-rc1
v0.15.6
v0.15.5
v0.15.5-rc5
v0.15.5-rc4
v0.15.5-rc3
v0.15.5-rc2
v0.15.5-rc1
v0.15.5-rc0
v0.15.4
v0.15.3
v0.15.2
v0.15.1
v0.15.1-rc1
v0.15.1-rc0
v0.15.0-rc6
v0.15.0
v0.15.0-rc5
v0.15.0-rc4
v0.15.0-rc3
v0.15.0-rc2
v0.15.0-rc1
v0.15.0-rc0
v0.14.3
v0.14.3-rc3
v0.14.3-rc2
v0.14.3-rc1
v0.14.3-rc0
v0.14.2
v0.14.2-rc1
v0.14.2-rc0
v0.14.1
v0.14.0-rc11
v0.14.0
v0.14.0-rc10
v0.14.0-rc9
v0.14.0-rc8
v0.14.0-rc7
v0.14.0-rc6
v0.14.0-rc5
v0.14.0-rc4
v0.14.0-rc3
v0.14.0-rc2
v0.14.0-rc1
v0.14.0-rc0
v0.13.5
v0.13.5-rc1
v0.13.5-rc0
v0.13.4-rc2
v0.13.4
v0.13.4-rc1
v0.13.4-rc0
v0.13.3
v0.13.3-rc1
v0.13.3-rc0
v0.13.2
v0.13.2-rc2
v0.13.2-rc1
v0.13.2-rc0
v0.13.1
v0.13.1-rc2
v0.13.1-rc1
v0.13.1-rc0
v0.13.0
v0.13.0-rc0
v0.12.11
v0.12.11-rc1
v0.12.11-rc0
v0.12.10
v0.12.10-rc1
v0.12.10-rc0
v0.12.9-rc0
v0.12.9
v0.12.8
v0.12.8-rc0
v0.12.7
v0.12.7-rc1
v0.12.7-rc0
v0.12.7-citest0
v0.12.6
v0.12.6-rc1
v0.12.6-rc0
v0.12.5
v0.12.5-rc0
v0.12.4
v0.12.4-rc7
v0.12.4-rc6
v0.12.4-rc5
v0.12.4-rc4
v0.12.4-rc3
v0.12.4-rc2
v0.12.4-rc1
v0.12.4-rc0
v0.12.3
v0.12.2
v0.12.2-rc0
v0.12.1
v0.12.1-rc1
v0.12.1-rc2
v0.12.1-rc0
v0.12.0
v0.12.0-rc1
v0.12.0-rc0
v0.11.11
v0.11.11-rc3
v0.11.11-rc2
v0.11.11-rc1
v0.11.11-rc0
v0.11.10
v0.11.9
v0.11.9-rc0
v0.11.8
v0.11.8-rc0
v0.11.7-rc1
v0.11.7-rc0
v0.11.7
v0.11.6
v0.11.6-rc0
v0.11.5-rc4
v0.11.5-rc3
v0.11.5
v0.11.5-rc5
v0.11.5-rc2
v0.11.5-rc1
v0.11.5-rc0
v0.11.4
v0.11.4-rc0
v0.11.3
v0.11.3-rc0
v0.11.2
v0.11.1
v0.11.0-rc0
v0.11.0-rc1
v0.11.0-rc2
v0.11.0
v0.10.2-int1
v0.10.1
v0.10.0
v0.10.0-rc4
v0.10.0-rc3
v0.10.0-rc2
v0.10.0-rc1
v0.10.0-rc0
v0.9.7-rc1
v0.9.7-rc0
v0.9.6
v0.9.6-rc0
v0.9.6-ci0
v0.9.5
v0.9.4-rc5
v0.9.4-rc6
v0.9.4
v0.9.4-rc3
v0.9.4-rc4
v0.9.4-rc1
v0.9.4-rc2
v0.9.4-rc0
v0.9.3
v0.9.3-rc5
v0.9.4-citest0
v0.9.3-rc4
v0.9.3-rc3
v0.9.3-rc2
v0.9.3-rc1
v0.9.3-rc0
v0.9.2
v0.9.1
v0.9.1-rc1
v0.9.1-rc0
v0.9.1-ci1
v0.9.1-ci0
v0.9.0
v0.9.0-rc0
v0.8.0
v0.8.0-rc0
v0.7.1-rc2
v0.7.1
v0.7.1-rc1
v0.7.1-rc0
v0.7.0
v0.7.0-rc1
v0.7.0-rc0
v0.6.9-rc0
v0.6.8
v0.6.8-rc0
v0.6.7
v0.6.7-rc2
v0.6.7-rc1
v0.6.7-rc0
v0.6.6
v0.6.6-rc2
v0.6.6-rc1
v0.6.6-rc0
v0.6.5-rc1
v0.6.5
v0.6.5-rc0
v0.6.4-rc0
v0.6.4
v0.6.3-rc1
v0.6.3
v0.6.3-rc0
v0.6.2
v0.6.2-rc0
v0.6.1
v0.6.1-rc0
v0.6.0-rc0
v0.6.0
v0.5.14-rc0
v0.5.13
v0.5.13-rc6
v0.5.13-rc5
v0.5.13-rc4
v0.5.13-rc3
v0.5.13-rc2
v0.5.13-rc1
v0.5.13-rc0
v0.5.12
v0.5.12-rc1
v0.5.12-rc0
v0.5.11
v0.5.10
v0.5.9
v0.5.9-rc0
v0.5.8-rc13
v0.5.8
v0.5.8-rc12
v0.5.8-rc11
v0.5.8-rc10
v0.5.8-rc9
v0.5.8-rc8
v0.5.8-rc7
v0.5.8-rc6
v0.5.8-rc5
v0.5.8-rc4
v0.5.8-rc3
v0.5.8-rc2
v0.5.8-rc1
v0.5.8-rc0
v0.5.7
v0.5.6
v0.5.5
v0.5.5-rc0
v0.5.4
v0.5.3
v0.5.3-rc0
v0.5.2
v0.5.2-rc3
v0.5.2-rc2
v0.5.2-rc1
v0.5.2-rc0
v0.5.1
v0.5.0
v0.5.0-rc1
v0.4.8-rc0
v0.4.7
v0.4.6
v0.4.5
v0.4.4
v0.4.3
v0.4.3-rc0
v0.4.2
v0.4.2-rc1
v0.4.2-rc0
v0.4.1
v0.4.1-rc0
v0.4.0
v0.4.0-rc8
v0.4.0-rc7
v0.4.0-rc6
v0.4.0-rc5
v0.4.0-rc4
v0.4.0-rc3
v0.4.0-rc2
v0.4.0-rc1
v0.4.0-rc0
v0.4.0-ci3
v0.3.14
v0.3.14-rc0
v0.3.13
v0.3.12
v0.3.12-rc5
v0.3.12-rc4
v0.3.12-rc3
v0.3.12-rc2
v0.3.12-rc1
v0.3.11
v0.3.11-rc4
v0.3.11-rc3
v0.3.11-rc2
v0.3.11-rc1
v0.3.10
v0.3.10-rc1
v0.3.9
v0.3.8
v0.3.7
v0.3.7-rc6
v0.3.7-rc5
v0.3.7-rc4
v0.3.7-rc3
v0.3.7-rc2
v0.3.7-rc1
v0.3.6
v0.3.5
v0.3.4
v0.3.3
v0.3.2
v0.3.1
v0.3.0
v0.2.8
v0.2.8-rc2
v0.2.8-rc1
v0.2.7
v0.2.6
v0.2.5
v0.2.4
v0.2.3
v0.2.2
v0.2.2-rc2
v0.2.2-rc1
v0.2.1
v0.2.0
v0.1.49-rc14
v0.1.49-rc13
v0.1.49-rc12
v0.1.49-rc11
v0.1.49-rc10
v0.1.49-rc9
v0.1.49-rc8
v0.1.49-rc7
v0.1.49-rc6
v0.1.49-rc4
v0.1.49-rc5
v0.1.49-rc3
v0.1.49-rc2
v0.1.49-rc1
v0.1.48
v0.1.47
v0.1.46
v0.1.45-rc5
v0.1.45
v0.1.45-rc4
v0.1.45-rc3
v0.1.45-rc2
v0.1.45-rc1
v0.1.44
v0.1.43
v0.1.42
v0.1.41
v0.1.40
v0.1.40-rc1
v0.1.39
v0.1.39-rc2
v0.1.39-rc1
v0.1.38
v0.1.37
v0.1.36
v0.1.35
v0.1.35-rc1
v0.1.34
v0.1.34-rc1
v0.1.33
v0.1.33-rc7
v0.1.33-rc6
v0.1.33-rc5
v0.1.33-rc4
v0.1.33-rc3
v0.1.33-rc2
v0.1.33-rc1
v0.1.32
v0.1.32-rc2
v0.1.32-rc1
v0.1.31
v0.1.30
v0.1.29
v0.1.28
v0.1.27
v0.1.26
v0.1.25
v0.1.24
v0.1.23
v0.1.22
v0.1.21
v0.1.20
v0.1.19
v0.1.18
v0.1.17
v0.1.16
v0.1.15
v0.1.14
v0.1.13
v0.1.12
v0.1.11
v0.1.10
v0.1.9
v0.1.8
v0.1.7
v0.1.6
v0.1.5
v0.1.4
v0.1.3
v0.1.2
v0.1.1
v0.1.0
v0.0.21
v0.0.20
v0.0.19
v0.0.18
v0.0.17
v0.0.16
v0.0.15
v0.0.14
v0.0.13
v0.0.12
v0.0.11
v0.0.10
v0.0.9
v0.0.8
v0.0.7
v0.0.6
v0.0.5
v0.0.4
v0.0.3
v0.0.2
v0.0.1
Labels
Clear labels
amd
api
app
bug
build
cli
cloud
compatibility
context-length
create
docker
documentation
embeddings
feature request
feedback wanted
good first issue
gpt-oss
gpu
harmony
help wanted
image
install
intel
js
launch
linux
macos
memory
mlx
model
needs more info
networking
nvidia
ollama.com
performance
pull-request
python
question
registry
rendering
thinking
tools
top
vulkan
windows
wsl
Mirrored from GitHub Pull Request
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/ollama#47844
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @christophrothmann on GitHub (Feb 1, 2024).
Original GitHub issue: https://github.com/ollama/ollama/issues/2308
Hey guys,
can you show us, how we can actually use the provided Ollama API's in an chrome extension.
I tried it before, but I get an 403 - Forbidden error. I already looked in the ollama documentation but did not found anything useful.
Hopefully someone can show us how to use it properly. I opened a stackoverflow question before.
Best regards,
Chris
@remy415 commented on GitHub (Feb 1, 2024):
@DevChrisRoth
Is your Ollama instance being served on the same PC? If not, you may need to set the OLLAMA_HOST environment variable to an interface that allows external connections, and the OLLAMA_ORIGINS environment variable to allow cross-origin requests.
OLLAMA_HOST=0.0.0.0 # Listen on all interfaces
I'm not exactly sure how the OLLAMA_ORIGINS environment variable works, try setting it to the machine you're running the chrome extension on.
https://github.com/ollama/ollama/blob/main/docs/faq.md#how-can-i-expose-ollama-on-my-network
@remy415 commented on GitHub (Feb 1, 2024):
@DevChrisRoth
Ollama uses the Gin CORS package to handle origin requests:
https://github.com/gin-contrib/cors?tab=readme-ov-file#canonical-example
The origin will be whatever domain or IP you're hosting the service that will be connecting to the Ollama API. For example, if you have a button on a website that sends data to the Ollama API, and the user will type "https://example.domain.com/ollama" to get to your website, then put "example.domain.com" in your OLLAMA_ORIGINS environment variable.
If you set
OLLAMA_ORIGINS=192.168.0.69, your Ollama instance will allow connection requests originating from 192.168.0.69, meaning you're hosting your user interface on that IP address. You can also set it toOLLAMA_ORIGINS=example.domain.com,192.168.0.69, and your Ollama instance will allow connection requests originating from both example.domain.com and the IP 192.168.0.69.Edit: Fixed format
@christophrothmann commented on GitHub (Feb 1, 2024):
@remy415
Yeah, thanks for your comment but the issue that I have is, that I make that API call from a Chrome Browser Extension.
I have written a browser extension and when I click on the button of that little window, I make an API call to my local hosted Ollama instance on my pc
Here my Plugin:
--removed the image
...and my api call:

...and the required (I believe)

permissions in the manifest.json File
Maybe that information helps :)
@christophrothmann commented on GitHub (Feb 1, 2024):
I also set the OLLAMA_HOST=0.0.0.0
@remy415 commented on GitHub (Feb 1, 2024):
Can you confirm the API is working properly with a curl request from cli?
curl http://localhost:11434/api/generate -d '{ "model": "codellama",
"prompt": "Why is the sky blue?", "stream": false }'
Edit: Removed metadata sent by my mail client
@christophrothmann commented on GitHub (Feb 1, 2024):
Hi @remy415 ,
yes I confirm that. I tested it with Postman. 😎😉
Maybe Ollama allows no request from an browser extension 😅.
Just to clarify, I did not clone the Ollama repo itself and run that. I run the Application downloaded from the official ollama.ai webpage. Should I try to clone and run that? Makes that a difference?
Best,
Chris
@remy415 commented on GitHub (Feb 1, 2024):
@DevChrisRoth
Building from src likely won't change the issue you're having, that's mostly just to change architectures or enable different CPU features (AVX512, etc) for the llama_cpp backend.
Can you enable debug on startup with
OLLAMA_DEBUG=1 ollama serveand try the connect again, check your screen for the api requests and see what the server logs say when you connect@remy415 commented on GitHub (Feb 1, 2024):
Also, some people on the below stackoverflow forum had problems with other extensions interacting with theirs. Try disabling all other extensions and see if that fixes it.
@remy415 commented on GitHub (Feb 1, 2024):
Have you double-checked that your extension code is good? Is your button sending the proper messages to trigger the extension eventListener?
@christophrothmann commented on GitHub (Feb 1, 2024):
Hey @remy415 ,
I started the ollama serve with your command and got following logging messages back:
I have not activated any other browser extensions, but thanks for your advice :)
@mxyng commented on GitHub (Feb 1, 2024):
Extensions have their own origin. For Chrome, this should be
chrome-extension://so you'll need this forOLLAMA_ORIGINSSee gin-contrib/cors
@christophrothmann commented on GitHub (Feb 2, 2024):
@mxyng ,
so I have to execute following in the terminal? (I'm using it on mac)
launchctl setenv OLLAMA_ORIGIN "chrome-extension://"and then runollama serve?Sorry to ask such a stupid question, but I'm new to this :)
@tomjorquera commented on GitHub (Feb 2, 2024):
I have the same issue, due to CORS (everything work fine when using non-browser clients).
@DevChrisRoth I worked around it for now by adding the following in my service file:
It allows me to test my extension locally, but seems very cumbersome, as each user would need to configure their ollama instance with a similar setting.
What I don't understand is that why this behavior occurs despite me setting the proper
host_permissionsand calling from a background script. This is supposed to allow me to "access to those origins without cross-origin restrictions" (as per the doc linked).I tried both with the
host_permissionsof manifest V3 and the oldpermissionssetting of V2, but still get this behavior both in Firefox and Chromium.@christophrothmann commented on GitHub (Feb 2, 2024):
Hell yeah,

I finally figured it out.
I looked into the server.log file from Ollama
~/.ollama/logs/server.logand there was a useful error message.The solution was to start the Ollama Service in the terminal with following command:
OLLAMA_ORIGINS=chrome-extension://* ollama serveThanks for your help guys! @mxyng , @remy415 , @tomjorquera
@tomjorquera commented on GitHub (Feb 2, 2024):
Can we keep this issue open for now? I feel like the current solution is a workaround, and I don't get why this is needed despite the browser extension supposedly not having cross-origin restriction when set up properly.
@remy415 commented on GitHub (Feb 2, 2024):
@tomjorquera I'm not an expert on browser and CORS configurations, but generally speaking the way you configure your browser to allow specific cross-origin types doesn't override the remote server's configuration to allow types. In this situation, the Ollama service should be considered a "remote server" as it is not explicitly coupled to your local host and is not a "client application". Ollama itself has its own configuration, and if you don't tell it to allow specific cross-origins then it will return a 403 error, even if your browser is configured to allow it. The browser configuration just means which "cross-origins" are allowed to run in the browser, but the server still needs to support it and allow it.
TL;DR: the "host_permission" configuration in the browser is to make the browser allow your COR, but that doesn't override or affect the "remote server" being configured to support and allow your COR.
@tomjorquera commented on GitHub (Feb 2, 2024):
@remy415 I agree.
My question is : wouldn't it be better if the ollama server supported this use case without requiring specific configuration from the user?
@remy415 commented on GitHub (Feb 2, 2024):
Depends on the use case. Allowing various CORs by default would technically make the default installation less secure as the majority of users are just using "ollama run mistral", which doesn't require extension CORs be enabled.
It's purely a design choice, and personally I think leaving it off by default is the better option out of the box as it forces the developer to make a conscious decision about how they want to open their service up to external sources.
The Ollama team does reference setting the env variable to enable various CORS in their development documentation, too.
@tomjorquera commented on GitHub (Feb 2, 2024):
I don't get why allowing access from a (properly configured) browser extension has different security implications than accessing ollama from any other local client installed by the user. Is there some technical limitation of CORs where allowing this would also open up others, less secure, uses also?
I'm genuinely interested in understanding which risks are mitigated by this restriction (taking in account the fact that the browser is already enforcing CORs, and that the extension has to explicitly ask for permission to access localhost from a background task in any case).
@remy415 commented on GitHub (Feb 2, 2024):
That's the key words there: properly configured. Yours might be properly configured, but that doesn't mean that every browser extension is properly configured or even non-malicious. "ollama serve" is its own service: it listens on a port for external traffic. By default it's configured to listen only on localhost (another "more secure" default setting). "ollama run" is a separate part of the ollama application, but it isn't required to interact with the service component. In this particular context, ollama is a service listening on a port, and your browser extension is a client application connecting externally, regardless of your own personal use-case where client and server are both run locally.
When you release an application for general use, it's generally better to only enable features that are required for basic use. When you are configuring "ollama serve" for an external service, there are many other settings that also have to be configured anyway, so it would make sense from a generalized standpoint to also require the server maintainer to enable additional CORS.
Again, we're talking about default settings here: it's generally better to release a product that doesn't enable an inherently insecure feature (because remember: we can't assume everyone properly configures their chrome extension, or that a chrome extension isn't malicious). If a user wants to expose their ollama service externally, they must make the conscious decision to enable external access to their service, which forces a thought process about security.
Remember: exposing services to external clients always has inherent security risks. The cybersecurity field is massive, and well beyond the scope of this forum. Including things such as authentication, authorization, input sanitization, firewalls, etc. are all factors every server owner should think about before deploying any service that is exposed externally.
Last, my own two cents so take it how you will: I don't think it's a big ask to have a developer set an environment variable to configure their service to allow things like browser extensions. It's also mentioned in their developers guide, which users should probably be reading if they intend on developing software to use with ollama.
@christophrothmann commented on GitHub (Feb 2, 2024):
Hey,
I agree with @remy415 on this point.
Nevertheless, I would strongly recommend including this information in the documentation. I'm sure I'm not the first and last person to have problems with CORS.
@tomjorquera commented on GitHub (Feb 2, 2024):
Two clarifications on my message :
host_permissionsin V3, orpermissionsin V2).So my question is in the context of allowing the user to use a browser extension to access ollama locally. It seems to me that, in the same way that I don't need any additional configuration on my ollama instance to interact with it using local clients (e.g. curl), I should be able to interact with it from an extension running locally in my browser.
I agree that it would definitively be weird for ollama to be configured by default to answer any requests from any origin 😄
EDIT:
And tbc, I'm not trying to be contrarian here or anything. I ask because I'm genuinely curious of understanding what would be the reason of disallowing that. So thanks for the replies folks 🙂
@remy415 commented on GitHub (Feb 2, 2024):
Keep in mind that ollama the service (ollama serve) and your extension that interacts with the API are two distinctly different things. By default, services usually come out the gate with minimal features enabled to keep things locked down. It's better to make a user enable services they need rather than make a user disable services they don't need because it's really easy for insecure options to be overlooked when setting up a new service. By forcing the user to enable them, it ensures things don't slip through the cracks. Imagine if you plugged in a new router on your home network, and it was configured to "allow any any"; you would have to then turn off the ports you don't want open rather than explicitly enabling the ports you do want open.
I would recommend adding in your extension's description that the extension requires a running ollama instance configured to allow CORS from Chrome, that the env variable would need to be set before starting the service, and then include a check in your code that if you get a 403 you can inform your users of the possibility that it's the CORS setting causing that error.
Conversely I would review the use-case of such an extension; essentially you are saying you're making an extension that only connects to a locally running instance of a 3rd party application that you have no control over. Maybe instead of an extension, you could create a locally running webpage (maybe via container) using ollama-js library, then make your extension interact with that as a plug-in to the webpage.
I did find something interesting in the cors library documentation:
Note: while Default() allows all origins, DefaultConfig() does not and you will still have to use AllowAllOrigins.Also
Using all origins disables the ability for Gin to set cookies for clients. When dealing with credentials, don't allow all origins.@DevChrisRoth Agreed, it should be in the documentation, and as I've said previously it is in the documentation. Maybe including a reference to the CORS library would be helpful?
https://github.com/ollama/ollama/blob/main/docs/faq.md -- Contains references to the env vars
https://github.com/ollama/ollama/blob/main/docs/development.md
Here's a repost of the documentation from the CORS library that ollama uses:
https://pkg.go.dev/github.com/gin-contrib/cors
@tomjorquera commented on GitHub (Feb 2, 2024):
I understand that 🙂 And I understand the advantage of minimizing the attack surface by default. But here I'm struggling to get what security need is addressed by enforcing this additional verification layer on top of the one the browser is providing.
The server is only available locally by default, and needs an explicit setting (
OLLAMA_HOST) to be set in order to be reachable from the network. Would there be any security risk addingmoz-extension://*andchrome-extension://*to the list of allowed origins? At least in the default case where it's bound to localhost?This is what I will do if the limitation stays. But I would really like to understand what is the actual security use case (if any) covered by this limitation, as I really don't get why allowing to call a local instance from a browser extension would be less safe than from any local client.
The goal of my extension is to provide in-browser functionalities to the user, so that they can call a LLM directly on the content of the pages they are visiting. I want to allow the user to choose among multiple "providers", such as a local ollama instance, OpenAI API etc.
I have considered the solution of using a local application "proxy", but doing that just for supporting ollama seems a little too much (and it seems worse from a security PoV to ask the user to install not only a browser extension but also a full-blown-not-sandboxed application).
@tomjorquera commented on GitHub (Feb 2, 2024):
Or maybe asked more succinctly: what is the use of enforcing a restricted set of origins when ollama is configured to be only accessible locally? 😄
@remy415 commented on GitHub (Feb 2, 2024):
Overall, it seems that ollama defaults do the package's
config := cors.DefaultConfig()with http & https API calls being allowed.Reference documentation:
https://pkg.go.dev/github.com/gin-contrib/cors#readme-using-defaultconfig-as-start-point
In your particular use case, none. But changing the default deployment configuration of the application means that every user who downloads and installs ollama will be running with that default configuration. Probably better to leave it at "cors.DefaultConfig()". Again, I'm not an expert on Go or CORS, I'm just saying that in general it's better to have restrictive defaults than loose defaults.
And just because the default is to disable chrome extensions, doesn't mean you couldn't inform your users that if they're using ollama they would need to set that env variable and restart the service to allow your extension to connect. If you do this, don't forget to inform them that if they intend on making their ollama accessible from external sources they should research and implement proper security for their use-case.
@tomjorquera commented on GitHub (Feb 2, 2024):
Ok so from the discussing I gather that it's ultimately a choice for the ollama team whether to restrict origins when ollama is only accessible locally or not. I would be interested to have the word from the devs on that, but given the length of the (closed) ticket they may have moved on already 😄
Maybe I will create a specific issue to discuss this proposal later on. In the meantime I will document the workaround.
Thanks for the chat @remy415
@remy415 commented on GitHub (Feb 2, 2024):
In the mean time, you could update your extension to say something like
“If you want to use this locally with ollama you can, but you have to update your command to say “OLLAMA_ORIGINS=chrome://* ollama serve”. Note that this will allow any chrome extension to connect and may have security implications if the ollama API is exposed to external clients”
I also recommend researching Zero Trust principles if you’re interested in developing security-conscious architectures, with the key principle is that you don’t implicitly trust anyone or anything, but rather explicitly trust things as you implement proper security mechanisms.
@samheutmaker commented on GitHub (Feb 3, 2024):
+1 on allowing chrome extensions in default CORS settings.
@krngd2 commented on GitHub (Jun 22, 2024):
Hello everyone,
Its still not working for me 😢
I tried allowing "chrome-extension://MY_EXTENSION_ID"
Also this "chrome-extension://*"
also this "0.0.0.0"
restarted Ollama everytime, did not work
1st request is from PostMan works good,
2nd and 3rd requests from Chrom Extention, get tags works but not generate "POST"
@christophrothmann commented on GitHub (Jun 25, 2024):
@krngd2 ,
did you try to start the ollama server like mentioned here?
@krngd2 commented on GitHub (Jun 26, 2024):
That actually worked, I forgot to update the thread. Thanks a lot
@nikleonard commented on GitHub (Jun 26, 2024):
It appears that Windows Ollama is ignoring the ollama_origins=chrome-extension//* env variable, but not always. I'm using ollama windows ver. 0.1.46, and ollama-ui chrome extension (chrome-extension://cmgdpmlhgjhoadnonobjeekmfcehffco). If I load localhost and switch to the remote server ip, it actually loads the model list, but any inference call is responded with a 403. If I reload the page, the /api/tags endpoint also returns 403. My server.log file looks like this:
@Archemike commented on GitHub (Oct 20, 2024):
on windows with the .exe installer i did this and was a more permanent solution.
$env:OLLAMA_ORIGINS="chrome-extension://*"
then
[System.Environment]::SetEnvironmentVariable('OLLAMA_ORIGINS', 'chrome-extension://*', [System.EnvironmentVariableTarget]::User)
then
ollama serve
and my chrome extension is now getting 200 and responses. Only issue is how can users of chrome extension do all this as majority won't be able to figure this out, I hope this gets fixed.
@sulimu2 commented on GitHub (May 30, 2025):
Thanks!!!! it's helpful for me
@Fiavaion commented on GitHub (Apr 23, 2026):
Sharing a Chrome Extension (Manifest V3) context that may be useful here.
I've been building AssisT, an open-source accessibility extension for neurodivergent students in Canvas/Moodle. It uses Ollama as the local AI backend. Here's the exact behaviour we hit:
What works without any OLLAMA_ORIGINS config:
MV3 service workers can reach http://localhost:11434 for GET /api/tags and POST /api/generate with no issues. Service workers have special localhost access privileges and don't need mode: 'cors' set explicitly.
What doesn't work:
POST /api/pull returns 403 Forbidden from a service worker, even though POST /api/generate on the same origin succeeds. The inconsistency is the confusing part — users (and developers) reasonably assume if generate works, pull will too.
Workaround we document:
OLLAMA_ORIGINS=* ollama serve
Or tell users to pull models in terminal instead: ollama pull modelname
The upstream ask:
Either make /api/pull behave consistently with /api/generate for localhost callers, or add a note to the CORS docs specifically calling out that chrome-extension:// origins need OLLAMA_ORIGINS for the pull endpoint even when other endpoints work fine.