lightweight, high-performance Personal AI Agent assistant workspace built using Node.js
See the code⭐ Star Us on GitHub! If you find RoninAgent useful or inspiring, please consider giving this repository a star! It helps the project grow and fuels future development. 🚀
[!NOTE] Rebranding Notice: RoninAgent was formerly known as OpenPAIAgent (Open Personal AI Agent). Same lightning-fast, zero-bloat architecture — now with a stronger sovereign identity.
RoninAgent is a high-speed, zero-bloat open-source personal AI agent built for absolute privacy, local execution, and total autonomy. Designed as an ultra-lightweight alternative to resource-heavy frameworks, it drops complex abstractions like LangChain in favor of pure TypeScript performance, sub-second cold starts, and complete data sovereignty.
[!TIP] 🌍 Built for markets Western agents can't read. Out of the box RoninAgent understands Wildberries, Ozon, List.am (Armenia), Temu and Amazon — each skill carries that marketplace's real URL structure, price-sorting parameters and parsing rules, so the agent can actually pull and compare live listings. Trigger keywords are bilingual (
wildberries/вайлдберриз,ozon/озон,list.am/лист ам), so you can ask in English or Russian.
Agent.md, Identity.md, User.md, Memory.md) and tailor prompt instructions for each specialized agent.Agent.md, Identity.md, User.md, Memory.md).skills/*.md (with optional agent-specific overrides in agents/<agentId>/skills/*.md). When a query matches header keywords (e.g., Keywords: amazon, wildberries, temu, code), instructions are dynamically injected into the system prompt. Comes with pre-built skills for:
sharp and native parsing for documents (PDF, Word, Excel, Text/CSV/JSON).workspace/ folder:
.pdf), Word documents (.docx, .doc), and Excel spreadsheets (.xlsx, .xls with multi-sheet inspection)..xlsx) with custom columns, row styling, and formulas; build styled Word documents (.docx) with headings and tables; render custom HTML/CSS into professional A4 PDF documents; and create/update text/code files.sqlite-vec extension.RoninAgent is built with a clear focus on lightweight, efficient, and transparent AI engineering:
sqlite-vec extension for vector embeddings.LIKE queries), providing high-recall context retrieval with zero external database dependencies (no pgvector, Qdrant, or Pinecone required).This project is designed for anyone who wants a personal AI assistant that can seamlessly process documents (read & create PDF, Word, Excel, and text files), browse the web, generate images, and communicate smoothly through a slick web interface or remotely on-the-go via a Telegram bot.
RoninAgent runs entirely on your local machine or private server. All chat history, settings, and workspace documents are stored in a local SQLite database. Your private data never leaves your computer, and you retain absolute control over which external APIs (like OpenRouter or Together AI) are called.
Built with clean TypeScript and vanilla web technologies under the MIT license. No massive, opaque frameworks (like LangChain) or hidden tracking. You have full transparency, can easily audit the source code, and can freely modify or extend the agent's tools and behaviors.
better-sqlite3 & sqlite-vec extension.sharp (images), pdf-parse (PDF reading), mammoth (Word reading), exceljs (Excel reading & generation), docx (Word generation).axios + cheerio + puppeteer (headless Chrome for dynamic scraping and PDF generation).telegraf.git clone https://github.com/nordevelopment/RoninAgent
cd RoninAgent
npm install
(Alternatively, you can download and extract the ZIP archive directly from GitHub).
Configuration can be set up beforehand via a .env file or configured interactively via the Web Setup Wizard on first launch.
# Start - Build & launch the server
npm start
Once started, open http://127.0.0.1:3000 in your browser. If no configuration is detected, you will be automatically redirected to the setup wizard. You can also adjust settings later via the Settings page in the UI.
# Run the development server (with hot reloading)
npm run dev
# Recreate/reset the SQLite database schema
npm run db:reset
# Run build only
npm run build
RoninAgent includes built-in security features to protect your server, files, and API balances when deployed remotely. These security settings can be easily configured either during the first-launch setup wizard, or later at any time via the Web Settings Panel (/settings page in the UI).
[!WARNING] Never expose port 3000 directly to the internet. HTTP Basic Auth sends your password in plain text — over an unencrypted connection anyone on the path can read it. For remote access, put RoninAgent behind a TLS reverse proxy, or reach it over a private network (Tailscale / WireGuard).
A complete
Caddyfile— Caddy obtains and renews the certificate automatically:agent.example.com { reverse_proxy 127.0.0.1:3000 }Keep
HOST=127.0.0.1so only the proxy can reach the app, and set a strongAPP_PASSWORD.
APP_PASSWORD (and optionally APP_USER) in your .env (or via Settings UI) to enable it. Leaving APP_PASSWORD empty disables authentication (ideal for local localhost use); if you do that while binding to a non-loopback HOST, a warning is logged at startup.429 with a Retry-After header). Only failures are counted, so a legitimate session is never throttled.ALLOWED_TELEGRAM_USER_IDS in your .env (or via Settings UI) with a comma-separated list of Telegram User IDs to prevent unauthorized users from using your bot and API balances.path.relative comparison to ensure the AI cannot escape or access files outside the designated workspace/ folder.agents/ folder.crypto.randomUUID() and session cookies are protected with sameSite: 'lax' and conditional secure flags.https://www.youtube.com/watch?v=rcRkP_UiDRo
While other self-hosted AI interfaces require heavy setups (Docker, multi-container databases, etc.), RoninAgent is optimized for raw local performance and resource conservation:
sqlite-vec library extension.stealth_journal.md), and sandbox boundary probing by an autonomous LLM agent (qwen3.5-flash) within RoninAgent.
If this project saved your RAM and made your local AI workflow smoother, consider supporting its development:
This project is open-source and licensed under the MIT License.
177 commits
TypeScript
58.2%
HTML
18.0%
Vue
16.1%
CSS
7.0%
lightweight, high-performance Personal AI Agent assistant workspace built using Node.js
See the code⭐ Star Us on GitHub! If you find RoninAgent useful or inspiring, please consider giving this repository a star! It helps the project grow and fuels future development. 🚀
[!NOTE] Rebranding Notice: RoninAgent was formerly known as OpenPAIAgent (Open Personal AI Agent). Same lightning-fast, zero-bloat architecture — now with a stronger sovereign identity.
RoninAgent is a high-speed, zero-bloat open-source personal AI agent built for absolute privacy, local execution, and total autonomy. Designed as an ultra-lightweight alternative to resource-heavy frameworks, it drops complex abstractions like LangChain in favor of pure TypeScript performance, sub-second cold starts, and complete data sovereignty.
[!TIP] 🌍 Built for markets Western agents can't read. Out of the box RoninAgent understands Wildberries, Ozon, List.am (Armenia), Temu and Amazon — each skill carries that marketplace's real URL structure, price-sorting parameters and parsing rules, so the agent can actually pull and compare live listings. Trigger keywords are bilingual (
wildberries/вайлдберриз,ozon/озон,list.am/лист ам), so you can ask in English or Russian.
Agent.md, Identity.md, User.md, Memory.md) and tailor prompt instructions for each specialized agent.Agent.md, Identity.md, User.md, Memory.md).skills/*.md (with optional agent-specific overrides in agents/<agentId>/skills/*.md). When a query matches header keywords (e.g., Keywords: amazon, wildberries, temu, code), instructions are dynamically injected into the system prompt. Comes with pre-built skills for:
sharp and native parsing for documents (PDF, Word, Excel, Text/CSV/JSON).workspace/ folder:
.pdf), Word documents (.docx, .doc), and Excel spreadsheets (.xlsx, .xls with multi-sheet inspection)..xlsx) with custom columns, row styling, and formulas; build styled Word documents (.docx) with headings and tables; render custom HTML/CSS into professional A4 PDF documents; and create/update text/code files.sqlite-vec extension.RoninAgent is built with a clear focus on lightweight, efficient, and transparent AI engineering:
sqlite-vec extension for vector embeddings.LIKE queries), providing high-recall context retrieval with zero external database dependencies (no pgvector, Qdrant, or Pinecone required).This project is designed for anyone who wants a personal AI assistant that can seamlessly process documents (read & create PDF, Word, Excel, and text files), browse the web, generate images, and communicate smoothly through a slick web interface or remotely on-the-go via a Telegram bot.
RoninAgent runs entirely on your local machine or private server. All chat history, settings, and workspace documents are stored in a local SQLite database. Your private data never leaves your computer, and you retain absolute control over which external APIs (like OpenRouter or Together AI) are called.
Built with clean TypeScript and vanilla web technologies under the MIT license. No massive, opaque frameworks (like LangChain) or hidden tracking. You have full transparency, can easily audit the source code, and can freely modify or extend the agent's tools and behaviors.
better-sqlite3 & sqlite-vec extension.sharp (images), pdf-parse (PDF reading), mammoth (Word reading), exceljs (Excel reading & generation), docx (Word generation).axios + cheerio + puppeteer (headless Chrome for dynamic scraping and PDF generation).telegraf.git clone https://github.com/nordevelopment/RoninAgent
cd RoninAgent
npm install
(Alternatively, you can download and extract the ZIP archive directly from GitHub).
Configuration can be set up beforehand via a .env file or configured interactively via the Web Setup Wizard on first launch.
# Start - Build & launch the server
npm start
Once started, open http://127.0.0.1:3000 in your browser. If no configuration is detected, you will be automatically redirected to the setup wizard. You can also adjust settings later via the Settings page in the UI.
# Run the development server (with hot reloading)
npm run dev
# Recreate/reset the SQLite database schema
npm run db:reset
# Run build only
npm run build
RoninAgent includes built-in security features to protect your server, files, and API balances when deployed remotely. These security settings can be easily configured either during the first-launch setup wizard, or later at any time via the Web Settings Panel (/settings page in the UI).
[!WARNING] Never expose port 3000 directly to the internet. HTTP Basic Auth sends your password in plain text — over an unencrypted connection anyone on the path can read it. For remote access, put RoninAgent behind a TLS reverse proxy, or reach it over a private network (Tailscale / WireGuard).
A complete
Caddyfile— Caddy obtains and renews the certificate automatically:agent.example.com { reverse_proxy 127.0.0.1:3000 }Keep
HOST=127.0.0.1so only the proxy can reach the app, and set a strongAPP_PASSWORD.
APP_PASSWORD (and optionally APP_USER) in your .env (or via Settings UI) to enable it. Leaving APP_PASSWORD empty disables authentication (ideal for local localhost use); if you do that while binding to a non-loopback HOST, a warning is logged at startup.429 with a Retry-After header). Only failures are counted, so a legitimate session is never throttled.ALLOWED_TELEGRAM_USER_IDS in your .env (or via Settings UI) with a comma-separated list of Telegram User IDs to prevent unauthorized users from using your bot and API balances.path.relative comparison to ensure the AI cannot escape or access files outside the designated workspace/ folder.agents/ folder.crypto.randomUUID() and session cookies are protected with sameSite: 'lax' and conditional secure flags.https://www.youtube.com/watch?v=rcRkP_UiDRo
While other self-hosted AI interfaces require heavy setups (Docker, multi-container databases, etc.), RoninAgent is optimized for raw local performance and resource conservation:
sqlite-vec library extension.stealth_journal.md), and sandbox boundary probing by an autonomous LLM agent (qwen3.5-flash) within RoninAgent.
If this project saved your RAM and made your local AI workflow smoother, consider supporting its development:
This project is open-source and licensed under the MIT License.
177 commits
TypeScript
58.2%
HTML
18.0%
Vue
16.1%
CSS
7.0%