Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions ADOPTERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Adopters

Organisations running LocalAI, listed by the people who run it.

If your organisation uses LocalAI and you are happy to say so publicly, open a
pull request adding a row to the table below. That pull request is how we know
we have permission to list you, which is why we do not add anybody ourselves.

You do not need to be a large company, and you do not need to disclose anything
sensitive. A sentence on what you use it for is more useful to other readers
than a logo.

## How to add yourself

1. Add a row to the table, in alphabetical order.
2. Use your organisation's usual name and a link to your site.
3. Say briefly what you use LocalAI for, and whether it is in production.
4. Open the pull request from an account that makes it plausible you speak for
the organisation, or say in the description who you are. We may ask.

To be removed, open a pull request deleting your row, or email
[info@localai.io](mailto:info@localai.io). We will not ask why.

## Who is using LocalAI

<!-- Keep alphabetical. Columns: Organisation | What for | Status -->

| Organisation | What they use it for | Status |
|---|---|---|
| _Your organisation here_ | | |

## What this list is not

This is not a list of everyone who has ever starred the repository, and it is
not a list of the employers of people who have contributed a patch. Both of
those are easy to scrape and neither means what a logo wall implies.

The website shows two separate things, both of which are checkable without
anybody's permission:

- **Engineers from these companies have contributed code.** Evidence is the
commit history plus the employer on that person's public GitHub profile. It
is a claim about a person, not about their employer.
- **These projects integrate LocalAI.** Evidence is a reference to LocalAI in
that project's own repository or documentation.

Those two lists live in [`website/data/ecosystem.yaml`](website/data/ecosystem.yaml).
This file is the third, stronger thing: organisations that chose to say so.
97 changes: 97 additions & 0 deletions website/data/ecosystem.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# Who shows up around LocalAI, and the evidence for each claim.
#
# Three lists, three different strengths of evidence. Keep them separate: a
# person fixing a typo is not their employer adopting the project, and saying
# so invites a takedown request.
#
# contributors someone with commits in this repository whose public GitHub
# profile names that employer. Evidence is the commit history
# plus a self-declared field, so the claim is about the person.
# integrations the other project's own repository or documentation
# references LocalAI. Checkable by anyone, needs no permission.
# press somebody else published a piece about LocalAI.
#
# Companies that want to say they use LocalAI add themselves to ADOPTERS.md at
# the repository root. That pull request is the permission, which is why the
# adopters list is kept apart from this file.
#
# Refreshed on 2026-07-31. Contribution counts are from the GitHub API.

contributors:
note: "Engineers whose public profile names these employers have commits in the repository."
companies:
- { name: "Microsoft", people: 3, commits: 20 }
- { name: "Spectro Cloud", people: 3, commits: 11 }
- { name: "VictoriaMetrics", people: 1, commits: 5 }
- { name: "Acronis", people: 1, commits: 5 }
- { name: "BearingPoint", people: 1, commits: 4 }
- { name: "Zendesk", people: 1, commits: 3 }
- { name: "Nextcloud", people: 1, commits: 2 }
- { name: "Scaleway", people: 1, commits: 2 }
- { name: "Kubermatic", people: 1, commits: 2 }
- { name: "Avanade", people: 1, commits: 2 }
- { name: "IBM", people: 1, commits: 1 }
- { name: "Ableton", people: 1, commits: 1 }
- { name: "Atlassian", people: 1, commits: 1 }
- { name: "TikTok", people: 1, commits: 1 }
- { name: "CockroachDB", people: 1, commits: 1 }
- { name: "MediaTek", people: 1, commits: 1 }
- { name: "Samsung SDS", people: 1, commits: 1 }
- { name: "Ant Group", people: 1, commits: 1 }
- { name: "Deloitte", people: 1, commits: 1 }
- { name: "solo.io", people: 1, commits: 1 }
- { name: "Qonto", people: 1, commits: 1 }
academia:
- MIT
- University of Edinburgh
- RMIT
- Rochester Institute of Technology
- University of Miami
- USC

