Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
OramaCore is the complete runtime you need for your projects, answer engines, copilots, and search. It includes a fully-fledged full-text search engine, vector database, LLM interface, and many more utilities.
| Date | Stars |
|---|---|
| 2026-07-31 | 258 |
| 2026-08-07 | 258 |
| 2026-08-15 | 259 |
| 2026-08-21 | 260 |
| 2026-08-29 | 261 |
| 2026-09-29 | 262 |
| 2026-10-13 | 263 |
| 2026-10-22 | 263 |
| 2026-10-23 | 263 |
| 2026-10-26 | 265 |
| 2026-11-04 | 265 |
Today
— stars today
This week
— stars this week
This month
+3 stars this month
Momentum
35.0
growth rate 0.00%/day

**OramaCore** is the AI runtime you need for your projects, answer engines,
copilots, and search.
It includes a fully-fledged full-text search engine, vector database, LLM
interface with action planning and reasoning, a JavaScript runtime to write and
run your own custom agents on your data, and many more utilities.
## Getting Started
The absolute easier way to get started is by following the
[docker-compose.yml](./docker-compose.yml) file that you can find in this
repository.
You can either clone the entire repo or setup `oramasearch/oramacore:latest` as
image in your `docker-compose.yml` file under the `oramacore` service.
Then compile your
[configuration file](https://docs.oramacore.com/docs/guide/configuration) and
run it:
```sh
docker compose up
```
This will create the following architecture, allowing you to perform
high-performance RAG with little to zero configuration.

An NVIDIA GPU is highly recommended for running the application. For production
usage, we recommend using minimum one NVIDIA A100. Optimal configuration would
include four NVIDIA H100.
## Document storage
Document storage normalizes each batch before reserving Zebo space: IDs are
sorted in release builds and duplicate IDs keep the last write in that batch.
This applies to global read commits, collection read commits, and collection
write inserts. Read commits normalize the whole uncommitted snapshot, including
documents accumulated across several updates. Before a commit, existing read
paths still return the first uncommitted copy of a repeated ID.
The Zebo dependency is pinned to an immutable git revision with release-mode
batch ordering checks. Replayed IDs across batches remain accepted with a
warning; a copy below a page's starting ID still routes to an earlier page.
## Available Dockerfiles
Depending on your machine, you may want to use different Docker images.
| Application | CPU/GPU | Docker image |
| ------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------- |
| **OramaCore** | X86_64 | [`oramasearch/oramacore`](https://hub.docker.com/r/oramasearch/oramacore) |
| **OramaCore** | ARM64 (Mac M series for example) | [`oramasearch/oramacore-arm64`](https://hub.docker.com/r/oramasearch/oramacore-arm64) |
| **AI Server** | Any CPU architecture, no CUDA access | [`oramasearch/oramacore-ai-server`](https://hub.docker.com/r/oramasearch/oramacore-ai-server) |
| **AI Server** | Any CPU architecture, CUDA available | [`oramasearch/oramacore-ai-server-cuda`](https://hub.docker.com/r/oramasearch/oramacore-ai-server-cuda) |
## Using the JavaScript SDK
You can install the official JavaScript SDK with npm:
```sh
npm i @orama/core
```
Then, you can start by creating a collection (a database index) with all of the
data you want to perform AI search & experiences on:
```js
import { OramaCoreManager } from "@orama/core";
const orama = new OramaCoreManager({
url: "http://localhost:8080",
masterAPIKey: "<master-api-key>", // The master API key set in your config file
});
const newCollection = await orama.createCollection({
id: "products",
writeAPIKey: "my-write-api-key", // A custom API key to perform write operations on your collection
readAPIKey: "my-read-api-key", // A custom API key to perform read operations on your collection
});
```
Then, insert some data:
```js
import { CollectionManager } from "@orama/core";
const collection = new CollectionManager({
url: "http://localhost:8080",
collectionID: "<COLLECTION_ID>",
writeAPIKey: "<write_api_key>",
});
// You can insert a single document
await collection.insExcerpt of 8,023 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:eed4c4d6d673017a, topic:vector-database, topic:vector-search, desc:vector database