diff --git a/packages/stage-tamagotchi-godot/.editorconfig b/packages/stage-tamagotchi-godot/.editorconfig
new file mode 100644
index 000000000..f28239ba5
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/.editorconfig
@@ -0,0 +1,4 @@
+root = true
+
+[*]
+charset = utf-8
diff --git a/packages/stage-tamagotchi-godot/.gitattributes b/packages/stage-tamagotchi-godot/.gitattributes
new file mode 100644
index 000000000..8ad74f78d
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/.gitattributes
@@ -0,0 +1,2 @@
+# Normalize EOL for all files that Git considers text files.
+* text=auto eol=lf
diff --git a/packages/stage-tamagotchi-godot/.gitignore b/packages/stage-tamagotchi-godot/.gitignore
new file mode 100644
index 000000000..0af181cfb
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/.gitignore
@@ -0,0 +1,3 @@
+# Godot 4+ specific ignores
+.godot/
+/android/
diff --git a/packages/stage-tamagotchi-godot/README.md b/packages/stage-tamagotchi-godot/README.md
new file mode 100644
index 000000000..d0afaef80
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/README.md
@@ -0,0 +1,71 @@
+# `@proj-airi/stage-tamagotchi-godot`
+
+Godot-native desktop stage runtime project for `stage-tamagotchi`.
+
+## What It Does
+
+- Hosts the Godot project used as the desktop-only stage runtime baseline.
+- Provides the minimal scene, script, and .NET project structure for G0 stage work.
+- Keeps Godot-owned assets, scenes, scripts, and future add-ons local to one workspace package.
+
+## What It Is Not
+
+- It is not the Electron host app.
+- It does not own AIRI agent logic or adaptation-layer IPC contracts.
+- It is not a web or mobile renderer package.
+
+## Current Scope
+
+- Desktop-only Godot sidecar runtime exploration for `stage-tamagotchi`.
+- Godot C# project structure and minimal runtime skeleton.
+- Early-stage scene and runtime validation work.
+
+## Directory Layout
+
+- `scenes/`: Godot scene files such as the current stage root.
+- `scripts/`: C# runtime scripts attached to Godot nodes.
+- `assets/`: Imported models, textures, materials, and other runtime assets.
+- `addons/`: Godot plugins, editor/runtime add-ons, or vendored third-party Godot extensions.
+
+## When To Use It
+
+- Use it when working on the Godot-backed desktop stage runtime.
+- Use it for Godot scene, asset, rendering, and character-runtime work.
+- Use it as the package boundary for the desktop Godot stage project itself.
+
+## When Not To Use It
+
+- Do not put Electron main/renderer host logic here.
+- Do not put AIRI agent orchestration or cross-process protocol definitions here.
+- Do not use it as a generic cross-platform stage abstraction package.
+
+## Build
+
+- `pnpm -F @proj-airi/stage-tamagotchi-godot build`
+- `pnpm -F @proj-airi/stage-tamagotchi-godot typecheck`
+
+Both commands currently run `dotnet build` against the Godot-generated C# project file.
+
+## Notes
+
+### Environment Management
+
+Recommended to use [GodotEnv](https://github.com/chickensoft-games/GodotEnv) to manage Godot versions.
+
+You can use the command below to set current Godot version for this project:
+
+```bash
+godotenv godot use 4.6.2
+```
+
+Then run the Godot editor with the current project:
+
+```bash
+"$(godotenv godot env path)" ./packages/stage-tamagotchi-godot/project.godot
+```
+
+You can also run the game directly from the command line:
+
+```bash
+"$(godotenv godot env path)" --path ./packages/stage-tamagotchi-godot
+```
diff --git a/packages/stage-tamagotchi-godot/addons/.gitkeep b/packages/stage-tamagotchi-godot/addons/.gitkeep
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/addons/.gitkeep
@@ -0,0 +1 @@
+
diff --git a/packages/stage-tamagotchi-godot/assets/.gitkeep b/packages/stage-tamagotchi-godot/assets/.gitkeep
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/assets/.gitkeep
@@ -0,0 +1 @@
+
diff --git a/packages/stage-tamagotchi-godot/icon.svg b/packages/stage-tamagotchi-godot/icon.svg
new file mode 100644
index 000000000..c6bbb7d82
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/icon.svg
@@ -0,0 +1 @@
+
diff --git a/packages/stage-tamagotchi-godot/icon.svg.import b/packages/stage-tamagotchi-godot/icon.svg.import
new file mode 100644
index 000000000..e05f92f18
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/icon.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b3nt42la34mi3"
+path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://icon.svg"
+dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=1.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/packages/stage-tamagotchi-godot/package.json b/packages/stage-tamagotchi-godot/package.json
new file mode 100644
index 000000000..ef15ca329
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "@proj-airi/stage-tamagotchi-godot",
+ "type": "module",
+ "version": "0.9.0",
+ "private": true,
+ "description": "Godot-native desktop stage runtime workspace package for stage-tamagotchi",
+ "author": {
+ "name": "Moeru AI Project AIRI Team",
+ "email": "airi@moeru.ai",
+ "url": "https://github.com/moeru-ai"
+ },
+ "license": "MIT",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/moeru-ai/airi.git",
+ "directory": "packages/stage-tamagotchi-godot"
+ },
+ "scripts": {
+ "build": "dotnet build ./stage-tamagotchi-godot.csproj",
+ "typecheck": "dotnet build ./stage-tamagotchi-godot.csproj"
+ }
+}
diff --git a/packages/stage-tamagotchi-godot/project.godot b/packages/stage-tamagotchi-godot/project.godot
new file mode 100644
index 000000000..7063e921b
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/project.godot
@@ -0,0 +1,28 @@
+; Engine configuration file.
+; It's best edited using the editor UI and not directly,
+; since the parameters that go here are not all obvious.
+;
+; Format:
+; [section] ; section goes between []
+; param=value ; assign values to parameters
+
+config_version=5
+
+[application]
+
+config/name="stage-tamagotchi-godot"
+run/main_scene="uid://c4t68p7ibkjxg"
+config/features=PackedStringArray("4.6", "C#", "Forward Plus")
+config/icon="res://icon.svg"
+
+[dotnet]
+
+project/assembly_name="stage-tamagotchi-godot"
+
+[physics]
+
+3d/physics_engine="Jolt Physics"
+
+[rendering]
+
+rendering_device/driver.windows="d3d12"
diff --git a/packages/stage-tamagotchi-godot/scenes/stage-root.tscn b/packages/stage-tamagotchi-godot/scenes/stage-root.tscn
new file mode 100644
index 000000000..cea40d137
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/scenes/stage-root.tscn
@@ -0,0 +1,24 @@
+[gd_scene format=3 uid="uid://c4t68p7ibkjxg"]
+
+[ext_resource type="Script" uid="uid://cwngwb6eal55x" path="res://scripts/StageRoot.cs" id="1_k8kx6"]
+
+[sub_resource type="BoxMesh" id="BoxMesh_mr4xw"]
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_f1a2p"]
+albedo_color = Color(0.772549, 0.882353, 0.984314, 1)
+
+[node name="Node3D" type="Node3D" unique_id=1704384288]
+script = ExtResource("1_k8kx6")
+
+[node name="Camera3D" type="Camera3D" parent="." unique_id=1342789791]
+transform = Transform3D(1, 0, 0, 0, 0.93969274, 0.34201992, 0, -0.34201992, 0.93969274, 0, 1.2, 3.5)
+current = true
+
+[node name="OmniLight3D" type="OmniLight3D" parent="." unique_id=1692990068]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, 2)
+light_color = Color(1, 0.956863, 0.909804, 1)
+omni_range = 12.0
+
+[node name="Box" type="MeshInstance3D" parent="." unique_id=840596041]
+mesh = SubResource("BoxMesh_mr4xw")
+surface_material_override/0 = SubResource("StandardMaterial3D_f1a2p")
diff --git a/packages/stage-tamagotchi-godot/scripts/StageRoot.cs b/packages/stage-tamagotchi-godot/scripts/StageRoot.cs
new file mode 100644
index 000000000..50c737c00
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/scripts/StageRoot.cs
@@ -0,0 +1,16 @@
+using Godot;
+using System;
+
+public partial class StageRoot : Node3D
+{
+ // Called when the node enters the scene tree for the first time.
+ public override void _Ready()
+ {
+ GD.Print("StageRoot ready");
+ }
+
+ // Called every frame. 'delta' is the elapsed time since the previous frame.
+ public override void _Process(double delta)
+ {
+ }
+}
diff --git a/packages/stage-tamagotchi-godot/scripts/StageRoot.cs.uid b/packages/stage-tamagotchi-godot/scripts/StageRoot.cs.uid
new file mode 100644
index 000000000..ef99f487d
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/scripts/StageRoot.cs.uid
@@ -0,0 +1 @@
+uid://cwngwb6eal55x
diff --git a/packages/stage-tamagotchi-godot/stage-tamagotchi-godot.csproj b/packages/stage-tamagotchi-godot/stage-tamagotchi-godot.csproj
new file mode 100644
index 000000000..69849c62a
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/stage-tamagotchi-godot.csproj
@@ -0,0 +1,8 @@
+
+
+ net8.0
+ net9.0
+ true
+ StageTamagotchiGodot
+
+
\ No newline at end of file
diff --git a/packages/stage-tamagotchi-godot/stage-tamagotchi-godot.sln b/packages/stage-tamagotchi-godot/stage-tamagotchi-godot.sln
new file mode 100644
index 000000000..02ad094fc
--- /dev/null
+++ b/packages/stage-tamagotchi-godot/stage-tamagotchi-godot.sln
@@ -0,0 +1,19 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "stage-tamagotchi-godot", "stage-tamagotchi-godot.csproj", "{95468D0F-8DA0-4018-8339-3723064F84F3}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ ExportDebug|Any CPU = ExportDebug|Any CPU
+ ExportRelease|Any CPU = ExportRelease|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {95468D0F-8DA0-4018-8339-3723064F84F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {95468D0F-8DA0-4018-8339-3723064F84F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {95468D0F-8DA0-4018-8339-3723064F84F3}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
+ {95468D0F-8DA0-4018-8339-3723064F84F3}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
+ {95468D0F-8DA0-4018-8339-3723064F84F3}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
+ {95468D0F-8DA0-4018-8339-3723064F84F3}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index af30b6988..159e1d0b1 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -3044,6 +3044,8 @@ importers:
specifier: 'catalog:'
version: 0.0.97
+ packages/stage-tamagotchi-godot: {}
+
packages/stage-ui:
dependencies:
'@date-fns/utc':