MCPcopy Index your code
hub / github.com/netless-io/flat

github.com/netless-io/flat @v2.3.6

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.3.6 ↗ · + Follow
2,270 symbols 5,710 edges 836 files 26 documented · 1% 17 cross-repo links updated 3d agov2.3.6 · 2025-01-20★ 6,4075 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<img width="92" height="92" style="display: block;" src="https://github.com/netless-io/flat/raw/v2.3.6/assets/flat-logo.svg">







<img alt="GitHub" src="https://img.shields.io/github/license/netless-io/flat?color=9cf&style=flat-square">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/netless-io/flat?color=9cf&style=flat-square">
<img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/m/netless-io/flat?color=9cf&style=flat-square">
<a target="_blank" href="https://github.com/netless-io/flat/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22">
    <img alt="GitHub issues by-label" src="https://img.shields.io/github/issues/netless-io/flat/good%20first%20issue?color=9cf&label=good%20first%20issue&style=flat-square">
</a>



<a target="_blank" href="https://twitter.com/AgoraFlat">
<img alt="Twitter URL" src="https://img.shields.io/badge/Twitter-AgoraFlat-9cf.svg?logo=twitter&style=flat-square">
</a>
<a target="_blank" href="https://github.com/netless-io/flat/issues/926">
    <img alt="Slack URL" src="https://img.shields.io/badge/Slack-AgoraFlat-9cf.svg?logo=slack&style=flat-square">
</a>







<h1>Agora Flat</h1>

Project flat is the Web, Windows and macOS client of Agora Flat open source classroom.

中文

<img src="https://github.com/netless-io/flat/raw/v2.3.6/assets/flat-showcase-en.png">

Features

  • Real-time interaction
    • Multifunctional interactive whiteboard
    • Real-time video/audio chat (RTC)
    • Real-time messaging (RTM)
  • Login via
    • GitHub
    • WeChat
  • Classroom management
    • Join, create and schedule classrooms
    • Support periodic rooms
  • Classroom recording and replaying
    • Whiteboard replaying
    • Cloud recording for video and audio
    • Messaging replaying
  • Cloud Storage for multi-media courseware
  • Screen sharing

Quickstart

You can build and run the Flat client without a server. This repository includes the following projects:

Installation

If you don't have pnpm installed:

bash npm i -g pnpm

Clone or fork this project, at project root run:

pnpm i

Build and run Flat Electron client

Run the following commands at the root of the repository to build and run Flat Electron client.

pnpm start

You can use one of the following methods to package your executable:

  • Run pnpm ship at project root to package based on current system.
  • Alternatively, run pnpm ship:mac or pnpm ship:win at project root to package for a specified system.

Build and run Flat Web client

Run the following command at the root of the repository to build and run Flat web client.

pnpm start:web

Alternatively, run the following command:

cd ./web/flat-web/ && pnpm start

UI and business logic are separated in Flat. You can view and develop Flat components UI via Storybook. You can either visit the (Online address) or run pnpm storybook at the root of the repository to run Storybook locally.

References

Related Projects

Contributing

Writing code is great, but there are many other ways to make meaningful contributions to the project:

For more info about how to contribute, see CONTRIBUTING.md

Code Contributors

Thank you to all the people who already contributed to Flat!

Disclaimer

You may use Flat for commercial purposes but please note that we do not accept customizational commercial requirements and deployment supports. Nor do we offer customer supports for commercial usage. Please head to Flexible Classroom for such requirements.

License

Copyright © Agora Corporation. All rights reserved.

Licensed under the MIT license.

When using the Flat or other GitHub logos, be sure to follow the GitHub logo guidelines.

Extension points exported contracts — how you extend this code

IServiceVideoChatAvatar (Interface)
(no doc) [10 implementers]
packages/flat-services/src/services/video-chat/video-chat.ts
WindowsBtnContextInterface (Interface)
(no doc) [1 implementers]
packages/flat-pages/src/components/WindowsBtnContext.ts
Window (Interface)
(no doc)
packages/flat-stores/src/global.d.ts
Window (Interface)
(no doc)
packages/flat-i18n/src/flat-i18n.ts
User (Interface)
(no doc)
packages/flat-components/src/types/user.ts
EmitEvents (Interface)
(no doc)
packages/flat-types/src/ipc/index.ts
ListFilesPayload (Interface)
(no doc)
packages/flat-server-api/src/storage.ts
ProcessEnv (Interface)
(no doc)
desktop/renderer-app/src/react-app-env.d.ts

Core symbols most depended-on inside this repo

useTranslate
called by 157
packages/flat-i18n/src/hooks.ts
error
called by 140
desktop/main-app/src/utils/update-service.ts
errorTips
called by 53
packages/flat-components/src/utils/errorTip.ts
destroy
called by 47
packages/flat-services/src/services/video-chat/video-chat.ts
pushHistory
called by 45
packages/flat-components/src/components/CloudStorage/CloudStorageFileTitle/index.tsx
useSafePromise
called by 34
packages/flat-pages/src/utils/hooks/lifecycle.ts
post
called by 26
packages/flat-server-api/src/utils.ts
useSafePromise
called by 25
packages/flat-components/src/utils/hooks.ts

Shape

Function 1,159
Interface 482
Method 468
Class 123
Enum 38

Languages

TypeScript100%

Modules by API surface

packages/flat-server-api/src/login.ts68 symbols
packages/flat-server-api/src/room.ts55 symbols
service-providers/agora-rtc/agora-rtc-electron/src/agora-rtc-electron.ts52 symbols
packages/flat-server-api/src/storage.ts35 symbols
packages/flat-server-api/src/agora.ts35 symbols
service-providers/agora-rtc/agora-rtc-web/src/agora-rtc-web.ts33 symbols
packages/flat-stores/src/classroom-store/index.ts32 symbols
packages/flat-server-api/src/application.ts32 symbols
service-providers/fastboard/src/index.ts23 symbols
packages/flat-stores/src/room-store.ts21 symbols
packages/flat-services/src/services/video-chat/video-chat.ts21 symbols
packages/flat-stores/src/cloud-storage-store/index.ts19 symbols

Dependencies from manifests, versioned

@ant-design/icons4.7.0 · 1×
@babel/core7.19.1 · 1×
@babel/standalone7.19.2 · 1×
@commitlint/cli17.1.2 · 1×
@commitlint/config-angular17.1.0 · 1×
@electron/notarize2.1.0 · 1×
@hyrious/esbuild-dev0.8.4 · 1×
@loadable/component5.15.2 · 1×
@lukeed/uuid2.0.1 · 1×
@netless/app-countdown0.0.7 · 1×
@netless/app-dice0.1.1 · 1×
@netless/app-docs-viewer1.0.0-canary.5 · 1×

For agents

$ claude mcp add flat \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact