Hexis

io.github.Bevel-Software由 GitHub 账号 Bevel-Software 发布v0.1.0更新于 Oct 27, 2026

Git-backed platform for skills, tools, and context for AI agents

已验证Streamable HTTP可网页运行效率与工作流知识与记忆开发者工具

概览

AI 生成的概览

基于 Git 的管控平台,让 AI 助手通过 MCP 发现、加载团队已批准的技能、工具与知识库上下文,并提交修改建议。

可以做什么
  • 发现并加载当前用户角色可访问的技能与公司上下文,无需在工具间复制提示词
  • 按需检索技能(list_skills、search、get_skill),而不是把整个目录塞进上下文
  • 读取知识库页面,包括相对链接和 assets 文件夹中的图片
  • 提交新技能或改进建议,在受保护分支上以可审阅的变更请求形式出现
  • 任何支持 MCP 的客户端都可连接,具备按文件粒度的访问控制和 Git 审计记录
适用场景
适合希望把智能体技能、工具手册和上下文集中管理、版本化,并让多个智能体共用,同时让非技术人员也能提出和审阅改动的团队。
运行要求
远程 Streamable HTTP 端点(公共演示 demo.bevel.software 或自建部署),需要在浏览器中完成 OAuth 登录;演示站可用 Google 账号。自建需 Docker 与 Compose、一个空的 Git 仓库及具备读写权限的 Git 令牌;本地版本通过 npx 运行,需要 Node 22.13+ 或 24。
安装前请注意
公共演示站是共享的、以只读为主的实例,内容为虚构公司数据,不要放入真实资料。自建需要 JWT_SECRET、SECRETS_ENC_KEY 等密钥,以及可读写知识库仓库的 Git 令牌。智能体可提交变更建议,获批后会改变整个团队智能体加载的内容。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Hexis,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.Bevel-Software%2Fhexis/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "hexis": {
      "type": "http",
      "url": "https://demo.bevel.software/api/mcp"
    }
  }
}

README

[Hexis by Bevel: git-backed skills, tools and context for AI agents]

[GitHub stars] [Live demo] [Apache-2.0 license] [Last commit]

Git-backed control plane for AI-agent skills, tools, context, permissions and identity. Self-hosted and MCP-native.

One place where your company's AI plugins, tools and knowledge live: centrally managed, reviewed and access-controlled, and usable from any AI agent. The open-source core of the Bevel platform.

Why Hexis?

Used by teams at

[osapiens] [BEO] [Unite] [Workpath]

Read more about the learnings that we made which led to Hexis here: Our Medium Article

For teams

One place where engineers and non-technical people alike can browse and load plugins, propose suggestions, and manage access.

For enterprises

Every skill, tool manual and permission is a file in a git repository you own, so the audit trail is the storage layer: who changed what, when, who approved it, and how to undo it. An agent can only do what the person running it can do, resolved per file, and it never holds the credentials it uses. Runs on your infrastructure, behind your own SSO.

Why it's different from MCP gateways:

MCP gateways are uni-directional; users can consume plugins, skills or tools but there is no mechanism here for users to propose changes or share new skills and MCP servers. You can do this via GitHub in the back, but this is not accessible to non-technical users and there is no fine-grained access control for either viewing or the review process.

Hexis can do all of the above specified capabilities for distribution, and has this bidirectionality needed for management.

In Hexis, skills and tool manuals are reviewable files. Anyone can propose a change; on protected branches it reaches the owners of the files it touches and ships only once they approve. Agents propose too: one that hits a broken skill mid-task can suggest the fix, and a person decides whether it lands.

Contents

[Watch the full Hexis demo]

Watch the full walkthrough: connect an agent, use company context, review proposed changes, and manage team access.

See Hexis in action

Propose and approve skill changes

Anyone can propose a new skill or improve an existing one. On protected branches, owners review the exact change and approve it before it becomes available to the team's agents.

[A teammate proposes a skill and its owner reviews and approves the change request]

Use your team's skills in Claude

Connect Claude to Hexis over MCP, then ask normally. Claude can discover and load the approved skill instructions and company context your role can access, without copying prompts between tools.

[Claude uses approved team skills and company context through Hexis over MCP]

Connect Hexis to Cline

Cline can connect directly to Hexis as a remote Streamable HTTP MCP server. Install the public demo connection from the Cline CLI:

sh
cline mcp install hexis --transport http https://demo.bevel.software/api/mcp --yes

Complete the OAuth sign-in in your browser when prompted. Cline then discovers the skills, tools and context your Hexis role can access. For your own Hexis deployment, replace demo.bevel.software with your deployment's host.

Share skills with the right people

Add teammates to roles or grant access directly when needed. Everyone connects to the same workspace, while each person and their agent only sees what they are allowed to read.

[An owner adds teammates to roles and manages access to shared company content]

Try it first: the live demo

demo.bevel.software is a public instance you can sign into with your Google account, populated with a fictional company's knowledge, skills and tools. The Start here page walks you through the whole loop: connect your own agent over MCP, have it build a sales deck from a skill, watch its proposed improvement arrive as a change request. The demo is shared and read-mostly (visitors propose, owners approve); everything below gets you the same thing with none of the limits.

Want a managed instance?

We run it for you (hosting, upgrades, backups, SSO) and your team just signs in. Write to [email protected].

Deploy it in 5 minutes (Docker)

You need: Docker with Compose on a server (or your laptop; one extra line below), and an empty git repository on any host (GitHub, GitLab, Bitbucket, Azure DevOps, self-hosted) to hold your knowledge base. The app seeds it with a starter template on first run.

Grab the two deployment files — no clone needed:

sh
mkdir hexis && cd hexis# v0.15.1 below = the release this page was written against; replace with the latest release tagwget https://raw.githubusercontent.com/Bevel-Software/Hexis/v0.15.1/docker-compose.ymlwget -O .env https://raw.githubusercontent.com/Bevel-Software/Hexis/v0.15.1/.env.example

(Working from a git clone works identically — both files sit at the repo root; cp .env.example .env.)

Open .env and fill in the four required values (everything else can wait):

sh
[email protected]     # the deployment owner, always an adminADMIN_PASSWORD=pick-something   # sign-in password; only with password login (SSO-only deployments drop it)JWT_SECRET=…                    # generate with the command belowSECRETS_ENC_KEY=…               # generate with the command below

Generate the two secrets (run twice, paste one result into each):

sh
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"# no Node installed? docker run --rm node:22-slim node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"

For a public deployment served over HTTPS by the bundled proxy, also set the domain — it derives everything else public (origins, proxy hop):

sh
DOMAIN=bevel.your-domain.com

Then start everything. Deploying pulls the image CI publishes on every release — nothing compiles on your server, so a small instance suffices. Pin the version in .env (HEXIS_VERSION=0.15.1) so a later pull can't become an unplanned upgrade — UPGRADING.md covers upgrades and backups. Building from source instead (a staging server tracking a branch, a fork) is deployment/docker-compose.build.yml (explained in deployment/).

Public HTTPS, no proxy of your own (a bare EC2 instance, a plain VPS): the https profile starts Caddy in front of the app, with automatic Let's Encrypt certificates for DOMAIN and the HTTP→HTTPS redirect. First: a DNS A (or AAAA) record for the domain pointing at the server, and ports 80 + 443 open to the internet (port 80 is not optional — the certificate challenge and the redirect both use it).

sh
docker compose -f docker-compose.yml --profile https up -d

Behind your own reverse proxy (Coolify, Traefik, nginx): skip the profile — two things terminating TLS for one app is one too many. Instead of DOMAIN, set the origin values and the proxy hop count in .env, so OAuth redirects are built right and rate limits see real client IPs instead of the proxy's:

sh
PUBLIC_BACKEND_URL=https://bevel.your-domain.com   # public origin; OAuth redirects are built from itPUBLIC_FRONTEND_URL=https://bevel.your-domain.com  # same origin: the backend serves the SPATRUST_PROXY=1                                      # your proxy hop count
sh
docker compose -f docker-compose.yml up -d

The explicit -f matters in a clone: it skips docker-compose.override.yml, so the app publishes no host port — your proxy reaches it on port 3001 over the compose network. This is deliberate: a fixed published port makes every redeploy fail with port is already allocated, because the replacement container starts while the outgoing one still holds it.

Open your domain and sign in with ADMIN_EMAIL / ADMIN_PASSWORD.

Just trying it on your laptop? Same steps, minus DOMAIN and the origin values — plus one extra file: docker-compose.yml alone publishes no host port (see above), and docker-compose.override.yml is the piece that puts the app on localhost. A clone already has it; next to the wget'd files, fetch it too:

sh
wget https://raw.githubusercontent.com/Bevel-Software/Hexis/v0.15.1/docker-compose.override.ymldocker compose up -d

