diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 0a44e42..9227c43 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -37,16 +37,71 @@ jobs:
mkdir -p root.x86_64/var/lib/machines/arch
pacstrap -c root.x86_64/var/lib/machines/arch base
echo -e 'Server = http://mirrors.cat.net/archlinux/$repo/os/$arch
- Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch' >> ./root.x86_64/etc/pacman.d/mirrorlist
- sed -i s/CheckSpace/#CheckeSpace/ root.x86_64/etc/pacman.conf
- arch-chroot root.x86_64 /bin/sh -c 'pacman-key --init'
- arch-chroot root.x86_64 /bin/sh -c 'pacman-key --populate archlinux'
- arch-chroot root.x86_64 /bin/sh -c 'pacman -Syu --noconfirm base base-devel linux vim git zsh rust openssh openssl jq go nodejs docker podman bc'
- arch-chroot root.x86_64 /bin/sh -c 'mkdir -p /etc/containers/registries.conf.d'
- arch-chroot root.x86_64 /bin/sh -c 'curl -sL -o /etc/containers/registries.conf.d/ai.conf https://git.syui.ai/ai/os/raw/branch/main/cfg/ai.conf'
- arch-chroot root.x86_64 /bin/sh -c 'chsh -s /bin/zsh'
- arch-chroot root.x86_64 /bin/sh -c 'git clone https://git.syui.ai/ai/bot && cd bot && cargo build && cp -rf ./target/debug/ai /bin/ && ai ai'
- tar -zcvf aios-bootstrap.tar.gz root.x86_64/
+ Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch' >> ./root.x86_64/var/lib/machines/arch/etc/pacman.d/mirrorlist
+ sed -i s/CheckSpace/#CheckeSpace/ root.x86_64/var/lib/machines/arch/etc/pacman.conf
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'pacman-key --init'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'pacman-key --populate archlinux'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'pacman -Syu --noconfirm base base-devel linux vim git zsh rust openssh openssl jq go nodejs npm docker podman bc sqlite'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'mkdir -p /etc/containers/registries.conf.d'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'curl -sL -o /etc/containers/registries.conf.d/ai.conf https://git.syui.ai/ai/os/raw/branch/main/cfg/ai.conf'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'chsh -s /bin/zsh'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'npm i -g @anthropic-ai/claude-code'
+ cp -rf ./cfg/os-release root.x86_64/var/lib/machines/arch/etc/os-release
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'useradd -m -G wheel -s /bin/zsh ai'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'echo "ai:root" | chpasswd'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'echo "%wheel ALL=(ALL:ALL) NOPASSWD: /usr/bin/pacman -Syu --noconfirm, /usr/bin/rm -rf /var/lib/pacman/db.lck, /usr/bin/poweroff, /usr/bin/reboot, /usr/bin/machinectl" >> /etc/sudoers'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'mkdir -p /etc/systemd/system/getty@tty1.service.d'
+ cat > root.x86_64/var/lib/machines/arch/etc/systemd/system/getty@tty1.service.d/override.conf <<'EOF'
+ [Service]
+ ExecStart=
+ ExecStart=-/usr/bin/agetty --autologin ai --noclear %I $TERM
+ EOF
+ cp -rf ./cfg/zshrc root.x86_64/var/lib/machines/arch/root/.zshrc
+ cp -rf ./cfg/zshrc root.x86_64/var/lib/machines/arch/home/ai/.zshrc
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'chown ai:ai /home/ai/.zshrc'
+ cp -rf ./cfg/aios.zsh root.x86_64/var/lib/machines/arch/usr/local/bin/aios-startup
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'chmod +x /usr/local/bin/aios-startup'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'mkdir -p /home/ai/.config/syui/ai/os'
+ cat > root.x86_64/var/lib/machines/arch/home/ai/.config/syui/ai/os/config.json <<'EOF'
+ {
+ "shell": false
+ }
+ EOF
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'chown -R ai:ai /home/ai/.config'
+ cat >> root.x86_64/var/lib/machines/arch/home/ai/.zshrc <<'EOF'
+
+ # aios startup
+ source /usr/local/bin/aios-startup
+ EOF
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'git clone https://git.syui.ai/ai/gpt && cd gpt && cargo build --release && cp -rf ./target/release/aigpt /bin/'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'mkdir -p /root/.config/syui/ai/claude'
+ cat > root.x86_64/var/lib/machines/arch/root/.config/syui/ai/claude/claude_desktop_config.json <<'EOF'
+ {
+ "mcpServers": {
+ "aigpt": {
+ "command": "aigpt",
+ "args": ["server", "--enable-layer4"]
+ }
+ }
+ }
+ EOF
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'ln -sf /root/.config/syui/ai/claude /root/.config/claude'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'mkdir -p /home/ai/.config/syui/ai/claude'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'cp /root/.config/syui/ai/claude/claude_desktop_config.json /home/ai/.config/syui/ai/claude/'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'ln -sf /home/ai/.config/syui/ai/claude /home/ai/.config/claude'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'chown -R ai:ai /home/ai/.config/syui'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'git clone https://git.syui.ai/ai/bot && cd bot && cargo build && cp -rf ./target/debug/ai /bin/ && ai ai'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'mkdir -p /root/.config/syui/ai/gpt'
+ cp -rf ./cfg/mcp.json root.x86_64/var/lib/machines/arch/root/.config/syui/ai/mcp.json
+ cp -rf ./cfg/config.toml root.x86_64/var/lib/machines/arch/root/.config/syui/ai/config.toml
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'aigpt server --enable-layer4 &'
+ sleep 2
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'pkill aigpt'
+ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'if command -v sqlite3 &>/dev/null; then sqlite3 /root/.config/syui/ai/gpt/memory.db "PRAGMA journal_mode=WAL; PRAGMA synchronous=NORMAL;"; fi'
+ cp -rf ./cfg/aios-ctl.zsh root.x86_64/var/lib/machines/arch/opt/aios-ctl.zsh
+ cp -rf ./cfg/install.sh ./install.sh
+ chmod +x ./install.sh
+ tar -zcvf aios-bootstrap.tar.gz root.x86_64/ install.sh
tar -C ./root.x86_64 -c . | docker import - ${{ env.IMAGE_NAME }}
echo "${{ env.DOCKER_TOKEN }}" | docker login -u syui --password-stdin
docker push ${{ env.IMAGE_NAME }}
diff --git a/.gitignore b/.gitignore
index f2ba035..592174c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,9 @@
.config/ai
**.DS_Store
+
+# Build artifacts
+aios-bootstrap*.tar.gz
+root.x86_64/
+archiso/
+install.sh
+build.log
diff --git a/README.md b/README.md
index 4a89543..1ddc2af 100644
--- a/README.md
+++ b/README.md
@@ -1,110 +1,188 @@
-#
ai `os`
+#
ai `os`
-`aios` is a simple linux distribution based on `archlinux`.
+**aios** = ArchLinux + Claude Code + aigpt in systemd-nspawn
-|rule|var|
-|---|---|
-|name|ai os|
-|code|aios|
-|id|ai|
-|container|[git.syui.ai/ai/os](https://git.syui.ai/ai/-/packages/container/os/latest)|
-|image|[aios-bootstrap.tar.gz](https://github.com/syui/aios/releases/download/latest/aios-bootstrap.tar.gz)|
+A minimal ArchLinux environment optimized for Claude Code with shared AI memory.
-```sh
-$ docker run -it git.syui.ai/ai/os ai
+```
+systemd-nspawn container
+├── Claude Code (AI interface)
+├── aigpt (shared memory)
+└── zsh (.zshrc configured)
+
+$ sudo machinectl shell aios
+$ claude # Start Claude Code
```
-## link
+## Philosophy
-|host|command|url|
-|---|---|---|
-|docker|syui/aios|https://hub.docker.com/r/syui/aios|
-|github|ghcr.io/syui/aios|https://github.com/users/syui/packages/container/package/aios|
-|syui|git.syui.ai/ai/os|https://git.syui.ai/ai/-/packages/container/os|
+**Insert AI into existing flows**
-## base
+Instead of building a new AI chat interface, use **Claude Code** (which already works).
+
+aios provides:
+1. Pre-installed **aigpt** (MCP server for shared memory)
+2. Pre-installed **Claude Code** (`npm i -g @anthropic-ai/claude-code`)
+3. Environment isolation with **systemd-nspawn**
+4. Shared memory across containers
+
+## What's Included
+
+### 1. Claude Code
+
+Pre-installed and ready to use:
```sh
-# https://gitlab.archlinux.org/archlinux
-$ git clone https://gitlab.archlinux.org/archlinux/archiso
+$ claude
+# Claude Code starts, with MCP connection to aigpt
+> Install rust development environment
+✓ Installing rust, rust-analyzer, neovim
```
-## docker
+### 2. aigpt (Shared Memory)
+
+MCP server that provides persistent memory to Claude Code:
+
+```
+~/.config/syui/ai/gpt/memory.db (SQLite, WAL mode)
+ ↓ bind mount
+aios-dev, aios-prod, etc. (all share same DB)
+```
+
+AI remembers your preferences across all containers.
+
+### 3. systemd-nspawn
+
+Lightweight container environment:
```sh
-# https://git.syui.ai/ai/-/packages/container/os
-$ docker run -it git.syui.ai/ai/os ai
-
-# https://hub.docker.com/r/syui/aios
-$ docekr run -it syui/aios ai
-
-# https://github.com/users/syui/packages/container/package/aios
-$ docker run -it ghcr.io/syui/aios ai
+$ sudo machinectl shell aios
+# Inside container with aigpt + Claude Code
```
-## token
+Multiple containers can share the same memory.
-|env|body|
-|---|---|
-|${{ github.repository }}|syui/aios|
-|${{ secrets.DOCKER_USERNAME }}|syui|
-|${{ secrets.DOCKER_TOKEN }}|[token](https://matsuand.github.io/docs.docker.jp.onthefly/docker-hub/access-tokens/)|
-|${{ secrets.APP_TOKEN }}|[token](https://docs.github.com/ja/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens), pacakge|
+## Architecture
-## podman
+```
+Host
+├── ~/.config/syui/ai/gpt/memory.db (shared)
+│
+└── /var/lib/machines/aios/ (container)
+ ├── ArchLinux base
+ ├── aigpt (MCP server)
+ ├── Claude Code
+ ├── .zshrc (aliases: ai=claude)
+ └── Bind mount → shared memory
+```
+
+## Quick Start
```sh
-if [ ! -d ~/ai/os/.git ];then
- mkdir -p ~/ai
- git clone https://git.syui.ai/ai/os ~/ai/os
-fi
-if [ ! -d ~/.config/containers/registries.conf.d ];then
- mkdir -p ~/.config/containers/registries.conf.d
-fi
-ln -s ~/ai/os/.config/containers/registries.conf.d/ai.conf ~/.config/containers/registries.conf.d/ai.conf
+# 1. Clone repository
+$ git clone https://github.com/syui/aios
+$ cd aios
+
+# 2. Run installer (creates systemd-nspawn container)
+$ sudo ./aios-install.sh
+
+# 3. Enter container
+$ sudo machinectl shell aios
+
+# 4. Start Claude Code
+$ claude
+# or
+$ ai
```
+## Container Distribution
+
+Pre-built containers are available:
+
```sh
-$ podman pull aios
+# Docker
+$ docker run -it git.syui.ai/ai/os
+$ docker run -it ghcr.io/syui/aios
+
+# Podman
+$ podman pull aios # using shortname alias
```
-> ~/.config/containers/registries.conf.d/ai.conf
+## Configuration
+
+### Directory Structure
+
+```
+~/.config/syui/ai/
+├── gpt/memory.db # Shared memory (SQLite WAL)
+├── mcp.json # MCP server config
+└── config.toml # aios config
+```
+
+### MCP Configuration
+
+Claude Code connects to aigpt via MCP:
+
+```json
+{
+ "mcpServers": {
+ "aigpt": {
+ "command": "aigpt",
+ "args": ["server", "--enable-layer4"]
+ }
+ }
+}
+```
+
+This enables Claude Code to use aigpt's memory system.
+
+## Building from Source
```sh
-# https://github.com/containers/shortnames
-# ~/.config/containers/registries.conf.d/ai.conf
-unqualified-search-registries = ['git.syui.ai', 'docker.io', 'ghcr.io']
-
-[aliases]
-"aios" = "git.syui.ai/ai/os"
+$ pacman -S base-devel archiso docker git rust nodejs npm
+$ ./build.zsh
+# Creates: aios-bootstrap.tar.gz
```
-```sh
-$ podman pull aios
-Resolved "aios" as an alias (/etc/containers/registries.conf.d/ai.conf)
-Trying to pull git.syui.ai/ai/os:latest...
-Getting image source signatures
-Copying blob c7e55fecf0be [====================>-----------------] 917.4MiB / 1.7GiB
-```
+## How It Works
-## cron
+1. **systemd-nspawn** provides lightweight containers
+2. **aigpt** runs as MCP server, stores memories in SQLite
+3. **Claude Code** connects to aigpt via MCP
+4. Shared memory (`~/.config/syui/ai/gpt/memory.db`) is bind-mounted
-stop
+**Result:** Claude Code can remember your preferences across all containers.
-```sh
- schedule:
- - cron: "0 0 * * *"
-```
+## Why Not Just Use Claude Code?
-## update action
+You can! aios just provides:
+- Pre-configured environment
+- Shared memory (aigpt) pre-installed
+- Container isolation
+- Easy multi-environment setup
-```sh
-$ vim build.zszh
-$ ./scpt/gh-actions.zsh
-```
+## Links
-## link
+- Repository: https://github.com/syui/aios
+- Git: https://git.syui.ai/ai/os
+- aigpt: https://git.syui.ai/ai/gpt
+- Container: https://git.syui.ai/ai/-/packages/container/os
-- https://git.syui.ai/ai/os
-- https://github.com/syui/aios
+## Philosophy
+**Insert AI into existing flows**
+
+Don't build a new AI chat interface. Use Claude Code (which already works).
+
+Don't create a new container system. Use systemd-nspawn (lightweight, standard).
+
+Just provide:
+1. aigpt for shared memory
+2. Pre-configured environment
+3. Automation scripts
+
+Simple. Minimal. Effective.
+
+---
+
+© syui
diff --git a/aios-install.sh b/aios-install.sh
new file mode 100755
index 0000000..03cc9f5
--- /dev/null
+++ b/aios-install.sh
@@ -0,0 +1,134 @@
+#!/bin/bash
+# aios installer - systemd-nspawn with aigpt + Claude Code
+
+set -e
+
+AIOS_VERSION="0.1.0"
+AIOS_ROOT="/var/lib/machines/aios"
+AIOS_CONFIG="$HOME/.config/syui/ai"
+
+echo "=== aios installer v${AIOS_VERSION} ==="
+echo ""
+echo "Installing: aigpt + Claude Code in systemd-nspawn"
+echo ""
+
+# 1. Create shared memory directory
+echo "[1/6] Creating shared memory directory..."
+mkdir -p "${AIOS_CONFIG}/gpt"
+chmod 700 "${AIOS_CONFIG}"
+echo "✓ Created: ${AIOS_CONFIG}"
+
+# 2. Download bootstrap container (if not exists)
+if [ ! -d "$AIOS_ROOT" ]; then
+ echo "[2/6] Downloading aios bootstrap container..."
+ if [ "$EUID" -eq 0 ]; then
+ mkdir -p /var/lib/machines
+ cd /var/lib/machines
+ curl -sL https://github.com/syui/aios/releases/download/latest/aios-bootstrap.tar.gz | tar xz
+ echo "✓ Bootstrap container extracted to: $AIOS_ROOT"
+ else
+ echo "⚠ Skipping (requires root)"
+ fi
+else
+ echo "[2/6] Bootstrap container already exists"
+fi
+
+# 3. Install aigpt (if not installed)
+if ! command -v aigpt &>/dev/null; then
+ echo "[3/6] Installing aigpt..."
+ if command -v cargo &>/dev/null; then
+ cd /tmp
+ git clone https://git.syui.ai/ai/gpt || git clone https://github.com/syui/aigpt
+ cd gpt 2>/dev/null || cd aigpt
+ cargo build --release
+
+ if [ "$EUID" -eq 0 ]; then
+ cp target/release/aigpt /usr/bin/
+ else
+ mkdir -p ~/.local/bin
+ cp target/release/aigpt ~/.local/bin/
+ echo " Add to PATH: export PATH=\$HOME/.local/bin:\$PATH"
+ fi
+ echo "✓ aigpt installed"
+ else
+ echo "⚠ cargo not found. Install rust first:"
+ echo " curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh"
+ fi
+else
+ echo "[3/6] aigpt already installed"
+fi
+
+# 4. Initialize aigpt database
+if [ ! -f "${AIOS_CONFIG}/gpt/memory.db" ]; then
+ echo "[4/6] Initializing aigpt database..."
+
+ # Start aigpt server temporarily to create DB
+ if command -v aigpt &>/dev/null; then
+ aigpt server --enable-layer4 &
+ AIGPT_PID=$!
+ sleep 2
+ kill $AIGPT_PID 2>/dev/null || true
+
+ # Enable WAL mode for concurrent access
+ if command -v sqlite3 &>/dev/null; then
+ sqlite3 "${AIOS_CONFIG}/gpt/memory.db" < /etc/systemd/nspawn/aios.nspawn
+
+ echo "✓ systemd-nspawn configuration installed"
+
+ # Enable and start container
+ echo ""
+ echo "Starting aios container..."
+ systemctl enable systemd-nspawn@aios
+ systemctl start systemd-nspawn@aios
+ echo "✓ aios container started"
+else
+ echo "[6/6] Skipping systemd setup (requires root)"
+fi
+
+echo ""
+echo "================================================"
+echo "✓ aios installation complete!"
+echo "================================================"
+echo ""
+echo "Next steps:"
+echo ""
+echo " # Enter aios container:"
+echo " $ sudo machinectl shell aios"
+echo ""
+echo " # Inside container, start Claude Code:"
+echo " $ claude"
+echo " # or"
+echo " $ ai"
+echo ""
+echo "Configuration:"
+echo " Shared memory: ${AIOS_CONFIG}/gpt/memory.db"
+echo " MCP config: ${AIOS_CONFIG}/mcp.json"
+echo ""
diff --git a/build.zsh b/build.zsh
index 92bcf60..babd919 100755
--- a/build.zsh
+++ b/build.zsh
@@ -10,13 +10,110 @@ tar xf aios-bootstrap*.tar.gz
mkdir -p root.x86_64/var/lib/machines/arch
pacstrap -c root.x86_64/var/lib/machines/arch base
echo -e 'Server = http://mirrors.cat.net/archlinux/$repo/os/$arch
-Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch' >> ./root.x86_64/etc/pacman.d/mirrorlist
-sed -i s/CheckSpace/#CheckeSpace/ root.x86_64/etc/pacman.conf
-arch-chroot root.x86_64 /bin/sh -c 'pacman-key --init'
-arch-chroot root.x86_64 /bin/sh -c 'pacman-key --populate archlinux'
-arch-chroot root.x86_64 /bin/sh -c 'pacman -Syu --noconfirm base base-devel linux vim git zsh rust openssh openssl jq go nodejs docker podman bc'
-arch-chroot root.x86_64 /bin/sh -c 'mkdir -p /etc/containers/registries.conf.d'
-arch-chroot root.x86_64 /bin/sh -c 'curl -sL -o /etc/containers/registries.conf.d/ai.conf https://git.syui.ai/ai/os/raw/branch/main/cfg/ai.conf'
-arch-chroot root.x86_64 /bin/sh -c 'chsh -s /bin/zsh'
-arch-chroot root.x86_64 /bin/sh -c 'git clone https://git.syui.ai/ai/bot && cd bot && cargo build && cp -rf ./target/debug/ai /bin/ && ai ai'
-tar -zcvf aios-bootstrap.tar.gz root.x86_64/
+Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch' >> ./root.x86_64/var/lib/machines/arch/etc/pacman.d/mirrorlist
+sed -i s/CheckSpace/#CheckeSpace/ root.x86_64/var/lib/machines/arch/etc/pacman.conf
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'pacman-key --init'
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'pacman-key --populate archlinux'
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'pacman -Syu --noconfirm base base-devel linux vim git zsh rust openssh openssl jq go nodejs npm docker podman bc sqlite'
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'mkdir -p /etc/containers/registries.conf.d'
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'curl -sL -o /etc/containers/registries.conf.d/ai.conf https://git.syui.ai/ai/os/raw/branch/main/cfg/ai.conf'
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'chsh -s /bin/zsh'
+
+# Install Claude Code
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'npm i -g @anthropic-ai/claude-code'
+
+# Copy os-release
+cp -rf ./cfg/os-release root.x86_64/var/lib/machines/arch/etc/os-release
+
+# Create default user 'ai'
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'useradd -m -G wheel -s /bin/zsh ai'
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'echo "ai:root" | chpasswd'
+
+# Enable wheel group for sudo (specific commands without password)
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'echo "%wheel ALL=(ALL:ALL) NOPASSWD: /usr/bin/pacman -Syu --noconfirm, /usr/bin/rm -rf /var/lib/pacman/db.lck, /usr/bin/poweroff, /usr/bin/reboot, /usr/bin/machinectl" >> /etc/sudoers'
+
+# Setup auto-login for user 'ai'
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'mkdir -p /etc/systemd/system/getty@tty1.service.d'
+cat > root.x86_64/var/lib/machines/arch/etc/systemd/system/getty@tty1.service.d/override.conf <<'EOF'
+[Service]
+ExecStart=
+ExecStart=-/usr/bin/agetty --autologin ai --noclear %I $TERM
+EOF
+
+# Copy .zshrc for root
+cp -rf ./cfg/zshrc root.x86_64/var/lib/machines/arch/root/.zshrc
+
+# Copy .zshrc for user 'ai'
+cp -rf ./cfg/zshrc root.x86_64/var/lib/machines/arch/home/ai/.zshrc
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'chown ai:ai /home/ai/.zshrc'
+
+# Copy aios startup script
+cp -rf ./cfg/aios.zsh root.x86_64/var/lib/machines/arch/usr/local/bin/aios-startup
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'chmod +x /usr/local/bin/aios-startup'
+
+# Create default config directory and file for user 'ai'
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'mkdir -p /home/ai/.config/syui/ai/os'
+cat > root.x86_64/var/lib/machines/arch/home/ai/.config/syui/ai/os/config.json <<'EOF'
+{
+ "shell": false
+}
+EOF
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'chown -R ai:ai /home/ai/.config'
+
+# Update .zshrc to source startup script
+cat >> root.x86_64/var/lib/machines/arch/home/ai/.zshrc <<'EOF'
+
+# aios startup
+source /usr/local/bin/aios-startup
+EOF
+
+# Install aigpt (AI memory system)
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'git clone https://git.syui.ai/ai/gpt && cd gpt && cargo build --release && cp -rf ./target/release/aigpt /bin/'
+
+# Setup Claude Code MCP configuration (shared via symlink)
+# Create actual config in syui/ai/claude (bind-mounted)
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'mkdir -p /root/.config/syui/ai/claude'
+cat > root.x86_64/var/lib/machines/arch/root/.config/syui/ai/claude/claude_desktop_config.json <<'EOF'
+{
+ "mcpServers": {
+ "aigpt": {
+ "command": "aigpt",
+ "args": ["server", "--enable-layer4"]
+ }
+ }
+}
+EOF
+
+# Create symlink for root
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'ln -sf /root/.config/syui/ai/claude /root/.config/claude'
+
+# Setup for ai user too
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'mkdir -p /home/ai/.config/syui/ai/claude'
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'cp /root/.config/syui/ai/claude/claude_desktop_config.json /home/ai/.config/syui/ai/claude/'
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'ln -sf /home/ai/.config/syui/ai/claude /home/ai/.config/claude'
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'chown -R ai:ai /home/ai/.config/syui'
+
+# Install ai/bot (optional, for backward compatibility)
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'git clone https://git.syui.ai/ai/bot && cd bot && cargo build && cp -rf ./target/debug/ai /bin/ && ai ai'
+
+# Create config directory
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'mkdir -p /root/.config/syui/ai/gpt'
+
+# Copy MCP and aios configuration
+cp -rf ./cfg/mcp.json root.x86_64/var/lib/machines/arch/root/.config/syui/ai/mcp.json
+cp -rf ./cfg/config.toml root.x86_64/var/lib/machines/arch/root/.config/syui/ai/config.toml
+
+# Initialize aigpt database with WAL mode
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'aigpt server --enable-layer4 &'
+sleep 2
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'pkill aigpt'
+arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'if command -v sqlite3 &>/dev/null; then sqlite3 /root/.config/syui/ai/gpt/memory.db "PRAGMA journal_mode=WAL; PRAGMA synchronous=NORMAL;"; fi'
+
+# Copy aios-ctl.zsh for host machine control
+cp -rf ./cfg/aios-ctl.zsh root.x86_64/var/lib/machines/arch/opt/aios-ctl.zsh
+
+# Copy install script to root for easy access
+cp -rf ./cfg/install.sh ./install.sh
+chmod +x ./install.sh
+
+tar -zcvf aios-bootstrap.tar.gz root.x86_64/ install.sh
diff --git a/cfg/aios-ctl.zsh b/cfg/aios-ctl.zsh
new file mode 100644
index 0000000..41cfd30
--- /dev/null
+++ b/cfg/aios-ctl.zsh
@@ -0,0 +1,132 @@
+#!/bin/zsh
+# aios machine control commands
+
+NAME="aios"
+BACKUP="${NAME}back"
+
+# Start aios container
+function aios-start() {
+ sudo machinectl start $NAME
+}
+
+# Stop aios container
+function aios-stop() {
+ sudo machinectl poweroff $NAME > /dev/null 2>&1
+ sleep 2
+ sudo machinectl terminate $NAME > /dev/null 2>&1
+}
+
+# Shell into aios container
+function aios-shell() {
+ sudo machinectl shell $NAME
+}
+
+# Login to aios container
+function aios-login() {
+ sudo machinectl login $NAME
+}
+
+# Create backup of current aios
+function aios-backup() {
+ echo "Creating backup: $BACKUP"
+ sudo machinectl poweroff $BACKUP > /dev/null 2>&1
+ sleep 2
+ sudo machinectl terminate $BACKUP > /dev/null 2>&1
+ sleep 2
+ sudo machinectl remove $BACKUP > /dev/null 2>&1
+ sleep 2
+ sudo machinectl clone $NAME $BACKUP
+ echo "Backup created: $BACKUP"
+}
+
+# Reset aios from backup
+function aios-reset() {
+ if ! sudo machinectl list-images | grep -q $BACKUP; then
+ echo "Error: No backup found. Run 'aios-backup' first."
+ return 1
+ fi
+
+ echo "Resetting $NAME from $BACKUP..."
+ sudo machinectl poweroff $NAME > /dev/null 2>&1
+ sleep 2
+ sudo machinectl terminate $NAME > /dev/null 2>&1
+ sleep 2
+ sudo machinectl remove $NAME
+ sleep 2
+ sudo machinectl clone $BACKUP $NAME
+ sleep 2
+ sudo machinectl start $NAME
+ echo "Reset complete"
+}
+
+# Update packages in backup
+function aios-update() {
+ if ! sudo machinectl list-images | grep -q $BACKUP; then
+ echo "Error: No backup found. Run 'aios-backup' first."
+ return 1
+ fi
+
+ echo "Updating $BACKUP..."
+ sudo machinectl start $BACKUP
+ sleep 5
+ sudo machinectl shell $BACKUP /bin/sh -c 'pacman -Syu --noconfirm'
+ sleep 2
+ sudo machinectl poweroff $BACKUP
+ echo "Update complete"
+}
+
+# Remove aios container
+function aios-remove() {
+ echo "Removing $NAME..."
+ sudo machinectl poweroff $NAME > /dev/null 2>&1
+ sleep 2
+ sudo machinectl terminate $NAME > /dev/null 2>&1
+ sleep 2
+ sudo machinectl remove $NAME
+ echo "Removed $NAME"
+}
+
+# List all machines
+function aios-list() {
+ sudo machinectl list-images
+}
+
+# Show status
+function aios-status() {
+ sudo machinectl status $NAME
+}
+
+# Execute command in aios
+function aios-exec() {
+ if [ -z "$1" ]; then
+ echo "Usage: aios-exec "
+ return 1
+ fi
+ sudo machinectl shell $NAME /bin/sh -c "$*"
+}
+
+# Show help
+function aios-help() {
+ cat <<'EOF'
+aios machine control commands:
+
+ aios-start Start aios container
+ aios-stop Stop aios container
+ aios-shell Open shell in aios container
+ aios-login Login to aios container console
+ aios-backup Create backup snapshot (aiosback)
+ aios-reset Reset aios from backup
+ aios-update Update packages in backup
+ aios-remove Remove aios container
+ aios-list List all machine images
+ aios-status Show aios status
+ aios-exec Execute command in aios
+ aios-help Show this help
+
+Example workflow:
+ 1. aios-start # Start container
+ 2. aios-login # Login and use
+ 3. aios-backup # Create backup before major changes
+ 4. aios-reset # Restore if something breaks
+EOF
+}
diff --git a/cfg/aios.zsh b/cfg/aios.zsh
new file mode 100644
index 0000000..933d9f6
--- /dev/null
+++ b/cfg/aios.zsh
@@ -0,0 +1,38 @@
+#!/bin/zsh
+# aios startup script
+
+CONFIG_DIR="$HOME/.config/syui/ai/os"
+CONFIG_FILE="$CONFIG_DIR/config.json"
+
+# 設定ファイルが存在しない場合は何もしない
+if [ ! -f "$CONFIG_FILE" ]; then
+ return
+fi
+
+# jqで設定読み込み
+if ! command -v jq &>/dev/null; then
+ return
+fi
+
+SHELL_MODE=$(cat "$CONFIG_FILE" | jq -r '.shell // false')
+
+if [ "$SHELL_MODE" = "true" ]; then
+ echo "aios - AI-managed OS"
+ echo " Starting workspace container..."
+ echo ""
+
+ # Check if workspace exists
+ if ! sudo machinectl list-images | grep -q "^workspace"; then
+ echo "Error: workspace container not found"
+ echo "Please run install.sh first to create workspace container"
+ return
+ fi
+
+ # Start workspace container
+ sudo machinectl start workspace 2>/dev/null || true
+ sleep 2
+
+ # Login to workspace (claude.service will auto-start inside)
+ echo "Connecting to workspace container..."
+ exec sudo machinectl login workspace
+fi
diff --git a/cfg/config.toml b/cfg/config.toml
new file mode 100644
index 0000000..d441b89
--- /dev/null
+++ b/cfg/config.toml
@@ -0,0 +1,59 @@
+# aios configuration
+
+[general]
+version = "0.1.0"
+name = "aios"
+description = "AI-managed OS with shared memory"
+
+[paths]
+config_dir = "~/.config/syui/ai"
+memory_db = "~/.config/syui/ai/gpt/memory.db"
+mcp_config = "~/.config/syui/ai/mcp.json"
+
+[permissions]
+# Level 0: Auto-allow (no approval required)
+auto_allow = [
+ "pacman -Q*",
+ "pacman -Ss*",
+ "systemctl status*",
+ "ls", "cat", "grep", "find",
+ "ps", "top", "htop",
+ "df", "free", "uname"
+]
+
+# Level 1: Notify (log only, no approval)
+notify = [
+ "pacman -S*",
+ "pacman -Sy*",
+ "git clone*",
+ "cargo install*",
+ "systemctl start*",
+ "systemctl enable*"
+]
+
+# Level 2: Require approval
+require_approval = [
+ "pacman -R*",
+ "rm -rf*",
+ "systemctl stop*",
+ "systemctl disable*",
+ "dd*"
+]
+
+# Level 3: Deny
+deny = [
+ "rm -rf /",
+ "rm -rf /*",
+ "mkfs*",
+ ":(){ :|:& };:"
+]
+
+[aigpt]
+enable_layer4 = true
+wal_mode = true
+cache_size_mb = 64
+
+[container]
+runtime = "systemd-nspawn"
+private_users = true
+virtual_ethernet = true
diff --git a/cfg/install.sh b/cfg/install.sh
new file mode 100644
index 0000000..86703e9
--- /dev/null
+++ b/cfg/install.sh
@@ -0,0 +1,118 @@
+#!/bin/bash
+# aios installation script
+
+set -e
+
+NAME="aios"
+BACKUP="${NAME}back"
+TARBALL="aios-bootstrap.tar.gz"
+
+echo "=== aios installation ==="
+echo ""
+
+# Check if running as root
+if [ "$EUID" -ne 0 ]; then
+ echo "Error: This script must be run as root"
+ exit 1
+fi
+
+# Check if tarball exists
+if [ ! -f "$TARBALL" ]; then
+ echo "Error: $TARBALL not found"
+ echo "Please download aios-bootstrap.tar.gz first"
+ exit 1
+fi
+
+# Extract tarball
+echo "1. Extracting $TARBALL..."
+tar xf "$TARBALL"
+
+# Move to /var/lib/machines/
+echo "2. Installing to /var/lib/machines/$NAME..."
+rm -rf /var/lib/machines/$NAME
+mkdir -p /var/lib/machines
+mv root.x86_64/var/lib/machines/arch /var/lib/machines/$NAME
+
+# Copy nspawn configuration
+echo "3. Installing systemd-nspawn configuration..."
+mkdir -p /etc/systemd/nspawn
+
+# Create aios.nspawn
+cat > /etc/systemd/nspawn/$NAME.nspawn <<'EOF'
+[Exec]
+Boot=yes
+PrivateUsers=pick
+ResolvConf=copy-host
+
+[Files]
+Bind=/root/.config/syui/ai:/root/.config/syui/ai
+
+[Network]
+VirtualEthernet=no
+EOF
+
+# Create aiosback.nspawn
+cat > /etc/systemd/nspawn/$BACKUP.nspawn <<'EOF'
+[Exec]
+Boot=yes
+PrivateUsers=pick
+ResolvConf=copy-host
+
+[Files]
+Bind=/root/.config/syui/ai:/root/.config/syui/ai
+
+[Network]
+VirtualEthernet=no
+EOF
+
+# Create workspace.nspawn
+cat > /etc/systemd/nspawn/workspace.nspawn <<'EOF'
+[Exec]
+Boot=yes
+PrivateUsers=pick
+ResolvConf=copy-host
+
+[Files]
+Bind=/root/.config/syui/ai:/root/.config/syui/ai
+
+[Network]
+VirtualEthernet=no
+EOF
+
+# Create bind mount directory
+mkdir -p /root/.config/syui/ai
+
+# Enable systemd-machined
+echo "4. Enabling systemd-machined..."
+systemctl enable --now systemd-machined
+
+# Create initial backup
+echo "5. Creating initial backup image..."
+machinectl clone $NAME $BACKUP
+
+# Create workspace container for AI operations
+echo "6. Creating workspace container..."
+machinectl clone $NAME workspace
+
+echo ""
+echo "=== Installation complete ==="
+echo ""
+echo "Next steps for each user:"
+echo " 1. Copy control script to your home:"
+echo " cp /var/lib/machines/$NAME/opt/aios-ctl.zsh ~/.aios-ctl.zsh"
+echo ""
+echo " 2. Add to your .zshrc:"
+echo " echo 'source ~/.aios-ctl.zsh' >> ~/.zshrc"
+echo " source ~/.zshrc"
+echo ""
+echo " 3. Start aios:"
+echo " aios-start"
+echo ""
+echo " 4. Login to aios:"
+echo " aios-login"
+echo ""
+echo "Available commands:"
+echo " aios-start, aios-stop, aios-shell, aios-login"
+echo " aios-backup, aios-reset, aios-update"
+echo " aios-help for full list"
+echo ""
diff --git a/cfg/mcp.json b/cfg/mcp.json
new file mode 100644
index 0000000..5753a69
--- /dev/null
+++ b/cfg/mcp.json
@@ -0,0 +1,12 @@
+{
+ "mcpServers": {
+ "aigpt": {
+ "command": "aigpt",
+ "args": ["server", "--enable-layer4"],
+ "env": {
+ "AIGPT_DB": "/root/.config/syui/ai/gpt/memory.db"
+ },
+ "description": "AI memory and personality system"
+ }
+ }
+}
diff --git a/cfg/nspawn/aios.nspawn b/cfg/nspawn/aios.nspawn
new file mode 100644
index 0000000..6a07f95
--- /dev/null
+++ b/cfg/nspawn/aios.nspawn
@@ -0,0 +1,15 @@
+# systemd-nspawn configuration for aios
+# Place this file in /etc/systemd/nspawn/aios.nspawn
+
+[Exec]
+Boot=yes
+PrivateUsers=pick
+ResolvConf=copy-host
+
+[Files]
+# Bind mount shared memory directory
+# Host: /root/.config/syui/ai -> Container: /root/.config/syui/ai
+Bind=/root/.config/syui/ai:/root/.config/syui/ai
+
+[Network]
+VirtualEthernet=no
diff --git a/cfg/os-release b/cfg/os-release
index dd2a110..7794c7d 100644
--- a/cfg/os-release
+++ b/cfg/os-release
@@ -1,10 +1,14 @@
-BUILD_ID=rolling
-ANSI_COLOR="38;2;23;147;209"
-IMAGE_ID=aios
-IMAGE_VERSION=2024.02.11
-NAME=ai os
-PRETTY_NAME=ai os
+NAME=aios
+PRETTY_NAME=aios
ID=ai
+ID_LIKE=arch
+VERSION_ID=2024.11
+VERSION="2024.11 (Rolling)"
+VERSION_CODENAME=rolling
+BUILD_ID=rolling
+IMAGE_ID=aios
+IMAGE_VERSION=2024.11.06
+ANSI_COLOR="38;2;23;147;209"
HOME_URL=https://git.syui.ai/ai/os
DOCUMENTATION_URL=https://git.syui.ai/ai/os/wiki
SUPPORT_URL=https://git.syui.ai/ai/os/issues
diff --git a/cfg/profiledef.sh b/cfg/profiledef.sh
index 146fddb..cf86495 100644
--- a/cfg/profiledef.sh
+++ b/cfg/profiledef.sh
@@ -3,8 +3,8 @@
iso_name="aios"
iso_label="AI_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)"
-iso_publisher="ai os "
-iso_application="ai os Live/Rescue DVD"
+iso_publisher="aios "
+iso_application="aios Live/Rescue DVD"
iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)"
install_dir="ai"
#buildmodes=('iso')
diff --git a/cfg/zshrc b/cfg/zshrc
new file mode 100644
index 0000000..21f1cc1
--- /dev/null
+++ b/cfg/zshrc
@@ -0,0 +1,40 @@
+# aios .zshrc
+# AI-managed OS with Claude Code + aigpt
+
+# Environment
+export EDITOR=vim
+export LANG=en_US.UTF-8
+
+# Path
+export PATH=$HOME/.local/bin:$PATH
+
+# aigpt MCP configuration
+export AIGPT_CONFIG="$HOME/.config/syui/ai/config.toml"
+export AIGPT_MCP="$HOME/.config/syui/ai/mcp.json"
+
+# Aliases
+alias ai='claude'
+alias c='claude'
+
+# Prompt
+autoload -Uz promptinit
+promptinit
+prompt adam1
+
+# History
+HISTFILE=~/.zsh_history
+HISTSIZE=10000
+SAVEHIST=10000
+setopt SHARE_HISTORY
+
+# Completion
+autoload -Uz compinit
+compinit
+
+# Welcome message
+echo "aios - AI-managed OS"
+echo " aigpt: MCP server for shared memory"
+echo " claude: AI conversation interface"
+echo ""
+echo "Type 'claude' or 'ai' to start"
+echo ""