# InternalBeyond: a single-file offline AI companion site you open from disk

> InternalBeyond (IB) is one HTML file that runs a pixel room, chat, voice calls, a calendar and a memory store against your own API keys. The README documents what each module does; here is what that means for adoption, and where it stops.

**Sui-IB/InternalBeyond** — 【Project-IB】边界之外：离线运行的单文件个人网站式项目，旨于维系情感的连续性。A single-file offline personal website, built to sustain the continuity of feeling.

- Repository: https://github.com/Sui-IB/InternalBeyond
- Stars: 618 · Forks: 235
- Language: HTML
- License: NOASSERTION
- Published: 2026-09-17 · Updated: 2026-09-17 · Language: en
- Canonical page: https://hysenlabs.com/projects/sui-ib-internalbeyond

## What InternalBeyond is trying to keep continuous

The README states the goal in one line: an offline, single-file, personal-website-style front end meant to sustain the continuity of feeling. That phrasing matters more than it looks. Most chat front ends treat a conversation as a session. InternalBeyond treats it as a record that should survive across modules, which is why Memory, Calendar, Letters, Blog and Circle all read from and write into the same local store rather than living as separate apps.

The intended user is one person on one machine. The repository is a single InternalBeyond.html plus a game/ directory, background images, an icon and licence files. There is no server, no build step and no package manifest at the top level. The README says all data is stored locally and the project does not depend on any network server, and that basic features (logs, wardrobe, theme switching, music playback) work without a connection while AI features require one because they call an API.

That split is the honest framing of the project. It is a shell for your own model access, not a hosted service. If you want a companion product that someone else operates, this is not that.

## How the modules share one local store

The architecture visible in the README is a single page with fourteen core modules and two visual themes, all reading from browser-local storage. Circle states plainly that its data lives in IndexedDB and is included in the site-wide export and import. Calendar says the same for its events. Memory is described as a long-term emotional memory store with star-map visualisation, natural decay, automatic context injection into API calls, and an Auto Memory mode where the AI writes memories on its own.

The interesting mechanism is context assembly. Chat has topic channels per friend, each with independent history, and the README notes those channel logs are not read by Letters, Blog comments and similar modules. So the project deliberately partitions what the model can see. A conversation summary option compresses older messages into a summary that is injected to keep long threads coherent. Chat also offers a Select mode with a sealing line, after which older records stop being sent to the API at all. Calendar events reach the model the same way: when you send a message, an AI with read permission sees upcoming items appended to the message and may mention them and leave a note.

That is a permissioned-retrieval design rather than a dump-everything design, and it is the part worth studying if you care about how companion apps manage context. The flip side is that the README does not document a schema, a migration path or a size limit for any of this.

## Opening InternalBeyond.html and adding your first API key

The README gives four steps and they are the whole install. Download the repository through the green Code button and Download ZIP, unzip it, open InternalBeyond.html in a browser, then go to the API Settings page and add your AI API key. There is no npm, no docker and no service to start.

After unzipping, the top level of the repository contains an icon, the HTML file, the licence files, the README, three background images and a game/ directory. You should see InternalBeyond.html sitting at the root with game/ beside it. The README's start section assumes a browser opening that local file, not a local web server.

Once the page loads, the navigation bar is the main surface. The README says the theme toggle is the water-drop button in that bar, switching between Internal (bright, daytime room) and Infernal (dark, night room). The API page is described as a multi-port configuration centre supporting up to 30 independent APIs with 60 in an archive area, each with its own nickname, relationship and prompt. Add one key there and the friend list in Chat is generated from those configurations.

If you want the Cinema DLC, the README says it is not in the main file: download IB-Cinema.js from the separate InternalBeyond-Cinema repository and place it at DLC/IB-Cinema.js next to InternalBeyond.html, then refresh. Without that file the navigation bar simply has no Cinema entry and nothing else changes.

## Where InternalBeyond stops working

The clearest limitation is stated by the project itself: AI features need a network call. Everything that depends on a model, which is most of the interesting behaviour, is dead without a reachable endpoint and a valid key. The offline claim covers logs, wardrobe, theme switching and music, not conversation.

Storage is the second boundary. All data sits in browser-local storage and the README's answer to durability is a one-click JSON export and import on the Data page. That is a reasonable design for a personal file, but it means the browser profile is the database. Clearing site data, using a private window, or switching browsers separates you from your history unless you exported first. The README does not document rollback, versioned migrations or conflict handling for imports, so treat an import as something to test on a copy.