Then open http://localhost:3001 (a different port: APP_PORT=8080 docker compose up -d). Leave TRUST_PROXY unset here — with no proxy in front, trusting forwarded headers would let clients spoof their own address.

First sign-in: the setup screen

The app asks for the things it could not guess, and tests them against the real host before saving:

  1. Knowledge-base repo: the https clone URL of that empty repository.
  2. Git credential: a token with read/write access to it (for GitHub: a fine-grained personal access token with Contents: read & write on that one repo is enough).
  3. Branch model: which branch is the default and which are protected (changes to protected branches only land through approved change requests). The repository's real branches are offered as suggestions; for an empty repo the default (main) is fine.

Since the repo is empty, the app initialises it from the bundled template and writes a roles.yaml whose first Admin is you. That's it: you're in the workspace. Head to Skills & Tools to make your first plugin and skill, and to Connect (in the app menu) to hook up an agent over MCP.

Going to production? Configuration reference covers single sign-on, the state you need to back up, health checks, and configuring by environment instead of the setup screen.

Links and images in knowledge pages

Pages are markdown. A link to another page is a relative path, and Hexis opens it in the app:

md
See the [approval process](../Processes/Approval.md#steps).

Images work the same way. Keep them in an assets/ folder next to the pages that use them, and link them relatively:

md
![Approval screen](./assets/approval-screen.png)

Access follows folders, so a person who may read the page may see its screenshots, and moving the folder keeps every link valid; one shared Uploads/ folder gives up both. An export that arrives with a sibling .assets/ folder (Microsoft Loop, for one) can be dropped into the knowledge base as it is, and the links resolve unchanged. Pasted base64 images are not supported: save the file and link it.

Local development (run from source)

You need: Node 22.13 or newer (.nvmrc; the engine range is >=22.13 <23), pnpm 10, git ≥ 2.41, ripgrep (rg on your PATH — the agents' grep tool searches with it, and the server and the backend test suites refuse to run without it), and a Postgres 17 (the bundled one is fine):

sh
docker compose up -d db        # just the databasepnpm installpnpm build                     # builds the packages the apps importcp .env.example .env           # fill the same four required values;                               # the default DATABASE_URL already points at the bundled dbpnpm dev                       # backend on :3001, Vite dev server on :5173

Open http://localhost:5173 (the dev server proxies to the backend). Useful commands: pnpm test, pnpm typecheck, pnpm lint.

Migrations run automatically on boot; there is no separate migrate step, in dev or in production.

Reference

Repository layout

PathWhat it is
packages/shared@bevel-software/platform-shared: shared types + pure domain utilities
packages/core-backend@bevel-software/platform-core-backend: the core backend (ships migrations/ + kb-template/)
packages/core-frontend@bevel-software/platform-core-frontend: the core UI, published as raw TS/TSX source
apps/serverstandalone core backend shell
apps/webstandalone core SPA shell (Vite)

FAQ

Questions that come up when teams evaluate Hexis as a central, versioned catalogue for agent skills and tools.

How do agents find skills without flooding the context window?

They look them up rather than loading them all: list_skills and search narrow the field, get_skill returns one skill at call time.

How does an agent know what is in the knowledge base?

Every MCP session starts with instructions: a fixed platform header that says what Hexis is and to search the knowledge base before answering from memory, followed by mcp-description.md from the root of your repository, where an admin describes what the knowledge base holds and when to consult it. Clients that read the handshake (Claude Code, Claude Desktop, Cursor) put it in the system prompt; for the ones that do not, the first line is also shown on the four core tools. The External agent access page shows exactly what agents get.

Which agents can connect?

Any MCP-capable client, including Claude Code, Codex, Cursor, Cline and ChatGPT, each seeing only what its user's role allows.

Agents that run on your own machine can instead start the workspace as a local MCP server (npx -y @bevel-software/hexis-mcp), which adds your plugins' local-only tools to everything the hosted endpoint serves. That command needs Node 22.13+ or 24 — the versions its sandbox ships a prebuilt binary for — and a client launched from the Dock or a desktop icon may not see npx on PATH at all: run which npx (where npx on Windows) and use the full path it prints as the "command". See Troubleshooting.

How is the catalogue versioned?

By git: every save is a commit, so history, blame and revert work as they do for code, and changes to protected branches ship as reviewable change requests.

What governance do we get?

Per-file access control, review-gated change requests, and a git audit trail of who changed what and who approved it.

License: Apache-2.0

来源:README.md,提交 616122e

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

1
  1. v0.1.0最新Sep 16, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分