khal-os 1.260405.1 → 1.260405.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +45 -0
- package/README.md +38 -0
- package/package.json +105 -6
- package/packages/os-cli/dist/index.js +15653 -0
- package/cli.js +0 -3
package/LICENSE
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
Copyright (c) 2026 KhalOS. All rights reserved.
|
|
2
|
+
|
|
3
|
+
PROPRIETARY SOFTWARE LICENSE
|
|
4
|
+
|
|
5
|
+
This software and associated documentation files (the "Software") are the
|
|
6
|
+
exclusive property of KhalOS. The Software is protected by copyright laws
|
|
7
|
+
and international treaty provisions.
|
|
8
|
+
|
|
9
|
+
1. GRANT OF LICENSE
|
|
10
|
+
No license is granted under this agreement. Access to this repository does
|
|
11
|
+
not constitute a license to use, copy, modify, or distribute the Software.
|
|
12
|
+
|
|
13
|
+
2. RESTRICTIONS
|
|
14
|
+
You may not, without prior written authorization from KhalOS:
|
|
15
|
+
a. Copy, reproduce, or duplicate the Software;
|
|
16
|
+
b. Modify, adapt, translate, or create derivative works of the Software;
|
|
17
|
+
c. Distribute, sublicense, lease, rent, loan, or otherwise transfer the
|
|
18
|
+
Software to any third party;
|
|
19
|
+
d. Reverse engineer, disassemble, decompile, or otherwise attempt to
|
|
20
|
+
derive the source code of the Software;
|
|
21
|
+
e. Remove, alter, or obscure any proprietary notices on the Software.
|
|
22
|
+
|
|
23
|
+
3. CONFIDENTIALITY
|
|
24
|
+
The Software contains trade secrets and proprietary information of KhalOS.
|
|
25
|
+
You agree to maintain the confidentiality of the Software and not to
|
|
26
|
+
disclose it to any third party without prior written consent.
|
|
27
|
+
|
|
28
|
+
4. OWNERSHIP
|
|
29
|
+
KhalOS retains all right, title, and interest in and to the Software,
|
|
30
|
+
including all intellectual property rights therein.
|
|
31
|
+
|
|
32
|
+
5. TERMINATION
|
|
33
|
+
Any unauthorized use of the Software will result in immediate termination
|
|
34
|
+
of any implied rights and may result in legal action.
|
|
35
|
+
|
|
36
|
+
6. NO WARRANTY
|
|
37
|
+
THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
38
|
+
IMPLIED. KHALOS DISCLAIMS ALL WARRANTIES, INCLUDING BUT NOT LIMITED TO THE
|
|
39
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
40
|
+
|
|
41
|
+
7. LIMITATION OF LIABILITY
|
|
42
|
+
IN NO EVENT SHALL KHALOS BE LIABLE FOR ANY DAMAGES ARISING OUT OF THE USE
|
|
43
|
+
OR INABILITY TO USE THE SOFTWARE.
|
|
44
|
+
|
|
45
|
+
For licensing inquiries, contact: legal@khal.ai
|
package/README.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Khal
|
|
2
|
+
|
|
3
|
+
A desktop-in-browser OS shell built with Next.js, React, and Tailwind CSS.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm install
|
|
9
|
+
pnpm dev # Next.js on port 1111
|
|
10
|
+
node pty-server.mjs # PTY + WebSocket on port 1112
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Open http://localhost:1111 to see the desktop.
|
|
14
|
+
|
|
15
|
+
## Default Apps
|
|
16
|
+
|
|
17
|
+
- **Terminal** — Full terminal emulator (xterm.js + node-pty)
|
|
18
|
+
- **Settings** — Theme switcher and desktop configuration
|
|
19
|
+
- **Files** — Example stub app (replace with your own)
|
|
20
|
+
|
|
21
|
+
## Adding a New App
|
|
22
|
+
|
|
23
|
+
1. Create a component in `src/components/apps/<your-app>/`
|
|
24
|
+
- Must accept `{ windowId: string; meta?: Record<string, unknown> }`
|
|
25
|
+
2. Register in `src/components/apps/app-registry.ts`
|
|
26
|
+
3. Add a `DesktopEntry` in `src/stores/desktop-store.ts`
|
|
27
|
+
4. (Optional) Set default window size in `src/lib/hooks/use-launch-app.ts`
|
|
28
|
+
5. (Optional) Add a keyboard shortcut in `src/lib/keyboard/defaults.ts`
|
|
29
|
+
|
|
30
|
+
## Architecture
|
|
31
|
+
|
|
32
|
+
- **Window Manager** — Draggable, resizable windows with snap, minimize, maximize
|
|
33
|
+
- **Taskbar** — App launcher, running apps, system tray, workspace switcher
|
|
34
|
+
- **Workspaces** — Virtual desktops
|
|
35
|
+
- **Keyboard Shortcuts** — Configurable global hotkeys
|
|
36
|
+
- **Notifications** — Toast + notification center
|
|
37
|
+
- **PTY Server** — WebSocket-based terminal backend with session persistence
|
|
38
|
+
- **Theme System** — Light/dark mode via CSS custom properties
|
package/package.json
CHANGED
|
@@ -1,9 +1,108 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "khal-os",
|
|
3
|
-
"version": "1.260405.
|
|
4
|
-
"
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
"version": "1.260405.3",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"dev": "next dev --port 8888",
|
|
6
|
+
"build": "npx tsx scripts/build-apps.ts && NEXT_PRIVATE_BUILD_WORKER=false next build",
|
|
7
|
+
"start": "next start --port 8888",
|
|
8
|
+
"postinstall": "chmod +x node_modules/.pnpm/node-pty@*/node_modules/node-pty/prebuilds/darwin-*/spawn-helper 2>/dev/null || true",
|
|
9
|
+
"pty-server": "node pty-server.mjs",
|
|
10
|
+
"lint": "biome check .",
|
|
11
|
+
"lint:fix": "biome check --write .",
|
|
12
|
+
"knip": "knip",
|
|
13
|
+
"services": "tsx src/lib/service-loader.ts",
|
|
14
|
+
"tauri": "cd tauri && cargo run",
|
|
15
|
+
"tauri:dev": "cd tauri && cargo tauri dev",
|
|
16
|
+
"tauri:build": "cd tauri && cargo build --release",
|
|
17
|
+
"prepare": "husky"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@json-render/core": "^0.7.0",
|
|
21
|
+
"@json-render/react": "^0.7.0",
|
|
22
|
+
"@khal-os/sdk": "^1.0.1",
|
|
23
|
+
"@khal-os/ui": "^1.0.1",
|
|
24
|
+
"@nats-io/jetstream": "^3.3.1",
|
|
25
|
+
"@nats-io/transport-node": "^3.3.1",
|
|
26
|
+
"@number-flow/react": "^0.6.0",
|
|
27
|
+
"@opentelemetry/core": "^2.6.1",
|
|
28
|
+
"@opentelemetry/instrumentation-http": "^0.214.0",
|
|
29
|
+
"@opentelemetry/instrumentation-pg": "^0.66.0",
|
|
30
|
+
"@opentelemetry/instrumentation-runtime-node": "^0.27.0",
|
|
31
|
+
"@opentelemetry/resources": "^2.6.1",
|
|
32
|
+
"@opentelemetry/sdk-metrics": "^2.6.1",
|
|
33
|
+
"@opentelemetry/sdk-node": "^0.214.0",
|
|
34
|
+
"@opentelemetry/semantic-conventions": "^1.40.0",
|
|
35
|
+
"@paper-design/shaders-react": "^0.0.72",
|
|
36
|
+
"@radix-ui/react-context-menu": "^2.2.16",
|
|
37
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
38
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
39
|
+
"@radix-ui/react-label": "^2.1.8",
|
|
40
|
+
"@radix-ui/react-separator": "^1.1.8",
|
|
41
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
42
|
+
"@radix-ui/react-switch": "^1.2.6",
|
|
43
|
+
"@radix-ui/react-tooltip": "^1.2.8",
|
|
44
|
+
"@sentry/nextjs": "^10.39.0",
|
|
45
|
+
"@sinclair/typebox": "^0.34.48",
|
|
46
|
+
"@tauri-apps/api": "^2.10.1",
|
|
47
|
+
"@temporalio/activity": "^1.15.0",
|
|
48
|
+
"@temporalio/client": "^1.15.0",
|
|
49
|
+
"@temporalio/worker": "^1.15.0",
|
|
50
|
+
"@temporalio/workflow": "^1.15.0",
|
|
51
|
+
"@types/archiver": "^7.0.0",
|
|
52
|
+
"@workos-inc/authkit-nextjs": "^2.14.0",
|
|
53
|
+
"@xterm/addon-fit": "^0.11.0",
|
|
54
|
+
"@xterm/addon-webgl": "^0.19.0",
|
|
55
|
+
"@xterm/xterm": "^6.0.0",
|
|
56
|
+
"archiver": "^7.0.1",
|
|
57
|
+
"class-variance-authority": "^0.7.1",
|
|
58
|
+
"clsx": "^2.1.1",
|
|
59
|
+
"cmdk": "^1.1.1",
|
|
60
|
+
"iron-session": "^8.0.4",
|
|
61
|
+
"jose": "^6.1.3",
|
|
62
|
+
"lucide-react": "^0.563.0",
|
|
63
|
+
"motion": "^12.38.0",
|
|
64
|
+
"next": "16.1.6",
|
|
65
|
+
"next-themes": "^0.4.6",
|
|
66
|
+
"node-pty": "^1.1.0",
|
|
67
|
+
"react": "19.2.3",
|
|
68
|
+
"react-dom": "19.2.3",
|
|
69
|
+
"tailwind-merge": "^3.4.0",
|
|
70
|
+
"ulidx": "^2.4.1",
|
|
71
|
+
"uuid": "^13.0.0",
|
|
72
|
+
"ws": "^8.20.0",
|
|
73
|
+
"zod": "^4.3.6",
|
|
74
|
+
"zustand": "^5.0.11"
|
|
75
|
+
},
|
|
76
|
+
"devDependencies": {
|
|
77
|
+
"@biomejs/biome": "^2.4.2",
|
|
78
|
+
"@commitlint/cli": "^20.5.0",
|
|
79
|
+
"@commitlint/config-conventional": "^20.5.0",
|
|
80
|
+
"@tailwindcss/postcss": "^4",
|
|
81
|
+
"@types/node": "^20",
|
|
82
|
+
"@types/react": "^19",
|
|
83
|
+
"@types/react-dom": "^19",
|
|
84
|
+
"@types/uuid": "^11.0.0",
|
|
85
|
+
"@types/ws": "^8.18.1",
|
|
86
|
+
"esbuild": "^0.27.4",
|
|
87
|
+
"git-cliff": "^2.12.0",
|
|
88
|
+
"husky": "^9.1.7",
|
|
89
|
+
"knip": "^5.85.0",
|
|
90
|
+
"tailwindcss": "^4",
|
|
91
|
+
"tsx": "^4.21.0",
|
|
92
|
+
"typescript": "^5"
|
|
93
|
+
},
|
|
94
|
+
"bin": {
|
|
95
|
+
"khal-os": "./packages/os-cli/dist/cli.js"
|
|
96
|
+
},
|
|
97
|
+
"files": [
|
|
98
|
+
"packages/os-cli/dist/"
|
|
99
|
+
],
|
|
100
|
+
"packageManager": "pnpm@10.28.2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264",
|
|
101
|
+
"pnpm": {
|
|
102
|
+
"onlyBuiltDependencies": [
|
|
103
|
+
"esbuild",
|
|
104
|
+
"node-pty",
|
|
105
|
+
"@sentry/cli"
|
|
106
|
+
]
|
|
107
|
+
}
|
|
9
108
|
}
|