integrations:
note: "These projects reference LocalAI in their own repository or documentation."
projects:
- name: AnythingLLM
by: Mintplex Labs
url: https://github.com/Mintplex-Labs/anything-llm
what: "Runs LocalAI as a model provider for its chat and document workspaces."
- name: langchain4j
url: https://github.com/langchain4j/langchain4j
what: "Ships a LocalAI module, so JVM applications can target it directly."
- name: LangChain
url: https://python.langchain.com/docs/integrations/providers/localai/
what: "Documents LocalAI as a provider in the Python integrations."
- name: Flowise
by: FlowiseAI
url: https://github.com/FlowiseAI/Flowise
what: "Offers LocalAI as a node for chat and embeddings in its visual builder."
- name: AIKit
by: Sertac Ozercan
url: https://github.com/sozercan/aikit
what: "Builds fine-tuned models into images that serve through LocalAI."
- name: Kairos
url: https://github.com/kairos-io/kairos
what: "Ships LocalAI as part of its immutable Linux distribution."

press:
note: "Written about LocalAI, by people who do not work on it."
articles:
- outlet: SUSE
title: "Running AI locally"
author: "Christian Huller"
date: "2025-11-24"
url: https://www.suse.com/c/running-ai-locally/
what: "Deploying LocalAI on openSUSE, then driving it from VS Code."
- outlet: SUSE
title: "Adding own documents to your local AI using RAG"
url: https://www.suse.com/c/adding-own-documents-to-your-local-ai-using-rag/
what: "Retrieval over your own documents, on top of LocalAI."
- outlet: SUSE
title: "Local AI and Confluence"
url: https://www.suse.com/c/local-ai-and-confluence/
what: "Putting a Confluence space behind a local model."
- outlet: SUSE
title: "Introduction to AI training with openSUSE"
url: https://www.suse.com/c/introduction-to-ai-training-with-opensuse/
what: "Training a LoRA and serving it through LocalAI."
29 changes: 29 additions & 0 deletions website/layouts/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,35 @@ <h2 class="rv mt1" style="max-width:22ch">Forty-eight thousand stars, and still
<span>Deutsch</span><span>Español</span><span>français</span><span>日本語</span>
<span>한국어</span><span>Português</span><span>Русский</span><span>中文</span>
</div>
<p class="kicker rv mt3">Who turns up around it</p>
<h3 class="eco__h rv">Engineers from these companies have put code in</h3>
<p class="eco__note rv">Every name below is a person with commits in the repository whose public profile
names that employer. It is a claim about them, not about their employer, and the commit history is
there if you want to check it. Organisations that want to say they use LocalAI add themselves to
<a href="https://github.com/mudler/LocalAI/blob/master/ADOPTERS.md">ADOPTERS.md</a>.</p>
<ul class="eco eco--co rv">
{{- range .Site.Data.ecosystem.contributors.companies }}
<li><b>{{ .name }}</b><span>{{ .commits }} commit{{ if ne .commits 1 }}s{{ end }}{{ if gt .people 1 }}, {{ .people }} people{{ end }}</span></li>
{{- end }}
</ul>
<p class="eco__aside rv">Plus researchers at {{ delimit .Site.Data.ecosystem.contributors.academia ", " " and " }}.</p>

<h3 class="eco__h rv mt3">And these projects integrate it</h3>
<p class="eco__note rv">Each one references LocalAI in its own repository or documentation, so you can
verify any of them without taking our word for it.</p>
<div class="eco eco--int rv">
{{- range .Site.Data.ecosystem.integrations.projects }}
<a href="{{ .url }}"><b>{{ .name }}</b>{{ with .by }}<em>{{ . }}</em>{{ end }}<span>{{ .what }}</span></a>
{{- end }}
</div>

