4 min read

5ire: A Desktop AI Assistant and MCP Client (GitHub, Scanned)

A desktop chat app for many AI providers, with MCP tools, a local knowledge base and usage tracking.

5ire logo
✅
Scan: safe. Nothing malicious, but its JavaScript lockfile carries a high count of known advisories, and MCP servers you add run on your machine with whatever access you grant. Scanned Oct 26, 2026; the full report is below.

5ire (pronounced fire) is a desktop chat client for AI models. Add keys for OpenAI, Anthropic, Google, Mistral, DeepSeek, Grok and others, or point it at Ollama, and talk to all of them from one window on macOS, Windows or Linux. It was one of the early desktop apps to support the Model Context Protocol, so you can give the assistant tools such as file access, databases or web search by adding MCP servers, with a marketplace to find them.

Beyond chat it has a local knowledge base that embeds your Word, Excel, PowerPoint, PDF, text and CSV files with the bge-m3 model on your own machine, a prompt library with variables, bookmarks, search across conversations, and a page showing what you have spent on each API.

Two caveats. MCP tools need Python, Node.js and uv installed, since many servers run on them. And the latest tagged release dates from March 2026, although commits are still landing, so check the releases page before assuming a bug is fixed.

  • Repository: github.com/nanbingxyz/5ire
  • Licence: custom (Other)
  • Language: TypeScript. Stars: 5,374. Forks: 436. Last push: Oct 24, 2026.
  • Scan: safe, Oct 26, 2026, commit 7951787

Who it is for

People who use several AI providers and want one desktop app for all of them, and anyone who wants to try MCP tools without a coding editor.

Getting started

1. Download the installer for macOS, Windows or Linux from the latest release

open https://github.com/nanbingxyz/5ire/releases/latest

2. For MCP tools on macOS, install the runtimes they need (uv has its own installer on astral.sh)

brew install python node uv

Safety scan

We cloned nanbingxyz/5ire at commit 7951787 on Oct 26, 2026 and ran the checks described on the GitHub Tools page: credential patterns, decode-and-execute code, install-time scripts, committed binaries, risky CI workflows, every host the code talks to, known vulnerabilities in pinned dependencies, and project hygiene. A person read every hit. This is what we found.

  • No secrets, no pattern hits, no committed binaries and no bare-IP URLs.
  • npm hooks: postinstall applies patch-package fixes, runs Electron's own download script and rebuilds native modules; prepare sets up Husky git hooks. All standard for an Electron project, and none runs for people who install the app.
  • 293 known advisories in package-lock.json, 7 critical (Handlebars, protobufjs, proxy-addr, shell-quote). Some sit in build tooling, but the count is high for a desktop app; stick to the latest release.
  • The network list is the AI providers it supports plus 5ire.app and openai.5ireai.com; 302.ai appears as a provider with a referral link. Keys stay in the app and are sent only to the provider you pick.
  • Two workflows, none using pull_request_target; the one third-party action is not pinned. Licence and code of conduct present; no security policy, Dependabot or CodeQL.

What the scanner counted

CheckResult
SecretsNone found.
Suspicious codeNone found.
Install-time code2 npm lifecycle scripts
Committed binariesNone.
CI workflows2 workflows. None use pull_request_target. 1 of 1 third-party action pinned to a tag rather than a commit.
Network hosts35 distinct hosts referenced from source; most often github.com, 5ire.app, huggingface.co, lbs.amap.com. No URLs to bare IP addresses.
Known vulnerabilities293 advisories across 1,565 pinned packages: 7 critical, 146 high, 113 moderate, 27 low. package-lock.json: 1,734 packages, 293 advisories.
Project hygieneHas licence file. Missing security policy, automated dependency updates, CodeQL, contributing guide.
OpenSSF ScorecardNot scored: the project is not in Scorecard's weekly index.

The raw findings

Every hit the scanner wrote out, with a link to the exact line at the scanned commit. Secrets candidates are redacted.

npm lifecycle scripts (2)
  • package.json postinstall: patch-package && node ./node_modules/electron/install.js && npm run install:deps
  • package.json prepare: husky