Some features are narrower than the module list suggests. Image generation in Chat is marked as supported only for OpenAI-compatible and Gemini interfaces. Prompt caching with a one-hour TTL is limited to the official Anthropic API. Calendar reminders are explicitly not system notifications: they do not pop up when the site is closed. Group chats are excluded from Calendar. Voice input falls back to typing mode when no speech-recognition endpoint is configured. Cinema video and subtitles are not stored, not backed up and not resumed.

Finally, the project is a single HTML file. That is a feature for portability and a liability for review, since a change to any module lands in the same artifact.

## InternalBeyond compared with SillyTavern-style front ends

The obvious alternative category is the character-chat front end, of which SillyTavern is the best-known example. Both put the model behind your own API credentials and both keep history locally. The difference is what surrounds the chat.

SillyTavern's centre of gravity is the prompt: character cards, presets, lorebooks and the mechanics of steering a model's output. InternalBeyond's centre of gravity is the surrounding life of the page. The README describes a 1672x941 pixel room with tea, branching story, 78 Waite tarot cards across five spreads, wardrobe and sleep states; a call module with speech recognition, per-sentence reading, acoustic tone summaries and a five-tier gift system in video calls; a social circle where the AI posts and comments under per-AI permissions; a calendar with moon phases and traditional festivals across 1950 to 2100.

So the trade-off is breadth of scene against depth of prompt control. If your goal is squeezing a specific persona out of a model, a prompt-centric tool gives you more direct handles. If your goal is a place you open daily where the same characters appear in a room, a calendar, a letter and a call, InternalBeyond is built around that continuity and the README's memory and permission model is what holds it together. Neither is a superset of the other.

## Maintenance, licence and upgrade cost

The repository is not archived and the last push was on 2026-09-17, so the project is current as of that date. Release V2.4.0 is dated 2026-08-16, and the README mentions that the Cinema DLC arrives separately in V2.7.0, which tells you the version cadence is active and that some features ship out of band. The README also states the project is permanently free and open source.

Upgrading is file replacement, not a package update. You swap InternalBeyond.html for the new one. The cost of that is data continuity: because everything lives in browser storage keyed to the page, the README's documented safety net is the Data page export and import, and it does not describe a versioned migration. Back up before you replace the file.

The licence is the part to read carefully. The repository metadata reports NOASSERTION, and the top level contains both LICENSE and a LICENSES/ directory. That combination usually means the project carries more than one licence text or a custom one, and the GitHub classifier could not reduce it to a standard identifier. Read LICENSE and the files under LICENSES/ yourself before you redistribute or bundle the HTML into anything. Nothing here is legal advice.

## Conclusion

Adopt InternalBeyond if you want a local, file-based companion space and you are comfortable pasting your own model API keys into a settings page, because the README's start path is download, unzip, open InternalBeyond.html, add a key. Do not adopt it if you need a maintained server component, multi-user access, or any guarantee about data durability that the README does not make, since everything sits in browser storage and a JSON export. Before you commit, verify three things yourself: that your browser keeps IndexedDB for a local file page across restarts, that your chosen API endpoint is one of the OpenAI-compatible or Gemini interfaces the image generation section names, and that your voice provider appears in the list the Call section gives (SiliconFlow, OpenAI, Alibaba Cloud Bailian, ElevenLabs, MiniMax, Azure, or a self-hosted gateway).

## FAQ

### Does InternalBeyond need an internet connection to work?

The README says basic features such as logs, wardrobe, theme switching and music playback work without a connection, while AI-related features need one because they call an API. So the page opens offline, but conversation and anything model-driven does not.

### How do I install InternalBeyond?

Download the repository with Code then Download ZIP, unzip it, and open InternalBeyond.html in a browser. Then go to the API Settings page and add your AI API key. There is no package manager or server step in the README.

### Where does InternalBeyond store my data?

The README states that all data is stored locally and that Circle and Calendar data live in IndexedDB, included in the site-wide export and import on the Data page. Nothing is described as being sent to a project-operated server.

## Sources

- [Issues](https://github.com/Sui-IB/InternalBeyond/issues)
- [README](https://github.com/Sui-IB/InternalBeyond/blob/main/README.md)
- [Releases](https://github.com/Sui-IB/InternalBeyond/releases)
- [Sui-IB/InternalBeyond on GitHub](https://github.com/Sui-IB/InternalBeyond)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/sui-ib-internalbeyond