<h3 class="eco__h rv mt3">Written about elsewhere</h3>
<div class="eco eco--press rv">
{{- range .Site.Data.ecosystem.press.articles }}
<a href="{{ .url }}"><b>{{ .outlet }}</b><span>{{ .title }}</span><em>{{ .what }}</em></a>
{{- end }}
</div>

<p class="kicker rv mt3">What other people say</p>
<div class="headline">
<a class="hq rv" href="https://x.com/ggerganov/status/2065447087311917459">
Expand Down
40 changes: 40 additions & 0 deletions website/static/css/site.css
Original file line number Diff line number Diff line change
Expand Up @@ -432,3 +432,43 @@ footer{background:var(--deep);border-top:1px solid var(--line2);padding:3rem 0 4
.rv,.fd{opacity:1;transform:none}.hero h1 u b{transform:none}
.bars i,.sz i{transform:scaleX(1)}
}

/* ---- Ecosystem band ----------------------------------------------------
Three lists, three strengths of evidence, kept visually distinct so a
contributor's employer never reads as a customer logo. Names are set in
type rather than fetched as logos: no trademark question, and it matches
the rest of the page. */
.eco__h{font-size:clamp(1.25rem,2.3vw,1.7rem);margin-top:1.1rem}
.eco__note{color:var(--dim);font-size:.92rem;max-width:66ch;margin-top:.7rem}
.eco__note a{color:var(--cyan);text-decoration:underline;text-underline-offset:.2rem}
.eco__aside{color:var(--faint);font-size:.85rem;margin-top:1rem;max-width:66ch}

.eco{list-style:none;padding:0;margin:1.4rem 0 0}
.eco--co{display:flex;flex-wrap:wrap;gap:.5rem}
.eco--co li{display:flex;align-items:baseline;gap:.5rem;padding:.5rem .8rem;border-radius:999px;
border:1px solid var(--line);background:rgba(255,255,255,.028);transition:border-color .22s,background .22s}
.eco--co li:hover{border-color:rgba(95,205,228,.5);background:rgba(95,205,228,.07)}
.eco--co b{font-size:.9rem;font-weight:600;color:var(--ink)}
.eco--co span{font-family:'Geist Mono',monospace;font-size:.6rem;color:var(--faint);white-space:nowrap}

.eco--int{display:grid;gap:.8rem}
@media(min-width:700px){.eco--int{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1020px){.eco--int{grid-template-columns:repeat(3,1fr)}}
.eco--int a{display:flex;flex-direction:column;gap:.3rem;padding:1.05rem 1.1rem;border-radius:10px;
border:1px solid var(--line);background:rgba(255,255,255,.028);
transition:transform .26s cubic-bezier(.16,1,.3,1),border-color .26s}
.eco--int a:hover{transform:translateY(-3px);border-color:rgba(95,205,228,.55)}
.eco--int b{font-size:1rem;color:var(--ink)}
.eco--int em{font-family:'Geist Mono',monospace;font-size:.6rem;font-style:normal;color:var(--cyan)}
.eco--int span{color:var(--dim);font-size:.85rem}

.eco--press{display:grid;gap:.8rem}
@media(min-width:760px){.eco--press{grid-template-columns:repeat(2,1fr)}}
.eco--press a{display:grid;gap:.25rem;padding:.95rem 1.05rem;border-radius:10px;
border:1px solid var(--line);border-left:2px solid var(--cyan);background:rgba(255,255,255,.028);
transition:background .22s}
.eco--press a:hover{background:rgba(95,205,228,.07)}
.eco--press b{font-family:'Geist Mono',monospace;font-size:.62rem;letter-spacing:.12em;
text-transform:uppercase;color:var(--cyan)}
.eco--press span{color:var(--ink);font-size:.94rem}
.eco--press em{color:var(--faint);font-size:.82rem;font-style:normal}
Loading