Worst known vulnerabilities (24 of 293)
AdvisorySeverityPackageSummary
GHSA-2w6w-674q-4c4qcriticalhandlebars@4.7.8Handlebars.js has JavaScript Injection via AST Type Confusion
GHSA-8r5x-fm3f-whwjcriticalhandlebars@4.7.8Handlebars: JavaScript Injection via AST Type Confusion in compile (bypass of CVE-2026-33937)
GHSA-p8wg-vrv2-v86fcriticalhandlebars@4.7.8Handlebars: JavaScript Injection via Own Property Check Bypass
GHSA-xq3m-2v4x-88ggcriticalprotobufjs@6.11.4Arbitrary code execution in protobufjs
GHSA-jqcg-44mw-7w3hcriticalproxy-addr@2.0.7proxy-addr vulnerable to IP spoofing via IPv4-mapped IPv6 trust subnet
GHSA-w7jw-789q-3m8pcriticalshell-quote@1.8.3shell-quote quote() does not escape newlines in object .op values
GHSA-23hp-3jrh-7fpwcriticaltar@6.2.1node-tar: Decompression/parse DoS via unlimited input
GHSA-3jxr-9vmj-r5cphighbrace-expansion@1.1.12brace-expansion: DoS via exponential-time expansion of consecutive non-expanding {} groups
GHSA-6j4f-fj2g-mc7phighbrace-expansion@1.1.12brace-expansion: DoS via uncontrolled recursion in parseCommaParts causing stack exhaustion
GHSA-mh99-v99m-4gvghighbrace-expansion@1.1.12brace-expansion: DoS via unbounded expansion length causing an out-of-memory process crash
GHSA-qhr7-859c-m2p7highbrace-expansion@1.1.12brace-expansion: DoS via uncontrolled recursion on nested brace groups causing stack exhaustion
GHSA-rgw5-rvv9-x895highbrace-expansion@1.1.12brace-expansion: DoS via unbounded intermediate arrays, bypassing the CVE-2026-14257 mitigation
GHSA-23c5-xmqv-rm74highminimatch@3.1.2minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions
GHSA-3ppc-4f35-3m26highminimatch@3.1.2minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern
GHSA-7r86-cg39-jmmjhighminimatch@3.1.2minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments
GHSA-2883-xcg3-v3hhhighjs-yaml@3.14.2js-yaml: maxTotalMergeKeys does not limit CPU use for empty merge sources
GHSA-52cp-r559-cp3mhighjs-yaml@3.14.2js-yaml: YAML merge-key chains can force quadratic CPU consumption
GHSA-5p4m-2wfm-xmqjhighjs-yaml@3.14.2JS-YAML: Quadratic CPU consumption in !!omap resolution (3.x and 4.x) - CVE-2026-59870 fix not backported
GHSA-345p-7cg4-v4c7high@modelcontextprotocol/sdk@1.22.0@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse
GHSA-46jr-4wx8-v453high@modelcontextprotocol/sdk@1.22.0MCP TypeScript SDK: One HTTP request within the default size limit could exhaust server memory during validation
GHSA-6qxp-vccf-f47hhigh@modelcontextprotocol/sdk@1.22.0MCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP server
GHSA-8r9q-7v3j-jr4ghigh@modelcontextprotocol/sdk@1.22.0Anthropic's MCP TypeScript SDK has a ReDoS vulnerability
GHSA-w48q-cv73-mx4whigh@modelcontextprotocol/sdk@1.22.0Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default
GHSA-2w69-qvjg-hvjxhigh@remix-run/router@1.23.1React Router vulnerable to XSS via Open Redirects

By the numbers

Stars5,374
Forks436
Contributors35
Commits1,545
Open issues74
Open pull requests6
Releases36
Latest releasev0.15.4
Licencecustom
Main languageTypeScript
Project age2 years
Last pushOct 24, 2026
Tracked files498
Lines of code62.3K
Checkout size9 MB

Lines by language: TypeScript 46.3K, JSON 13.7K, SCSS 1,059, Markdown 915, SQL 191, YAML 115.

Questions

Is 5ire free?

Yes for personal use. The licence is Apache 2.0 with extra terms: you may not use the 5ire name in a modified version, and distributing a modified build to enterprises with more than 10 users, inside hardware or in sensitive government work needs a commercial licence. You pay the AI providers for usage.

What is an MCP client?

The Model Context Protocol is an open standard for connecting AI models to tools and data. As a client, 5ire can launch MCP servers, for example one for your file system or a database, and let the model call them during a chat.

Does 5ire work with local models?

Yes, through Ollama. The knowledge base embeddings also run locally with the bge-m3 model.


This post is part of GitHub Tools, where every repository is cloned and scanned before it is written up. The scan is a snapshot of one commit on one day; the repository has moved on since, so check it before you install.