Open Source Files

NeomeAI View or download files
📁

Neome OpenSource

Download the source files, run local clients, connect your browser, terminal, database, API tools, and AI backends. Simple, deterministic, and yours.

Instructions

How to run the Chrome extension and connect your Client ID

This extension connects your browser directly to NeomeAI. Once connected, you get a Client ID that you paste into the Social Website node.

Step 1: Install the extension

  1. Download or extract the extension folder.
  2. Open chrome://extensions/.
  3. Enable Developer mode.
  4. Click Load unpacked.
  5. Select your extension folder.

Step 2: Open the extension

  1. Click the extension icon in Chrome.
  2. Open Neome Poster.
You will see a Client ID. If it says Connecting..., wait a few seconds or click Refresh.

Step 3: Paste into Social Website node

  1. Add a Social Website node.
  2. Paste your Client ID into the node.
  3. Click Connect.

Keep Chrome open and stay logged into each platform you want to automate.

How to add a new platform

Each platform lives inside the CustomScripts folder, and background.js sends commands to the correct script.

Structure:
background.js
manifest.json
popup.html
popup.js
CustomScripts/x.js
CustomScripts/reddit.js
CustomScripts/tiktok.js
CustomScripts/gmail.js
CustomScripts/telegram.js

Step 1: Add website permission

"host_permissions": [
	"https://x.com/*",
	"https://www.reddit.com/*",
	"https://www.tiktok.com/*",
	"https://mail.google.com/*",
	"https://web.telegram.org/*",
	"https://discord.com/*"
]

Step 2: Add the platform script

export async function handleCommand(data) {
	const action = String(data.action || "").trim().toLowerCase();
	if (action !== "post") return;

	// your platform logic here
}

Step 3: Connect it in background.js

import { handleCommand as handleDiscordCommand } from "./CustomScripts/discord.js";

const platformHandlers = {
	x: handleXCommand,
	reddit: handleRedditCommand,
	tiktok: handleTikTokCommand,
	gmail: handleGmailCommand,
	telegram: handleTelegramCommand,
	discord: handleDiscordCommand
};

Reload the extension from chrome://extensions/, then refresh the website tab.

How messages flow

The system uses simple command and event messages.

Command from Neome to browser

{
	"type": "cmd",
	"platform": "x",
	"action": "post",
	"text": "Hello from NeomeAI"
}

Event from browser to Neome

{
	"type": "event",
	"platform": "x",
	"event": "mention",
	"mention": {
		"author": "user",
		"text": "hey check this",
		"url": "https://x.com/..."
	}
}
Simple rule: cmd tells the browser what to do. event tells NeomeAI what happened.
How to run client.py for Virtual Env node

No special platform required. Works on Mac, Linux, and Windows.

cd your-folder
python3 -m venv venv
source venv/bin/activate
pip install websockets==12.0
python3 client.py

When client.py starts, copy the Client ID and paste it into the Virtual Env node.

Windows

cd your-folder
py -m venv venv
.\venv\Scripts\activate
pip install websockets==12.0
py client.py
How to run database.py for Database node

Configure DB_PATH and DB_PASSWORD at the top of database.py.

cd your-folder
python3 -m venv venv
source venv/bin/activate
pip install websockets==12.0
python3 database.py

Copy the displayed Client ID into the Database node. Your database credentials stay inside database.py.

How to run terminal.py for Terminal node

Run the terminal client locally, then paste its Client ID into the Terminal node.

cd your-folder
python3 -m venv venv
source venv/bin/activate
pip install websockets==12.0
python3 terminal.py
How to use Custom API node

Paste your endpoint URL into API URL. No local client required.

GET

https://your-api.com/endpoint

POST

POST https://your-api.com/endpoint
Content-Type: application/json
{"message":"Hello from NeomeAI"}

The response flows back into your workflow.

Cool endpoints

Jokes
https://official-joke-api.appspot.com/random_joke
https://v2.jokeapi.dev/joke/Any

Images
https://api.thecatapi.com/v1/images/search
https://dog.ceo/api/breeds/image/random
https://randomfox.ca/floof/
https://picsum.photos/800

Random
https://randomuser.me/api/
https://cataas.com/cat/says/NEOME

Food
https://www.themealdb.com/api/json/v1/1/random.php
https://www.thecocktaildb.com/api/json/v1/1/random.php

Feeds
https://zenquotes.io/api/random
https://api.spacexdata.com/v5/launches/latest
https://www.reddit.com/r/worldnews.json
https://www.reddit.com/r/artificial.json

RSS → JSON
https://api.rss2json.com/v1/api.json?rss_url=https://feeds.bbci.co.uk/news/rss.xml
https://api.rss2json.com/v1/api.json?rss_url=http://rss.cnn.com/rss/edition.rss
How to run your own WebSocket server

This is optional. Run your WebSocket server on your own domain when you want full control.

Install basics

sudo apt update
sudo apt install nginx python3 python3-venv certbot python3-certbot-nginx -y

Create project

cd /var/www/yourserver.com/WSserver
python3 -m venv venv
source venv/bin/activate
pip install websockets==12.0

Run server

nohup ./venv/bin/python server.py > server.log 2>&1 &

Nginx reverse proxy

server {
	listen 80;
	listen [::]:80;
	server_name yourserver.com www.yourserver.com;

	location / {
		proxy_pass http://127.0.0.1:8888;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "upgrade";
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
	}
}

SSL

sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d yourserver.com -d www.yourserver.com

Use wss://yourserver.com as the endpoint in your node.

Bridge

🌉 One bridge for every backend

bridge.neome.com/v1

Use the Neome hosted bridge or host your own. Same idea, same client, same clean routing. Connect OpenAI-compatible tools, local LLMs, image servers, voice engines, Whisper, Gradio apps, and custom endpoints.

openai ollama a1111 comfyui gradio omni piper kokoro coqui whisper localai lmstudio vllm llamacpp tgwui koboldcpp invokeai forge sdnext swarmui flux custom

Use Neome hosted

Fastest setup. Run only bridge.py and connect to https://bridge.neome.com/v1.

🛠️

Self-host option

Run bridgeserver.py on your own server when you want full infrastructure control.

🧩

Every backend

Ollama, ComfyUI, vLLM, LocalAI, LM Studio, Gradio, Whisper, custom APIs, and more.

Option 1: Use Neome hosted bridge

This is the recommended setup. Neome hosts bridgeserver.py. You only run bridge.py on your backend machine.

Flow: request → https://bridge.neome.com/v1 → bridge.py → your backend worker
cd your-bridge-folder
python3 -m venv venv
source venv/bin/activate
pip install websockets requests
python3 bridge.py

Client config

SERVER_URL = "https://bridge.neome.com/v1"

When bridge.py starts, it displays a Bridge Key:

sk_neome_xxxxxxxxxxxxxxxxx

Copy this key and use it as the API key inside your NeomeAI endpoint.

This key identifies and routes requests through your connected bridge client.

Windows

cd your-bridge-folder
py -m venv venv
.\venv\Scripts\activate
pip install websockets requests
py bridge.py
Option 2: Host your own bridge server

This is optional. Use it when you want your own public endpoint instead of https://bridge.neome.com/v1.

Flow: request → https://yourserver.com/v1 → bridge.py → your backend

Run bridgeserver.py

cd /var/www/yourserver.com/bridge
python3 -m venv venv
source venv/bin/activate
pip install websockets aiohttp requests
python3 bridgeserver.py

Run in background

cd /var/www/yourserver.com/bridge
nohup ./venv/bin/python bridgeserver.py > bridgeserver.log 2>&1 &

Nginx example for /v1

server {
	listen 80;
	server_name yourserver.com;

	location /v1/ {
		proxy_pass http://127.0.0.1:8888/;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "upgrade";
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_read_timeout 300;
		proxy_send_timeout 300;
	}
}

Install SSL

sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d yourserver.com

Client config for self-hosted bridge

SERVER_URL = "https://yourserver.com/v1"
Example OpenAI-compatible request
curl https://bridge.neome.com/v1/chat/completions \
	-H "Authorization: Bearer sk_neome_xxxxx" \
	-H "Content-Type: application/json" \
	-d '{
		"backend": "ollama",
		"model": "auto",
		"messages": [
			{
				"role": "user",
				"content": "hello"
			}
		]
	}'
OpenAI-Compatible Parameters
Parameter Description
typeRequest type (chat, completion, embedding, image, image_edit, image_variation, stt, tts, video, video_edit)
modelModel name or auto selection
messagesOpenAI chat message array
promptGeneration prompt
inputInput text
image[]Base64 image array
video[]Base64 video array
audio[]Base64 audio array
negative_promptExclude unwanted output
sizeImage dimensions (1024x1024)
resolutionVideo resolution (720p, 1080p)
durationOutput duration in seconds
fpsFrames per second
nNumber of outputs
seedDeterministic generation seed
stepsInference iterations
cfg_scalePrompt guidance strength
strengthEdit / img2img intensity
temperatureRandomness for text
top_pNucleus sampling
top_kCandidate token limit
max_tokensMaximum generated tokens
streamEnable streaming
voiceTTS voice preset
languageLanguage or auto detect
speedSpeech speed multiplier
formatOutput format (png, jpg, wav, mp4)
qualityOutput quality
response_formatbase64, url, json
metadataCustom metadata object
Neome Type (Unified Endpoint)

Neome supports a unified request format. Use a single endpoint and select the operation using type. Set backend: "auto" to automatically choose the one available on your backend.

type Equivalent OpenAI Route
models/v1/models
chat/v1/chat/completions
completion/v1/completions
embedding/v1/embeddings
image/v1/images/generations
image_edit/v1/images/edits
image_variation/v1/images/variations
stt/v1/audio/transcriptions
translation/v1/audio/translations
tts/v1/audio/speech
video/v1/videos/generations
video_edit/v1/videos/edits

curl https://bridge.neome.com/v1 \
			-H "Authorization: Bearer sk_neome_xxxxx" \
			-H "Content-Type: application/json" \
			-d '{
				"type": "chat",
				"backend": "auto",
				"model": "auto",
				"messages": [
					{
						"role": "user",
						"content": "hello"
					}
				]
			}'

Simple mode: backend: "auto" → automatic backend selection
model: "auto" → automatic model selection

Custom backend example

Use custom for anything that does not fit a standard backend.

{
	"backend": "custom",
	"url": "http://127.0.0.1:8080/v1/chat/completions",
	"method": "POST",
	"headers": {
		"Content-Type": "application/json"
	},
	"body": {
		"model": "auto",
		"messages": [
			{"role": "user", "content": "hello"}
		]
	}
}
bridge.neome.com bridge.neome.com saved me bridge.neome.com connect