This login is unrelated to the encrypted credential hand-over feature (GitHub token /
Google Search key encryption). /
このログインは、暗号化による資格情報の受け渡し機能(GitHubトークン・Google検索キーの
暗号化)とは関係ありません。
This device is protected with email login. Enter your email to receive a one-time code. /
この端末はログイン保護が有効になっています。メールアドレスを入力してワンタイムコードを受け取ってください。
🔐 2026-08-28: this is now two-factor login (2FA). Step 1: verify a
one-time code sent to email 1, email 2, or SMS (any one of these works as the first
factor — the second address/phone is just a backup channel). Step 2: a QR code appears —
scan it with your phone, tablet, or a webcam-equipped device and tap Confirm there. Both
steps are required; entering just the code is no longer enough to log in. /
🔐 2026-08-28: 二段階認証(2FA)に変更しました。ステップ1として、
メール1・メール2・SMSのいずれかへ送られるワンタイムコードを確認します(どれか1つで
第一要素として十分です——2つ目のメール/電話番号はあくまで予備の受信経路です)。
ステップ2として、QRコードが表示されるので、スマホ・タブレット・WEBカメラ搭載端末で
撮影し、そちらの画面で「確認」を押してください。両方のステップが必須で、コードの
入力だけではログインは完了しません。
No email needed for this mode — tap the button below to show a QR code. /
この方式ではメールアドレスは不要です——下のボタンを押すとQRコードが表示されます。
Step 2 of 2: scan to confirm. This QR code is a one-time, short-lived
link (valid a few minutes, usable once). Scanning it and tapping Confirm proves you have
physical access to a second device — it is not the same strength as biometric or
cryptographic proof, so please don't share this screen with anyone. /
ステップ2/2: 撮影して確認してください。このQRコードは短命な
使い捨てのリンクです(数分で失効・1回のみ使用可)。撮影して「確認」を押すことは、
第二の端末を物理的に操作できることの証明になりますが、生体認証や暗号学的な証明と
同水準の強度ではありません——この画面を他人と共有しないでください。
Can't scan? Open this link directly on the confirming device: /
撮影できない場合は、確認に使う端末で直接このリンクを開いてください:
🔒 Login security / ログインセキュリティ
This login is unrelated to the 2026-08-27 encrypted credential hand-over feature
(the GitHub token / Google Search key options). This login gate was added earlier
(2026-08-26) and serves a different purpose (restricting who can use this device),
while the encryption feature protects API keys/tokens stored in this browser. /
このログインは、2026/08/27に導入した暗号化による資格情報の受け渡し機能
(GitHubトークン・Google検索キーの暗号化オプション)とは関係ありません。このログイン
機能はそれより前(2026-08-26)に追加されたもので、目的も異なります(この端末を誰が
使えるかを制限する機能です)。暗号化機能はこのブラウザに保存されるAPIキー・トークン
を保護するためのものです。
This PC/tablet/phone may be shared with family or coworkers. Choose a login method. You can
change this later in settings. /
このPC・タブレット・スマホなどは、家族や会社で共有する場合もあります。ログイン方式を選択してください。後から設定でいつでも変更できます。
For modes 3/4, once the QR is scanned and the confirm page opens, that device's code is
sent/received and approved automatically — no extra button press is needed there. /
方式3・4では、QRを撮影して確認ページが開いた時点で、その端末のワンタイムコードは
自動的に送受信・承認されます——追加のボタン操作は不要です。
🛠️ Under maintenance. Please wait about 30 seconds. / ただいまメンテナンス中です。30秒ほどお待ち下さい。
(30s)
このメンテナンス中は、サーバー接続国のニュースを収集し、話題についていけるよう準備しています。この待ち時間は固定のカウントダウン表示であり、実際のバックエンド処理の完了時刻と厳密には連動していません。 /
During this maintenance window, we gather local news for your region so the trainer can keep up with current topics. This countdown is a simple fixed timer and is not strictly tied to the actual completion time of backend processing.
💡 PC・スマホ・タブレット版のインストーラーはこちらからダウンロードしてインストールできます。
インストールすると、この画面を開いたときに自動で「PC版起動中!」などと表示され、端末のハードウェア(CPU・GPU・NPU)を活用できます。
💡 Download the installer for PC, phone or tablet here.
Once installed, opening this page automatically shows "PC version running!" and uses your device's hardware (CPU / GPU / NPU).
🎓 aruaru-search + aruaru-llm の完全無料版や、無料でお試しできるChatGPT・DeepSeek・Grok、
そして一番優秀ですが有料のClaude Code Desktopなどをお選びいただけます。open-englishと一緒に使うと、
AI先生と一緒に日本語・英語や世界中の言語を学習しながら、同時にフリーランス案件やインターネットニュース、
Courseraなどオンライン学習サイトの内容
(アメリカで求められるデータサイエンティストの学習内容など)を題材に、言語学習とプログラミング学習、
そしてスマホアプリやWEBサイトの開発も一緒に楽しめます。
メイドカフェ・プログラミングスクールと連携しています。
🎓 Choose aruaru-search + aruaru-llm (completely free), free trials of ChatGPT, DeepSeek and Grok, or the most
capable (but paid) Claude Code Desktop. Used together with open-english, you study English, Japanese and languages from all over the
world with an AI teacher while also enjoying language learning and programming — and building a
smartphone app or a website together — using freelance job posts, internet news and the content of online-learning sites such as
Coursera (for example, the data-scientist learning paths popular in the United States) as study material.
It works hand in hand with the
Maid Cafe Programming School.
PC版はまだ起動してません。 / PC version has not been launched yet.
※ この情報は開発者が定期メンテナンス時に手動で確認・更新しているものです(自動取得ではありません)。最新かつ正確な情報は必ず各社公式サイトでご確認ください。
/ This information is manually reviewed and updated by the developer during periodic maintenance (not fetched automatically in real time). Please check each provider's official site for the latest, authoritative details.
Last updated / 最終更新: -
📱 使わなくなったスマホもフル動員しましょう!(実験的機能) PC側にタスク配布API(GET /v1/background-fold/task・POST /v1/background-fold/task-result)を、Androidアプリ側にポーリング計算ワーカーを実装しました。NNAPI対応端末では、ベクトルの内積計算をNNAPI(NPU/GPU/DSP)へ委譲します(CPUより速く数値が一致する場合だけ採用、そうでなければCPU)。どのハードウェアで走るかはNNAPIが決めます。エミュレータ(NPU無し)での動作確認は済みで、実機NPUでの検証は端末ごとに異なります。使うにはAndroidアプリ内の「使わなくなったスマホもフル動員」欄にPC側のURLを入力して開始してください。
Let's put your unused phones to full use! (Experimental) We've implemented a PC-side task distribution API (GET /v1/background-fold/task, POST /v1/background-fold/task-result) and an Android polling worker that computes tasks. On NNAPI-capable devices the vector dot-product math is delegated to NNAPI (NPU/GPU/DSP) only when it is faster than the CPU and numerically matches; otherwise it runs on the CPU. The NNAPI runtime decides which hardware runs it. Verified on an emulator (no NPU); results on real NPUs vary by device. To try it, enter the PC's URL in the "put unused phones to full use" section of the Android app and start.
How it works: Since browsers cannot open a raw SSH socket, the
open-english-server native process itself acts as the SSH/SFTP client (via
russh) and connects to your VPS; the browser just tells it what to do over HTTP.
For security, the SSH private key and target host are configured via environment
variables by whoever runs the server — not typed into the browser — so the key
never has to travel over the network at all. See the env var names above. Only a fixed
cat command against the allow-listed paths can be run — no arbitrary shell
commands. Host key verification (anti man-in-the-middle) is not implemented yet, so only
point this at a VPS you control and trust.
🌍 日本語と英語をデフォルトとして選択できますが、世界中の言語も選択可能です。
English and Japanese are the defaults, but you can choose languages from all over the world.
🔒 Checking… / 確認中…
open-english Phase 0
🔎 Google search boost: forced ON once your key is set up / Google検索で補強: キー設定後は常時ON
Easy setup for aruaru-llm / aruaru-llmの簡単セットアップ
✅ Already installed and connected — you don't need to do anything below.
aruaru-llm is running and this app is talking to it right now.
✅ 既にインストール・接続済みです——以下の手順を行う必要はありません。
aruaru-llmは起動中で、このアプリは現在それと通信できています。
⚠ aruaru-llm alone is weak (2026-09-01) / aruaru-llm単体では
機能が弱いです: aruaru-llm on its own is a small model
(GPT-2 124M–1.5B class) with no GPU acceleration and no
cache-optimization support wired in. To get its full capability,
install it together with open-cuda + open-cpu
(and, on Windows, optionally open-directx's Vulkan/DirectX 12 path
inside open-cuda). Use the "GPU SET" checkbox in
aruaru-llm-installer.exe (Windows) to bundle these —
it's the same installer linked below, just tick the box during
setup.
aruaru-llm単体では、GPU加速もキャッシュ最適化も一切配線されていない
小型モデル(GPT-2 124M〜1.5Bクラス)のままです。本来の力を発揮
させるには、open-cuda・open-cpuと一緒にセットアップ
してください(Windowsではopen-cuda内蔵のVulkan/DirectX 12経路も
任意で追加できます)。下記のaruaru-llm-installer.exeで
インストール中に「GPU SET」にチェックを入れるだけで、同じ
インストーラーからまとめて導入できます。
What's already built-in vs. optional (be precise) /
既に組み込み済みのもの・任意で追加するものの区別:
• open-cpu (CPU SIMD detection: AVX2/AVX-512/FMA3
etc.) is already compiled into every aruaru-llm build and
runs automatically — there is nothing extra to install for this
part. It only reports/uses the CPU instruction sets your machine
actually has; it cannot invent hardware you don't have. open-cpu(AVX2/AVX-512/FMA3等のCPU SIMD検出)は
aruaru-llmの全ビルドに既に組み込み済みで自動的に動作します
——この部分だけを別途セットアップする必要はありません。あくまで
実際にお使いのマシンが持つ命令セットを検出・利用するだけで、
搭載されていないハードウェアを作り出すことはできません。
• Toshiba's SBM (simulated bifurcation, quantum-inspired
optimization) is already wired in for one concrete task —
choosing which model sizes to keep cached on disk under a storage
budget (POST /v1/models/optimize-cache). It is a
real, working combinatorial optimizer for that one job, not a
general-purpose accelerator for every AI computation.
東芝のSBM(シミュレーテッド分岐、擬似量子最適化)は、ディスク容量
予算内でどのモデルサイズをキャッシュに残すか選ぶ処理
(POST /v1/models/optimize-cache)という具体的な
1タスクに既に組み込み済みです。この1タスクに対しては実際に
動作する組合せ最適化エンジンですが、あらゆるAI計算を汎用的に
高速化する仕組みではありません。
• Update (2026-09-01): We researched "DeepSeek's
folding theory" in Japanese and English across Google/GitHub and
found that no such DeepSeek-specific technique actually
exists (DeepSeek's real efficiency techniques are MLA, FP8
mixed precision, and DeepSeekMoE — none of them called
"folding"). The likely source of confusion is the unrelated
ICLR 2025 paper "Model Folding" (arXiv:2502.10216), which uses
neuron-level k-means clustering — too heavy to faithfully
reproduce with this engine's design. Instead we implemented a
simpler, real, peer-reviewed alternative: layer-level Block
Influence redundancy detection and actual layer removal
(ShortGPT, arXiv:2403.03853 / Gromov et al., arXiv:2403.17887).
POST /v1/models/layer-redundancy (read-only preview)
and POST /v1/models/fold-layers (actually removes
redundant layers and swaps the live model, returning a
before/after generation sample so you can judge quality
yourself) are real, working, and verified end-to-end with real
GPT-2 weights — a conservative threshold removed only the one
near-identity layer with generation output unchanged; an
aggressive threshold visibly degraded quality, exactly as
honestly disclosed. Further update (same day): after that honest
result, we improved the removal algorithm itself
(Gromov et al., arXiv:2403.17887, contiguous-block search — pass
num_layers_to_remove instead of a threshold). Real
measurement on distilgpt2 (6 layers): removing 1 or 2 layers via
block search kept output grammatical and on-topic
(block_similarity≈0.95–0.98); removing 5 of 6
layers still broke down (block_similarity≈0.82) —
this is a fundamental limit (that budget genuinely lacks enough
redundancy), not a bug the algorithm could fix. The response now
includes a quality_hint computed from
block_similaritybefore you commit, so you
can judge risk in advance. Quality is still never guaranteed —
always compare the before/after sample. Yet another update (same day, in response to being asked
to improve the extreme case again): instead of deleting
the removed block outright, pass
use_linear_adapter: true to replace it with a
lightweight linear layer fit via closed-form ridge regression
(no gradient descent — inspired by SHIFT-LLM/SlimLLM-style
techniques, arXiv:2608.25068 / arXiv:2505.22689; these are very
recent papers and this is our own simplified implementation, not
a faithful reproduction). Real measurement at the same extreme
budget (removing 5 of 6 layers on distilgpt2): plain deletion
collapsed into a repeated-token loop
("Theodoreodoreodoreodore..."); the linear adapter avoided that
total collapse and produced real English words instead
("I slowly, it the rainforest in a few one way..."). Be
precise about what this is: it is a genuine, measured
improvement — but not a full fix. The adapter's output still
isn't grammatically coherent text, more of a word salad. Quality
is still never guaranteed. Follow-up (2026-09-01, "genuinely skip attention"
path): the adapter layer used to zero out the attention
sub-layer's output while still running the math. We
added a fast path in open-cuda-llm's
DecoderLayer that skips the folded block's attention
entirely at inference (QKV projection, softmax, P·V, KV-cache
push). It is bit-for-bit identical numerically (not a single
generated token changes) but the removed block's attention
compute cost is now genuinely eliminated. The response reports
this via attention_compute_skipped. 更新(2026-09-01):「DeepSeekの折りたたみ理論」を
日英でGoogle/GitHub調査した結果、そのような技術は実在しない
と判明しました(DeepSeekの実際の効率化技術はMLA・FP8混合精度・
DeepSeekMoEであり、いずれも「折りたたみ」ではありません)。混同の
元と考えられるのは無関係のICLR 2025論文「Model Folding」
(arXiv:2502.10216)——ニューロン単位k-meansクラスタリングを要する
高度な手法で、このエンジンの設計上忠実な再現は困難でした。
代わりに、より単純で実在する査読済みの代替手法——層単位の
Block Influence冗長性検出+実際の層除去(ShortGPT論文
arXiv:2403.03853 / Gromov et al. arXiv:2403.17887)——を実装
しました。POST /v1/models/layer-redundancy(読み取り
専用の下調べ)・POST /v1/models/fold-layers(実際に
冗長な層を除去し稼働中のモデルを差し替え、折りたたみ前後の生成
結果を返すので自分の目で品質を判断できる)は、実GPT-2重みで
実際にHTTP検証済みです——保守的な閾値では恒等写像に近い1層のみを
除去し生成結果は実質変化なし、積極的な閾値では開示通り明確に
品質が劣化することを実証しました。 さらに追記(同日):この結果を受け、除去
アルゴリズム自体を改良しました(Gromov et al.、
arXiv:2403.17887方式の連続ブロック探索——閾値の代わりに
num_layers_to_removeを指定)。実測(distilgpt2、
6層): 1〜2層をブロック探索で除去した場合、出力は文法的にも
話題的にも維持されました(block_similarity≈
0.95〜0.98)。一方6層中5層を除去した場合は依然として破綻しました
(block_similarity≈0.82)——これはアルゴリズムの
不具合ではなく、その予算にはそもそも維持できるだけの冗長性が
実在しないという根本的な限界です。レスポンスには
block_similarityから算出したquality_hint
を実行前に含めるようにしたので、事前にリスクを判断
できます。品質は依然として保証されません——必ず前後の生成
サンプルを見比べてください。 さらに追記(同日、「極端なケースをもう一度改善して」との
依頼への対応):除去したブロックを跡形もなく削除する
代わりに、use_linear_adapter: trueを指定すると、
最小二乗法(閉形式のリッジ回帰、勾配降下法は使わない)でフィット
した軽量な線形層へ置換します(SHIFT-LLM/SlimLLM着想、
arXiv:2608.25068/arXiv:2505.22689——これらは非常に新しい論文で
あり、本実装は再現実装ではなく独自の簡略版です)。同じ極端な予算
(distilgpt2で6層中5層除去)での実測: 跡形もなく削除する旧方式は
完全な劣化ループに陥りました("Theodoreodoreodoreodore...")が、
線形アダプタ版は劣化ループを回避し実在の英単語を使った出力を
生成しました("I slowly, it the rainforest in a few one
way...")。正確に言うと: これは実測できる本物の
改善ですが、完全な修正ではありません——アダプタ版の出力も
文法的に一貫した文章にはならず、単語の羅列に近いままです。
品質は依然として保証されません。 さらに追記(2026-09-01、「Attentionを実際にスキップ
する軽量パス」の実装):線形アダプタ層は従来、
Attentionサブ層の出力をゼロで捨てるだけで演算自体は実行して
いました。今回open-cuda-llmのDecoderLayer
に、折りたたんだ層のAttention(QKV射影・softmax・P·V・
KVキャッシュ)を推論時に丸ごとスキップする
軽量パスを追加しました。数値的にはビット単位で等価(生成結果は
1トークンも変わらない)でありながら、除去したブロックぶんの
Attention計算コストが実際に削減されます。レスポンスの
attention_compute_skippedフィールドで確認できます。
• open-directx as a standalone repository
(aon-co-jp/open-directx) is unrelated to aruaru-llm —
the DirectX 12 path aruaru-llm can use is a different, same-named
component built into open-cuda itself
(opencuda-directx). We mention this only to avoid
confusion, not to claim a connection that doesn't exist.
独立リポジトリとしてのopen-directx本体は、
aruaru-llmとは無関係です——aruaru-llmが使えるDirectX 12経路は、
open-cuda自身に内蔵された同名の別コンポーネント
(opencuda-directx)です。混同を避けるための注記で
あり、実在しない連携を主張するものではありません。
Honest disclosure (updated 2026-08-17): A prebuilt
binary download is now available below (no Git/Rust/terminal script
required — see "Recommended" section) — this replaces the previous
"no one-click download yet" state. The build-from-source path further
below is now the advanced/developer option; that path still requires
Git and the Rust toolchain
(rustup.rs)
and real, non-optional cross-repo path dependencies (open-cuda,
RPoem, open-web-server, RS-SmartTCP
cloned as siblings) — none of which are needed for the prebuilt
download.
正直な開示(2026-08-17更新): 以下に実行ファイル配布(Git/Rust/
ターミナルスクリプト不要)を追加しました——「以前はワンクリック
配布が無かった」状態は解消済みです。さらに下のソースビルド手順は
上級者・開発者向けの選択肢として残しています(GitとRust
ツールチェーン、open-cuda・RPoem・
open-web-server・RS-SmartTCPを同階層に
クローンする必要があります)——実行ファイル配布ではこれらは
一切不要です。
🧬 Model Folding — try it from here / ここからModel Foldingを試す
Calls POST /v1/models/fold-layers on the aruaru-llm
server configured above (see "aruaru-llm server URL" field).
This actually removes redundant layers from the currently active
model — read the disclosures above first. Leave "layers to remove"
empty to use the conservative threshold mode instead.
上のaruaru-llmサーバーURL欄に設定された接続先へ実際に
POST /v1/models/fold-layersを呼びます。現在アクティブな
モデルの層を実際に除去します——事前に上の開示文をお読みください。
「除去する層数」を空欄にすると保守的な閾値方式で実行します。
✅ Recommended: prebuilt download (no build, no terminal script to type) /
推奨: ビルド不要の実行ファイル配布(ターミナルへコマンドを打つ必要なし)
This is the same download used by the Windows installer's "install
aruaru-llm too" option (2026-08-10, see CLAUDE.md) — a ready-to-run
binary from GitHub Releases. The path dependencies on open-cuda/RPoem/
open-web-server/RS-SmartTCP mentioned below are only needed to
build from source; they are already compiled into
this prebuilt binary and do not need to be cloned separately.
Download, unzip, and run — no git/cargo
needed on this path.
Windowsインストーラーの「aruaru-llmも同時インストール」オプション
(2026-08-10、CLAUDE.md参照)と同じダウンロード元です——GitHub
Releasesのビルド済み実行ファイルです。下記の
open-cuda/RPoem/open-web-server/RS-SmartTCPへの依存はソースから
ビルドする場合のみ必要で、この実行ファイルには既に組み込み済み
のため別途クローンする必要はありません。ダウンロード→展開→
実行するだけで、git・cargoは不要です。
macOS: no prebuilt binary is published yet (honest disclosure) — use
the build-from-source instructions below.
macOS: ビルド済み配布は未公開です(正直な開示)——下記のソース
ビルド手順をご利用ください。
Advanced: build from source (developers) / 上級者向け: ソースからビルド
Run this in a normal PowerShell window (not as Administrator, not in
C:\Windows\System32 — that folder is protected and will
fail with "Permission denied"). It clones into your user folder.
通常のPowerShell(管理者権限なし、C:\Windows\System32では
「Permission denied」になります)で実行してください。ユーザー
フォルダ内にクローンされます。
One line, paste once and press Enter — no need to copy/paste line by
line. 1行だけです。1行ずつコピー&ペーストする必要はありません。
cd $env:USERPROFILE; git clone https://github.com/aon-co-jp/open-cuda; git clone https://github.com/aon-co-jp/RS-SmartTCP; git clone https://github.com/aon-co-jp/open-web-server; git clone https://github.com/aon-co-jp/RPoem; git clone https://github.com/aon-co-jp/aruaru-llm; cd aruaru-llm; cargo run --release
Linux / macOS (bash), one line / Linux・macOS(bash)、1行:
cd ~ && git clone https://github.com/aon-co-jp/open-cuda && git clone https://github.com/aon-co-jp/RS-SmartTCP && git clone https://github.com/aon-co-jp/open-web-server && git clone https://github.com/aon-co-jp/RPoem && git clone https://github.com/aon-co-jp/aruaru-llm && cd aruaru-llm && cargo run --release
(Same commands, shown one per line for readability only — copying the one-liner above is
all you need.)
(同じ内容を読みやすく1行ずつ表示しているだけです——実行には上の1行版をコピーすれば
十分です。)
cd $env:USERPROFILE
git clone https://github.com/aon-co-jp/open-cuda
git clone https://github.com/aon-co-jp/RS-SmartTCP
git clone https://github.com/aon-co-jp/open-web-server
git clone https://github.com/aon-co-jp/RPoem
git clone https://github.com/aon-co-jp/aruaru-llm
cd aruaru-llm
cargo run --release
Linux / macOS (bash):
cd ~
git clone https://github.com/aon-co-jp/open-cuda
git clone https://github.com/aon-co-jp/RS-SmartTCP
git clone https://github.com/aon-co-jp/open-web-server
git clone https://github.com/aon-co-jp/RPoem
git clone https://github.com/aon-co-jp/aruaru-llm
cd aruaru-llm
cargo run --release
Once it's running, this page will show aruaru-llm: connected
at the bottom automatically (checked via /healthz).
起動すると、このページ下部の表示が自動でaruaru-llm: connected
になります(/healthzで確認)。
📚 Custom Q&A / カスタムQ&A
Honest disclosure: The built-in AI (small GPT-2) often gives weak answers to
specific real-world questions (e.g. tax policy). Here you can register your own
"for this kind of question, this answer is best" pairs. When your message matches all of a
pair's keywords, that saved answer is used directly — the AI is not called for that message. This
is entirely stored in your browser (and this app's local database) — it never leaves your
device.
Honest disclosure: The English/Chinese versions are machine-translated
(free MyMemory Translation API, no quality guarantee) at the moment you click Add — not by the
built-in AI. Review the translations before relying on them for anything important. 正直な開示: 英語・中国語版は「追加」クリック時に無料の機械翻訳(MyMemory
Translation API、品質保証なし)で自動生成されます——内蔵AIによる翻訳ではありません。重要な用途では
翻訳結果をご自身でご確認ください。
Google Search Setup / Google検索の設定
✅ Update: no setup is needed for search anymore. Web search now
uses aruaru-search
first — our own meta-search: free, unlimited, and it needs no API key.
The Google key below is now an optional backup only (its free tier is
100 queries/day, and Google is retiring the Custom Search API by 2027-01-01).
Honest disclosure: This uses the Google Custom Search JSON API.
You need your own API key and Search Engine ID (cx) — this app does not include or
acquire one for you.
正直な開示: Google Custom Search JSON APIを使用します。
APIキーと検索エンジンID(cx)はご自身で取得してください——このアプリは
キーを同梱・取得代行しません。
Browser (shared-server) version: If you are using this app in a web
browser via a shared/rental server (e.g. easy-web.tokyo), please set up your own
Google Search API key and Search Engine ID (cx) below. Your key is saved only in
this browser's local storage and sent only with your own search requests —
it is never uploaded to the server as a shared setting. If the developer has configured
their own key on this server for other purposes, your requests using your own key here
will not use or consume the developer's key/quota, and vice versa.
Programmable Search Engine
— create a search engine (site: example.com then enable
"Search the entire web"), copy the Search engine ID (cx).
検索エンジンを作成し(サイトにexample.com等を入れてから
「全ウェブを検索」をON)、検索エンジンID(cx)をコピー。
Google Cloud Console
— enable "Custom Search API", then create an API key under
"APIs & Services → Credentials" (free up to 100 queries/day, no billing
required for the free tier).
「Custom Search API」を有効化し、「認証情報」からAPIキーを作成
(1日100件まで無料、無料枠の範囲では課金設定不要)。
🔒 Added 2026-08-27: you can also hand over this key more safely.
Instead of typing it into the form below and saving it to the browser, you can
now choose to ① read it from a local file each time (never saved, safest), or
② encrypt it with a passphrase before saving (same mechanism as the GitHub
integration's token, see the 2026-08-27 entry in CLAUDE.md for details).
If you had previously saved a key in plain text before 2026-08-27, we
recommend regenerating it in the Google Cloud Console (and deleting the old
one) as a precaution, since it was stored in plain text in this
browser for a while.
🧪 Experimental (added 2026-08-27): Same mechanism as the GitHub
token. Storing/decrypting the API key + cx, and the actual call to the Google Custom
Search API, all happen inside the vault.html iframe — this page's own JS
only ever receives the search results (titles/snippets/URLs, not
personal data), never the API key itself. Same honest limitation: real isolation
requires serving vault.html from a different origin.
簡単な方法(推奨) / Easy way (recommended):
JSONファイルの作成が難しい場合は、代わりに普通のテキストファイル
(メモ帳・Visual Studio Codeなど何で作成しても構いません)2つを
ご用意ください。1つ目にAPIキーだけを1行、2つ目に
検索エンジンID(cx)だけを1行書いて保存するだけです
(ファイル名の例: google-key.txt=APIキー、
google-id.txt=検索エンジンID)。ファイル名は自由です——
下のボタンでどちらの内容かご自身で選んで読み込みます。文字コードは
UTF-8(BOM有無いずれも)・UTF-16(メモ帳の「Unicode」保存)・
Windows従来のANSI(Shift_JIS)のいずれでも自動判定して読み込みます
ので、メモ帳・VS Codeどちらの既定設定で保存しても大丈夫です。 Easy way (recommended): If creating a JSON file is
difficult, just prepare two plain text files instead —
made with Notepad, Visual Studio Code, or any text editor. Put only
your API key in the first one, and only your
Search Engine ID (cx) in the second one (example file
names: google-key.txt for the API key,
google-id.txt for the Search Engine ID). The file names
themselves don't matter — you choose which is which with the buttons
below. Any of UTF-8 (with or without BOM), UTF-16 (Notepad's
"Unicode"), or Windows' traditional ANSI (Shift_JIS) encoding is
auto-detected and read correctly, so either editor's default
save settings will work.
上級者向け / Advanced:{"api_key": "...", "cx": "..."}という内容のJSONファイルを
あらかじめ用意しておき、ここで選択することもできます(保存されません)。
You can also prepare a JSON file with {"api_key": "...", "cx": "..."}
and select it here instead (never saved).
AI Provider Priority / AIプロバイダの優先順位
Honest disclosure: Google Search, ChatGPT, DeepSeek, Gemini, and Claude
each require your own API key (this app does not include or acquire one for you — see
the "Setup Google Search" panel and provider free-tier banner above). This panel lets you
enable "use free tiers in order, one after another" — when checked, this app tries each
configured provider in the order below and automatically moves to the next one if a
provider fails (e.g. its free quota is used up). Whether a failure really means "quota
exhausted" cannot always be detected precisely — this just retries the next provider on
any failure.
Set the order either by typing a number (1–5) or clicking a numbered radio button.
Duplicates are resolved by swapping.
番号を入力するか、番号のラジオボタンをクリックして順番を指定できます。
重複した場合は入れ替えで解決します。
Search Augmentation / 検索連携
Honest disclosure: When checked, this app searches the chosen service
for your message and inserts the top results as context before asking the AI to reply —
the AI's answer may then reflect what the search found (it does not guarantee accuracy).
GitHub search works without a token (rate-limited); a Personal Access Token raises the
rate limit. YouTube search requires your own YouTube Data API v3 key.
正直な開示: チェックすると、選んだサービスであなたの発話内容を検索し、
上位結果をAIへの依頼文の前にコンテキストとして挿入します——AIの回答はその検索結果を
踏まえたものになる可能性があります(正確性は保証されません)。GitHub検索はトークン
無しでも動作します(レート制限あり、Personal Access Tokenで緩和可)。YouTube検索には
ご自身のYouTube Data API v3のAPIキーが必要です。
API Keys / APIキー
Saved only in this browser's local storage and sent to your own aruaru-llm instance
as runtime settings (memory only, never written to disk there either).
このブラウザのローカルストレージにのみ保存され、ご自身のaruaru-llmへ実行時設定
として送られます(aruaru-llm側もメモリ上保持のみ、ディスクへは保存しません)。
🔒 Added 2026-08-27, honest disclosure: these keys are not covered by the
encrypted-storage option. Unlike the GitHub token in the Freelance Dev Corner or
the Google Search key, these API keys are always sent in plain text to your own
aruaru-llm server by design (the server uses them to call ChatGPT/DeepSeek/Gemini/
Claude on your behalf). Encrypting the browser-side copy wouldn't meaningfully help, since
the server still receives and holds them in plain text — so we haven't added that here.
We recommend: only configure these on a server you trust,
use keys scoped with spend limits where the provider supports it, and
rotate keys periodically.
Recommend an LLM / おすすめLLM
🔄 Another visitor is switching the shared LLM right now — please wait a moment. 他の利用者がLLMを変更中です。しばらくお待ちください。
This demo shares one LLM instance with all visitors. You can switch to a smaller/lighter
model already installed on the server if it feels slow, but new downloads are
administrator-only. / このデモは全利用者で1つのLLMを共有しています。動作が重いと感じたら
サーバーに既にインストール済みの、より軽いモデルへ切り替えられます(新規ダウンロードは
管理者のみ可能です)。
Honest disclosure: This reads your GPU VRAM/CPU/system-memory/NPU
detection results from aruaru-llm (GET /v1/recommend) and
picks a size heuristically (VRAM < 2GB → 124M, 2-4GB → 355M, 4-8GB → 774M,
8GB+ → 1.5B). It is a rough parameter-count-vs-VRAM estimate, not a precise
benchmark.
正直な開示:aruaru-llmの
GET /v1/recommendが返すGPU VRAM/CPU/システムメモリ/NPU検出結果を元に、
簡易ヒューリスティック(VRAM 2GB未満→124M、2-4GB→355M、4-8GB→774M、8GB以上→1.5B)で
サイズを選びます。パラメータ数とVRAM容量の大まかな見積もりであり、精密な
ベンチマークではありません。
Click below to detect your hardware and compare LLM options. /
下のボタンでハードウェアを検出し、LLMの選択肢を比較します。
Honest disclosure: This is shared infrastructure — install it
once per machine/server (not once per app). It is managed by
open-easy-web's multi-tenant ("shadow clone") design, so once it's running,
other apps/domains on the same machine can reuse it without reinstalling. This app
(open-english) works fine without it (the geography/travel content falls
back to a built-in dataset).
Recommended full setup (usage bundle, not a technical
merger) / 推奨のフルセットアップ(利用上のまとめであり、技術的な
統合ではありません): open-english is designed to be used
together with open-cuda + open-cpu (aruaru-llm's inference base),
aruaru-db + PostgreSQL (this panel, for conversation-history/data
storage), and open-easy-web for management on
both your PC and the Web (install/run it on your
own machine to manage local apps, and again on a VPS/server to
manage web-facing ones). open-directx is honest-
disclosed above as a standalone repository unrelated to
aruaru-llm — only open-cuda's internal Vulkan/DirectX 12 GPU
path (bundled via the "GPU SET" checkbox) is actually part of
this stack; installing the separate open-directx repo has no
effect on open-english. None of these pieces are required —
open-english works standalone with a built-in dataset fallback —
this is simply the recommended bundle if you want the fuller
feature set.
Honest disclosure: GPT-2-family model weights and the embedding model are
not bundled with this app (size/licensing) — you download them once via
"🧠 Recommend LLM" (PC/browser) or the in-app "Download model" button (Android), and they are
stored locally on this device. This panel lets you see/back up your local conversation
history & settings database (aruaru-llm's own model files are managed by
aruaru-llm itself, not by this panel).
Move the local database file to another folder (e.g. a microSD card or external drive).
データベースファイルを別のフォルダ(microSDや外部ドライブなど)へ移動します。
Backup via RSync / RSyncで同期バックアップ
Local path or user@host:/path. Use "Browse…" for a local folder — remote
user@host:/path destinations must still be typed by hand (there is no way to
browse another machine's filesystem from here).
ローカルパス、またはuser@host:/pathを指定してください。「参照…」はローカルの
フォルダ選択用です——リモートのuser@host:/pathは他のマシンのファイル
システムのため、引き続き手入力が必要です。
Backup conversation DB + aruaru-db/PostgreSQL together / 会話履歴DBとaruaru-db/PostgreSQLを同時にバックアップ
Enter one destination and both the local conversation DB and (if
OPEN_ENGLISH_DATABASE_URL is configured) the aruaru-db/PostgreSQL
mirror are backed up in a single click. The aruaru-db side is exported with
pg_dump (a consistent snapshot dump) rather than copying its live data files
directly, to avoid corrupting a database engine that may still be writing.
宛先を1つ入力するだけで、会話履歴のローカルDBと(OPEN_ENGLISH_DATABASE_URLが
設定されていれば)aruaru-db/PostgreSQLミラーの両方を1回でバックアップします。
aruaru-db側は稼働中のデータファイルを直接コピーすると破損リスクがあるため、
pg_dump(一貫性のあるスナップショットダンプ)経由で書き出します。
🔄 Updates & Rollback / アップデート・ロールバック
Honest disclosure: Only the last few versions actually installed on
this machine via the automatic updater are kept (3 generations by default, to
avoid using unbounded disk space) — you can only roll back to a version that is still
listed below, not to an arbitrary older release. Rolling back open-english
itself briefly restarts the server (this page will disconnect for a few seconds).
Honest disclosure: This page runs in your normal web browser, which is
sandboxed for security. It cannot reach an arbitrary local drive on its
own, and it cannot launch a separate desktop application (such as Claude
Code Desktop) for you. What it can do: let you explicitly pick files/folders via
your browser's own file/folder picker (upload), let you save files back to your device
(download), and show you a shortcut to the AI tool of your choice so you can open/install
it yourself. Folder selection uses the File System Access API, which currently only works
in Chromium-based browsers (Chrome / Edge / Opera, etc.) — Firefox and Safari are not
supported and will show a fallback message below.
Pick one or more files from your device. They stay in this browser tab's memory only —
nothing is uploaded to any server unless a feature explicitly says so.
端末からファイルを1つ以上選択してください。選んだファイルはこのブラウザタブの
メモリ上に保持されるのみで、明示されない限りどこかのサーバーへ送信されることは
ありません。
No files selected. / ファイル未選択です。
📁 Select a local folder / ローカルフォルダを選択
Uses showDirectoryPicker() — a real GUI folder picker where you can browse
into any drive/folder you have access to and select it. Chromium-based browsers only. showDirectoryPicker()を使用します——実際のGUIフォルダ選択ダイアログで、
アクセス権のある任意のドライブ・フォルダを辿って選択できます。Chromium系ブラウザのみ
対応です。
⬇ Download / ダウンロード
Save the files you uploaded above back to your device (a round-trip demo of the browser's
standard download mechanism — not a way to fetch files from elsewhere).
上でアップロードしたファイルをこの端末へ保存し直します(ブラウザ標準のダウンロード
機構の往復デモです——他の場所からファイルを取得する機能ではありません)。
🧠 Choose an AI coding tool / AIツールを選択
Selecting a tool here only shows you a link to its official site/download page — this
page cannot launch a desktop app such as Claude Code Desktop for you (browser security).
You install/open it yourself.
ここでツールを選ぶと、公式サイト・ダウンロードページへの案内リンクが表示されるだけです
——Claude Code Desktopのようなデスクトップアプリをこのページから起動することは
できません(ブラウザのセキュリティ制約)。インストール・起動はご自身で行ってください。
📐 open-cg-cad Drawing Ops / 図面操作(UPLOAD・合成・再設計)
Honest disclosure: These buttons call open-cg-cad's own API directly from
this page (/v1/drawings/upload, /v1/drawings/merge,
/v1/drawings/redesign) — open-english's own chat AI (a base GPT-2) is not used
to interpret your instructions, since it cannot reliably follow free-text instructions. All
drawing storage and AI-generated proposals happen on open-cg-cad, not here.
Merge/redesign proposals are generated by open-cg-cad calling your own
aruaru-llm (default: http://localhost:4600, the same one this chat uses).
Leave blank to use open-cg-cad's default.
合成・再設計の提案文は、open-cg-cadがあなた自身のaruaru-llm(既定:
http://localhost:4600、このチャットが使うものと同じ)を呼んで生成します。
空欄のままなら open-cg-cad側の既定値を使います。
🔐 Push a drawing to GitHub (via vault) / GitHubへ図面をpush(vault経由)
Honest disclosure: Your GitHub token is decrypted and used only inside
an embedded vault.html iframe (same isolation design as the freelance corner's
GitHub push feature) — it never touches this page's (index.html) own JavaScript. The vault
sends the token to open-cg-cad's own server
(POST /v1/agent/github/commit), which uses it once to call the GitHub API and
does not persist it to disk. See vault.html
and CLAUDE.md (2026-08-27) for details. For real isolation benefit, serve vault.html from a
different origin than this page — see the note in the section above.
Honest disclosure: this corner opens Google search results in a
new tab and lets you carry your chosen language/framework/job listing into
a lesson with the AI teacher. It does not call any job-board API or scrape listings (search
results are Google's own results page, for you to read yourself, out of respect for site
terms of service and rate limits). Authenticated auto-push to GitHub and automatic
VPS read/write (see the "🔌 Auto read/write setup status" panel above) are implemented.
Auto-push to other services like GitLab, and database logging of your progress, are still
not implemented — see CLAUDE.md for details.
1. 産業・カテゴリ、言語・フレームワークを選ぶ / Pick an industry, language & framework
一覧に無い産業・カテゴリは自由入力し「+ このカテゴリを追加」を押すと、以後この端末の一覧に
追加されます(誤字と思われる場合は近い候補を提案します)。
Type any industry/category not in the list and press "+ Add this category" to add it to this
device's list going forward (we'll suggest a close match if it looks like a typo).
2. 言語・フレームワークを選ぶ / Pick a language & framework
3. 公式サイト・GitHub・ブログを検索 / Search official site, GitHub, blog
選んだ言語・フレームワークの公式サイト・GitHub・ブログ記事をGoogle検索で調べ、
AI先生への相談時に参考にできます。
Search for the official site, GitHub, and blog posts for your chosen language/framework —
useful context to bring into a lesson with the AI teacher.
4. フリーランス案件・IT求人を検索 / Search freelance & IT job listings
ここに表示される案件は、まずaruaru-search(自前検索エンジン・無制限・APIキー不要)
による予測検索を使い、それが使えない場合のみ、以前セットアップ済みのご自身のGoogle検索APIキー
(無料枠のみ)を予備として使います。あるいは、有料のClaude(このアプリ自身の開発にも
使われているAI開発ツール)へのお申込みをご検討下さいませ——いずれの場合も、案件を
見つけた後は一緒に相談しながら開発を進めます。
Listings shown here are first found via aruaru-search (our self-hosted search engine
— unlimited, no API key needed) as a predictive search; only if that's unavailable do
we fall back to your own previously-configured Google Search API key (free tier only). Or,
please consider subscribing to paid Claude (the AI development tool this app itself is
built with) — either way, once you find a listing you like, we'll work through the
development together.
検索結果ページで気になった案件があれば、URLやテキスト・画像を通常のブラウザ操作で
コピーし、下の「案件メモ」欄に貼り付けてください。
On the search results page, copy any listing's URL, text, or image using your browser's
normal copy function, and paste it into the "job notes" box below.
テキストファイルの内容は案件メモへ自動で追記されます。画像はブラウザ内OCR(Tesseract.js)で
文字起こしを試み、成功すれば認識テキストを案件メモへ追記します(誤読の可能性があります・
解像度や手書き文字によっては精度が低くなります)。OCRが使えない/失敗した場合は、その旨と
ファイル名のみを記録します(読めていないのに読めたふりはしません)。
Text file contents are appended to the job notes automatically. Images are run through
in-browser OCR (Tesseract.js); if it succeeds, the recognized text is appended (it may contain
misreads — accuracy depends on resolution and handwriting). If OCR is unavailable or fails, we
record that fact plus just the filename (we don't pretend to have read something we couldn't).
CAD関連フォーマット(DXF・SVG・OBJ・STL(ASCIIのみ)・STEP・IGES)はテキスト形式であれば
中身(座標・図形データ)をそのまま案件メモへ添付し、AI先生がテキストとして解釈します——
ただし専用のCAD解析AIではなく、生のジオメトリデータをテキストとして渡すだけなので、
複雑な図面の意味理解までは保証しません。DWGや、バイナリ形式のSTEP/STLは仕様が非公開/
複雑なためこのブラウザ単体では読み取れず、正直にファイル名のみ記録します——
本格的な図面解析には、このエコシステムの姉妹プロジェクト
open-cg-cad
(専用のCAD図面アップロード・合成・再設計機能)のご利用を推奨します。
CAD-related formats (DXF, SVG, OBJ, STL (ASCII only), STEP, IGES) are attached as raw text
(coordinates/geometry data) to the job notes when they're text-based, and the AI teacher reads
them as text — but it's not a dedicated CAD-understanding AI, so don't expect it to fully grasp
complex drawings. DWG and binary STEP/STL can't be read by this browser alone (proprietary/complex
binary formats), so we honestly record just the filename — for serious CAD drawing analysis, we
recommend the sister project
open-cg-cad
(dedicated CAD drawing upload/merge/redesign features).
5. サンプル案件から選ぶ / Or pick a sample listing
実際の案件が見つからない場合の練習用サンプルです(架空の案件、実在の求人ではありません)。
Practice samples for when you don't have a real listing handy (fictional, not real job posts).
6. AI先生に相談する / Consult the AI teacher
選んだ言語・フレームワーク・案件メモをAI先生への質問文に自動でまとめ、通常のチャットへ
送信します(このコーナー独自のAIモデルではなく、既存のAI先生機能をそのまま使います)。
Bundles your chosen language/framework/job notes into a question and sends it through the
normal chat (reuses the existing AI teacher — no separate model for this corner).
進捗の保存先(複数選択可) / Progress save destinations (choose any number)
「AI先生に相談」を押すたびに、選んだ産業・言語・フレームワーク・WEBサーバー・DATABASE・
案件メモをここで有効にした送信先へ記録します(1つ選んでも、複数同時に選んでも構いません。
1つが失敗しても他の送信先は続行します)。VPS・ローカルドライブへの実際の書き込みは
実装済みです(下のパスを指定してください)。aruaru-db・PostgreSQL・
Googleドライブは、設定の保存のみで実際の書き込み処理はまだ実装していません
(次の実装ステップ)。
Each time you click "Ask the AI teacher", your chosen industry/language/framework/web
server/database/job notes are recorded to whichever destinations you enable here (pick
one, or several at once — a failure in one doesn't stop the others). Actual writes
to VPS and local drive are implemented (specify a path below).
aruaru-db, PostgreSQL, and Google Drive currently only save the settings
themselves; the write logic isn't implemented yet (next step).
7. GitHubへの自動アップロード(2026-08-26新設) / Automatic upload to GitHub
💡 GitHub lets you create private repositories even on the free plan (no
limit on the number of private repos for free personal accounts, as of 2026-08). You can
start with a free private repository. Additionally, if you contract a VPS, we recommend
running open-easy-web under your own domain or a free dynamic DNS service
like DuckDNS, and using RS-Sync to keep backups synced
across multiple repository accounts (so a failure on a single GitHub account or a single
VPS doesn't leave you without a recovery path).
GitHubトークンはブラウザでは一切扱いません(2026-09-01、仕様変更):
トークンはこのサーバー(open-english-server)側でのみ保持され、
ブラウザには一度も送信されません。一番簡単な設定方法は——
サーバーの実行ファイルと同じフォルダにsecretsフォルダを作り、その中に
github-token.txtという名前でトークンを1行だけ書いたテキストファイルを
置くだけです(環境変数の名前を覚える必要はありません)。上級者向けの設定方法(環境変数)
をお使いになりたい場合は、下の「詳細設定(上級者向け)」を開いてください。以前あった
①ファイル選択・②暗号化・③平文保存・④vaultの4方式は、ブラウザに一切残さないという
方針を徹底するため廃止しました。 GitHub tokens are never handled by the browser anymore (2026-09-01, design
change): the token is held only on the server (open-english-server)
side and never reaches the browser. The simplest way to set it up:
create a secrets folder next to the server's executable, and place a text
file named github-token.txt in it, containing just the token on one line —
no environment variable names to remember. If you'd rather use environment variables
(advanced), open "Advanced settings" below. The previous four browser-side modes
(① file picker, ② passphrase encryption, ③ plain text, ④ vault) have been removed to fully
commit to keeping tokens out of the browser.
詳細設定(上級者向け) / Advanced settings
環境変数 OPEN_ENGLISH_GITHUB_TOKEN にトークン文字列を直接設定するか、
環境変数 OPEN_ENGLISH_GITHUB_TOKEN_FILE に任意の場所のトークンファイルの
パスを設定することもできます(いずれも上のsecrets/github-token.txtより
優先されます)。VPS連携も同様に、環境変数OPEN_ENGLISH_VPS_SSH_KEY_PATHで
サーバー上の秘密鍵ファイルのパスを指定する仕組みです。
You can also set the OPEN_ENGLISH_GITHUB_TOKEN environment variable to the
token string directly, or OPEN_ENGLISH_GITHUB_TOKEN_FILE to a custom path
(either takes priority over secrets/github-token.txt above). The VPS
integration works the same way via the OPEN_ENGLISH_VPS_SSH_KEY_PATH
environment variable, pointing to a private key file's path on the server.
8. 次のステップ(現時点の案内のみ) / Next steps (guidance only for now)
VPSへの自動読み書きは実装済みです(ページ上部の「🔌自動読み書きSETUP状況」
パネル参照)。ブラウザは生のSSHソケットを直接開けないため、GitHub連携(ブラウザから直接
APIを呼ぶ方式)とは異なる設計を採用しています——open-english-server自身が
SSH/SFTPクライアントとして動き、ブラウザはそのサーバーへHTTPで指示するだけです。
秘密鍵・接続先はサーバー起動時の環境変数で設定します(詳細は上部パネルの「詳細」ボタン
参照)。GitLab/Bitbucket等への同様の連携は、今回のGitHub連携と同じ設計(ブラウザから直接
そのサービスのAPIを呼ぶ)で次回以降に追加できます(未実装)。VPSレンタルサーバーの
比較・申込み自体はご自身の操作が必要です(決済・契約を伴うため自動化していません)。 Automatic VPS read/write is implemented (see the "🔌 Auto read/write setup
status" panel above). Since browsers cannot open a raw SSH socket, it uses a different
design than the GitHub integration (which calls that service's API directly from the
browser) — the open-english-server process itself acts as the SSH/SFTP client,
and the browser just tells it what to do over HTTP. The private key and target host are
configured via environment variables when the server starts (see the "Details" button in
the panel above). Similar integrations with GitLab/Bitbucket can be added later using the
same design as the GitHub integration (calling that service's API directly from the
browser) — not implemented yet. Signing up for a VPS itself still requires your own manual
steps (it involves payment and a contract, so it is not automated here).
📁 Choose a folder / フォルダを選択
Honest disclosure: This lists folders on this machine (where the
server is running) — it cannot browse another computer. For a remote
user@host:/path destination, type it in by hand instead. 正直な開示:これはこのサーバーが動いているマシン上のフォルダ
一覧です——他のPCの中は見られません。リモートのuser@host:/pathを指定
したい場合は、引き続き手入力してください。
/
Loading… / 読み込み中…
🔗 Icon & Custom URL / アイコン起動・独自URL
1. Launch from an icon / アイコンから起動
Windows/Linux/macOS installers already create a desktop shortcut/launcher that starts the
server and opens this page for you (see the "installer/" downloads on the project README).
On Android, install the app or add this page to your home screen (⋮ menu → "Add to Home
screen") for one-tap launch.
Windows/Linux/macOS版インストーラーには、サーバー起動+このページを開くデスクトップ
ショートカット/ランチャーが既に同梱されています(プロジェクトREADMEの「installer/」を
参照)。Androidではアプリをインストールするか、ブラウザのメニュー(⋮)→
「ホーム画面に追加」でワンタップ起動できます。
2. Bookmark this page's URL / このページのURLをお気に入りに登録
You can simply bookmark this page's current address in your browser
() — no extra setup is required for that.
ブラウザでこのページの現在のアドレス()を
そのままお気に入り/ブックマークに登録するだけで構いません——特別な設定は不要です。
3. Assign a memorable domain via DuckDNS (or any other) / DuckDNS等で覚えやすいドメインを割り当て
Honest disclosure: DuckDNS only points a domain name at your current IP
address. It does not open any router ports and does not by
itself make this server reachable from outside your home network — this server still binds to
127.0.0.1 only unless you explicitly set OPEN_ENGLISH_SERVER_BIND,
and real internet (WAN) access still requires you to set up port forwarding and TLS yourself
(e.g. via open-web-server
or open-easy-web).
We deliberately do not auto-configure port forwarding (UPnP), for the same "no stepping stone"
security reasons as world-lab. 正直な開示:DuckDNSはドメイン名を現在のIPアドレスへ結びつけるだけです。
ルーターのポートは開きませんし、それだけでは自宅ネットワーク外から
このサーバーへ到達できるようにもなりません——このサーバー自体も
OPEN_ENGLISH_SERVER_BINDを明示的に変更しない限り127.0.0.1限定の
ままで、実際にインターネット(WAN)から使うにはポートフォワーディングとTLSをご自身で
用意する必要があります(例:
open-web-serverや
open-easy-web)。
world-labと同じ「踏み台にならない」方針により、UPnP等での自動ポート開放はあえて実装して
いません。
Get a free domain first at duckdns.org
(sign in, add a subdomain, copy your token). Prefer a different dynamic DNS or your own
domain? Just point it at your IP yourself — this button is only a convenience for DuckDNS.
まずduckdns.org
で無料のサブドメインを取得してください(サインイン→サブドメイン追加→トークンをコピー)。
他の動的DNSや独自ドメインをお使いになりたい場合は、ご自身でIPへ割り当ててください——
このボタンはDuckDNS向けの簡易ヘルパーに過ぎません。
About DuckDNS's free-tier limits: A single DuckDNS account (one token) can
register up to 5 free subdomains (*.duckdns.org) from the
"domains" section of your account page. You can point multiple subdomains at the
same global IP address. If you're publishing several services from your
home server (e.g. Home Assistant, file sharing, and this app), combine this with a reverse
proxy (e.g. Nginx, or the bundled open-easy-web local mode described in step 4 below) to
route each subdomain to a different service. DuckDNSの無料枠について:DuckDNSは1つのアカウント(1つのトークン)につき、
アカウントページの「domains」セクションから最大5つまで無料のサブドメイン
(*.duckdns.org)を取得・登録できます。取得した複数のサブドメインには
同じグローバルIPアドレスを割り当てて管理することが可能です。ホーム
アシスタントやファイル共有、このアプリなど、自宅サーバーで複数のサービスを公開する場合は、
リバースプロキシ(Nginx、または下記ステップ4の同梱open-easy-webローカルモード等)を
組み合わせて、ドメインごとに異なるサービスへ振り分けてください。
4. Reach it under that domain via the bundled open-easy-web (Windows installer option) / 同梱のopen-easy-web(Windowsインストーラーの任意オプション)経由でそのドメインからアクセス
If you checked "Also install open-easy-web" during setup, this open-english server
automatically starts a lightweight local reverse proxy each time it launches — listening on
http://127.0.0.1:8090/ and forwarding everything to this server
(127.0.0.1:4601 by default). Point either a free DuckDNS subdomain (step 3
above) or a paid domain you own at your router's public IP address, then set up port
forwarding on your router so port 8090 (or whichever port you choose) reaches this PC.
セットアップ時に「open-easy-webも一緒にインストール」にチェックを入れていた場合、
このopen-englishサーバーは起動のたびに軽量なローカルリバースプロキシを自動起動します
——http://127.0.0.1:8090/で待ち受け、すべてこのサーバー(既定
127.0.0.1:4601)へ転送します。上記ステップ3の無料DuckDNSサブドメイン、
またはご自身が所有する有料ドメインのいずれかを、ルーターのグローバルIPアドレスへ
割り当てた上で、ルーター側でポート8090(または任意に変更したポート)がこのPCへ届くよう
ポートフォワーディング設定を行ってください。
Honest disclosure: This bundled proxy speaks plain HTTP only
— it does not perform TLS/HTTPS termination. If you need real HTTPS for the domain, put a
TLS-capable reverse proxy (e.g.
open-web-server,
which has ACME/Let's Encrypt support) in front of it instead, or in addition. As always, we
deliberately do not auto-configure router port forwarding (UPnP) — you need to do that
yourself. 正直な開示:この同梱プロキシは平文HTTPのみに対応して
おり、TLS/HTTPS終端は行いません。そのドメインで本物のHTTPSが必要な場合は、代わりに
(または追加で)TLS対応のリバースプロキシ(例: ACME/Let's Encrypt対応の
open-web-server)を
手前に置いてください。これまでと同様、ルーターのポートフォワーディング(UPnP等)を
自動設定することはあえて行っていません——ご自身で設定してください。
Tip: If you access this server from outside via your own domain (e.g. one
set up in step 3), the page will show the "please launch the PC version" banner by default
(since it can't tell your domain apart from a shared demo). To make it correctly show
"PC version running" instead, start this server with the
OPEN_ENGLISH_SELF_HOSTED_HOSTNAMES environment variable set to that domain
(comma-separated if you use more than one), e.g.
OPEN_ENGLISH_SELF_HOSTED_HOSTNAMES=open-english.duckdns.org. ヒント:ご自身のドメイン(上記ステップ3で設定したもの等)経由で外部から
このサーバーへアクセスした場合、既定では「PC版を起動してご利用下さい」という共有デモ向け
バナーが表示されます(このドメインが共有デモなのかご自身のPC版なのかを区別できないため)。
代わりに正しく「PC版起動中」と表示させたい場合は、このサーバーを起動する際に
OPEN_ENGLISH_SELF_HOSTED_HOSTNAMES環境変数へそのドメイン名を設定してください
(複数ある場合はカンマ区切り)。例:
OPEN_ENGLISH_SELF_HOSTED_HOSTNAMES=open-english.duckdns.org
world-lab (experimental) / world-lab(実験的機能)
Honest disclosure: world-lab lets you pool idle CPU/GPU/NPU capacity from
spare devices (old phones/tablets/PCs, connected via USB/Wi-Fi/Bluetooth/LAN) to run
computation inside a WASM sandbox — no reward, mutual aid only. Disabled by
default on the server (two separate opt-in flags,
OPEN_ENGLISH_WORLD_LAB_ENABLED and
OPEN_ENGLISH_WORLD_LAB_COMPUTE_ENABLED). This app never relays
traffic on your behalf — there is no code path that forwards network traffic for
anyone, which is a deliberate design choice to avoid ever becoming a Winny-style relay for
someone else's abuse. If this server has it disabled, everything below will show an error
saying so — that is expected, not a bug.
world-lab is about sharing idle hardware, not AI chat itself. For the AI backend this app
actually talks to, or for AI coding tool shortcuts (including Microsoft/GitHub Copilot),
use the panels below — they are not duplicated here.
world-labは遊休ハードウェアの共有機能であり、AIチャット機能そのものではありません。
このアプリが実際に話しかけるAIバックエンドの設定や、AIコーディングツールの案内
(Microsoft/GitHub Copilotを含む)は下のパネルをご利用ください(ここには複製して
いません)。
🔗 Pair a device / デバイスをペアリング
The pairing token is printed to this server's own startup log — it is never sent anywhere
automatically, and this page does not display it either (you must copy it from wherever
you started the server).
ペアリングトークンはこのサーバー自身の起動ログに表示されます——自動的にどこかへ送信
されることはなく、この画面にも表示しません(サーバーを起動した場所からコピーして
ください)。
Hardware this device claims to have (self-reported, not verified — see honest disclosure
above; actual compute tasks always run on CPU today).
このデバイスが備えると自己申告するハードウェア(検証はしていません——上の開示参照。
実際の計算タスクは現状すべてCPUで実行されます)。
🏢 Bulk pairing (offices, many PCs at once) / 一括ペアリング(オフィス等、多数のPCを一度に)
Paste one device name per line — they will all use the connection/type/capabilities
selected above. This is still an explicit, one-click action with the same token check per
device — not automatic discovery.
1行に1台ずつデバイス名を貼り付けてください——上で選んだ接続方式/種別/能力が全台へ
適用されます。これも「明示的な1回の操作+1台ごとの同じトークン確認」であり、
自動発見ではありません。
📋 Paired devices / ペアリング済みデバイス
—
⚗ Run a compute task (advanced) / 計算タスクを実行(上級者向け)
Honest disclosure: the guest module must export a linear memory named
memory and a function run(in_ptr, in_len, out_ptr, out_cap) ->
i32 — this is a deliberately minimal ABI, not a general-purpose WASI environment
(the module cannot access files/network/etc. — see the disclosure above). This is meant
for people who already know how to build such a .wasm file; there is no
code editor here. 正直な開示:ゲストモジュールは線形メモリmemoryと、
関数run(in_ptr, in_len, out_ptr, out_cap) -> i32をエクスポートしている
必要があります——意図的に最小限のABIであり、汎用的なWASI環境ではありません
(ファイル・ネットワーク等へは一切アクセスできません、上の開示参照)。既にそのような
.wasmファイルを作れる方向けの機能で、この画面にコードエディタはありません。
Certification Exam Prep / 資格試験対策コーナー
Honest disclosure: These are original practice questions written for
this app, not real past questions from Eiken (STEP), TOEIC, TOEFL, the Japanese Language
Proficiency Test (JLPT), or the
Nihongo
Kentei (日本語検定) — those are copyrighted and we do not reproduce them. Difficulty is
only a loose approximation of each real exam's level, not an official prediction.
Honest disclosure: every question here is an original practice
question written for this app. Nothing is copied from textbooks, workbooks, or real
entrance exams. The grade/subject split follows the usual Japanese school curriculum only as a
rough guide. Only some grade/subject combinations have questions so far; for the
rest the app honestly says "not ready yet" rather than pretending to be complete.
Before you start: we recommend setting up a learning-history database.
Set up either aruaru-db (see "🗄 Setup aruaru-db" above) or a
standard PostgreSQL server, and the course can keep a record of which grades and
subjects you studied, which questions you got right, and how your tests went — so you can look back
on what you have built up over time. Without it, scores are stored only in the
app's built-in local SQLite database (fine day to day, but it does not follow you to another device
or survive a reinstall), and your grade/subject choices live only in browser localStorage.
Either database works: point OPEN_ENGLISH_DATABASE_URL at a PostgreSQL connection
string — aruaru-db speaks the same PostgreSQL wire protocol. Honest caveats: the
server now supports TLS via tokio-postgres-rustls (updated 2026-08-24) — set
sslmode=require etc. in the connection string to reach managed PostgreSQL services that
require SSL (self-signed certificates need OPEN_ENGLISH_DB_TLS_INSECURE=1, which disables
certificate verification and should only be used on a trusted closed network). However, this
development machine has neither cargo/rustc nor psql nor Docker
installed, so neither the TLS path nor a plain PostgreSQL connection has actually been tested end to
end here — this remains a code-review-level check only. The client library itself
(tokio-postgres) is a generic PostgreSQL wire-protocol client, not specific to aruaru-db,
so compatibility with standard PostgreSQL mainly depends on aruaru-db's own pgwire implementation
rather than on this client.
For extra safety: a dual aruaru-db + PostgreSQL setup — now implemented. Running
both and keeping one as a copy of the other means a failure on one side does not lose your
learning history. Implementation status (updated 2026-08-24):
open-english now writes to two databases at once itself — the earlier note on this page
saying this was "not implemented yet" no longer applies.
How to set it up: just set two environment variables —
OPEN_ENGLISH_DATABASE_URL (the first target, typically aruaru-db) and
OPEN_ENGLISH_DATABASE_URL_SECONDARY (the second, typically a standard PostgreSQL). It does not
matter which one you assign to which, since both are treated as ordinary PostgreSQL connections.
Set both and every record is written to both; set one and only that one is
used; set neither and it falls back to the built-in SQLite as before. The two writes are
fully independent: if one database is down or unreachable, the write to the other still
completes and your session is never interrupted — only the failing side is noted in the server log. You can
check the current configuration via dual_mirror and mirror_targets in
GET /v1/db/info. Honest caveats: what is implemented is sending each write to
both targets. There is no self-healing catch-up that replays rows missed while one side was
down (you would restore from a backup instead). TLS support was added on 2026-08-24, but this
development machine has no cargo/psql/Docker available to test it end to end (see the section above).
Backups (rsync): the learning-history
database can be added to an rsync backup to an external drive, another PC, or a VPS from the
"💾 Data & Model Storage" panel (it is not backed up automatically). General rsync usage — commands,
syncing to Google Drive with rclone, syncing to shared hosting or a VPS, scheduling and restoring — is
documented on its own page:
https://easy-web.tokyo/rsync
(honest caveat: that is a usage guide for rsync; it does not mean
open-easy-web contains an rsync synchronisation mechanism).
You can also sync to Google Drive, shared hosting, or a VPS (with a little setup). After the
rsync backup has written to a local folder, rclone can sync that folder to Google Drive. Any host you can reach over SSH —
shared hosting plans with SSH access, or a VPS — works directly with rsync.
The actual commands, rclone configuration, SSH key setup, scheduling with cron or Task Scheduler, and
how to restore are all documented on a dedicated guide page:
https://easy-web.tokyo/rsync Honest caveat: open-english has no Google Drive integration —
nothing is synced to Google Drive or a VPS automatically, and you configure the destination
and SSH keys yourself. What we provide is the general procedure you can choose to follow.
本機能をより快適にご利用いただくには、Google検索(上部の「🔎 Setup Google Search」)と
aruaru-db(学習履歴データベース)(上部の「🗄 Setup aruaru-db」)を併せてセットアップして
ご利用いただくことを推奨します。どちらも未設定のままでも本コースは動作します(採点結果はローカルに保存されます)。
For the best experience with this feature, we recommend also setting up Google Search
(see "🔎 Setup Google Search" above) and aruaru-db, the learning-history database
(see "🗄 Setup aruaru-db"). The course works without either of them; scores are then kept locally.
まちがえたときは、採点のあとに続けてもっと易しい問題へ進めます(落ちこぼれ防止)。仕組みは2段構えです:
まず同じ学年の中で用意されている易しい類題へ順に下がり、その学年ぶんを使い切ったら
1つ下の学年の同じ教科の問題へ切り替わります(問題が用意されていない学年は飛ばします)。
下げられる回数に上限は設けていません——用意されているデータがある限り何度でも下がり続け、
保育園児・幼稚園児レベルが下限です。そこでも解けない場合は、それ以上は下げずに正解を示して
「トレーナーと復習」へご案内します。「🍼 もっとずっと易しい問題」を押せば、一気に一番下の学年まで下げることもできます。
学年内の類題の数は問題ごとに異なり、現在は5段階が2問・2段階が16問・1段階が33問・類題なしが20問
(教科の練習問題71問、ほかに保育園児・幼稚園児向け14問)です(このほかプログラミングの基礎問題6問には1段階が3問)。
図解(イラスト)は、図があると分かりやすい問題にだけ付いています——全問には付いていません。
When you miss a question you can keep going easier, in two tiers: first through the easier
versions available within the same grade, and once those run out, on to the same subject
one grade lower (grades with no questions are skipped). There is no fixed limit on
how many times you can step down — it continues for as long as prepared material exists, with
preschool/kindergarten as the floor, where the app stops, shows the answer, and hands you to
the trainer. "🍼 Much easier" jumps straight to the lowest grade available. How many in-grade steps exist
differs per question: currently 2 questions have 5, 16 have 2, 33 have 1, and 20 have none
(71 subject questions, plus 14 preschool ones), and 3 of the 6 programming basics questions have one.
Diagrams are included only for questions where a picture helps — not for every question.
英語は小学3年生からご利用いただけます(学習指導要領でも小3から外国語活動が始まります)。
小1・小2でも国語・算数の練習問題はご利用いただけます。 English is available from elementary grade 3 (matching when foreign-language
activities start in the Japanese curriculum); grades 1–2 can still practise Japanese and arithmetic.
プログラミングの授業について: プログラミングの授業については、open-englishのAIエンジン
(aruaru-llm)単体では対応力が弱いため、CLAUDE CODE DESKTOPの有料版を合わせてお申し込みいただくことを
お勧めします。ご利用可能時間はご契約のプランによって変動いたします。
(そのため本コースの「プログラミング」は練習問題ではなく、この案内の表示のみとなります。) About programming lessons: open-english's own AI engine (aruaru-llm) is not strong
enough on its own for programming tuition, so we recommend subscribing to the paid version of Claude
Code Desktop alongside it; available usage time depends on your plan. The "Programming" subject here
therefore shows this guidance instead of practice questions.
Honest disclosure: every question here is an original mock question
written for this app; nothing is copied from real entrance exams, textbooks, or
commercial workbooks. The categories are a rough sketch of Japanese higher education and public
vocational training, not a match to any specific school or qualification, and results predict
nothing about real admissions. Only some fields have questions so far; the rest
honestly say "not ready yet". Essays, interviews, and practical skills are only approximated as
multiple-choice knowledge questions and are no substitute for real practice.
採点結果は既存の学習履歴の仕組み(/v1/db/history)に保存されます。
aruaru-db / PostgreSQL を設定していない場合はアプリ内蔵のローカルDB(SQLite)にのみ残ります。
Scores are stored through the existing history endpoint; without aruaru-db/PostgreSQL they stay
in the app's local SQLite only.
1. 区分を選んでください / Choose a category
2. 分野を選んでください / Choose your fields
3. 模擬問題 / Mock questions
🌐 言語のインストール / アンインストール — Install / uninstall languages
チェックを入れる = その言語をインストール(追加)、チェックを外す = アンインストール(削除)です。
インストールした言語だけが「学びたい言語」メニュー・資格対策コーナーの模擬試験メニュー・多言語の連続読み上げに現れます。
インストール・アンインストールはいつでも何度でも行え、メンテナンスや自動アップデートの後もその状態が保たれます。 Checking a box installs (adds) that language; unchecking it uninstalls (removes) it.
Only installed languages appear in the "Learn" menu, the practice-exam menu, and the multilingual read-aloud.
You can install or uninstall at any time, as often as you like, and your choices are kept across maintenance and automatic updates.
Honest disclosure: the multilingual quizzes are original practice questions written for this app.
They are not past questions from, and are not affiliated with or endorsed by, any official language certification
exam (DELE, DELF, Goethe-Zertifikat, HSK, TOPIK, etc.). Levels are loose CEFR-style approximations only, and the
number of questions per language is uneven (currently 3–6 items per language) — the count is shown next to each language. 正直な開示: 多言語クイズは本アプリ用に書き下ろしたオリジナル練習問題です。実在の語学資格試験
(DELE・DELF・Goethe-Zertifikat・HSK・TOPIK等)の過去問ではなく、それらとは一切無関係で、公認も受けていません。
レベル表記はCEFR風の大まかな目安に過ぎず、収録問題数も言語ごとに不均一(現状3〜6問)です——各言語の横に実際の問題数を表示しています。
母国語・言語の組み合わせ・表示順の設定は、メンテナンスや自動アップデートを挟んでも保持されます(ブラウザのlocalStorage +
ローカルSQLite DBの二重保存。localStorageが消えてもDB側から復元します)。
Your native language, language selection, and display order are kept across maintenance and automatic updates
(stored both in the browser's localStorage and in the local SQLite database; if localStorage is cleared, the settings are restored from the database).
選択した言語(英語・日本語を含めて最低2か国語・最大5か国語)の順に、同じ内容を画面へ表示しながら音声で読み上げます。
英語・日本語は常に有効なので、追加できるのは最大3言語までです。
The same content is shown and read aloud in each selected language, in order
(minimum 2, maximum 5 languages including English and Japanese; since those two are always on,
you can add up to 3 more).
↕ 表示・読み上げの順番 / Display & read-aloud order
順番は3つの方法で指定でき、どれを操作しても互いに連動します: ①数字を直接入力(1〜6)、
②1(左)〜6(右)のラジオボタン、③▲▼ボタン。
既に他の言語が使っている番号を指定した場合は、その言語と順番を入れ替えます(同じ番号が重複することはありません)。
母国語には🏠が付きます。並び順も保存され、次回以降も同じ順番で表示・読み上げされます。
You can set the order in three interlinked ways: (1) type the number (1–6),
(2) pick a radio button from 1 (left) to 6 (right), or (3) use ▲ / ▼.
Choosing a number already used by another language swaps the two, so numbers never collide.
Your native language is marked with 🏠, and the order is saved for next time.
Honest disclosure: read-aloud uses the browser's built-in Web Speech API. If your browser/OS has no
installed voice for a language, that line is displayed but may be read with a wrong-language voice or skipped
silently — this app does not bundle its own speech engine. The phrase translations are best-effort and may sound
stiff to native speakers. 正直な開示: 読み上げはブラウザ内蔵のWeb Speech APIを使います。その言語の音声がOS/ブラウザに入っていない場合、
文章は表示されますが別言語の声で読まれたり無音でスキップされたりします(本アプリは独自の音声合成エンジンを同梱していません)。
フレーズの訳文は最善努力ベースで、母語話者には硬く聞こえる場合があります。
🗞 話題ブリーフィング / Topic briefing
Honest disclosure: the news headlines are fetched live from a public Google News RSS feed each
time you run this — headlines only, never the article text (open the original story to read it). Everything else
(capital, major cities, sights, food, people, companies) is static background knowledge written for this
app: it is not fetched from the internet, it is not real-time, and it can be out of date. Company
descriptions are short factual summaries written here, not copied from company marketing material. 正直な開示: ニュース見出しは実行のたびに公開のGoogleニュースRSSから実際に取得しています(見出しのみで、
記事本文は取得・転載していません——本文は元記事でお読みください)。それ以外(首都・主要都市・観光名所・名物・有名人・企業)は
本アプリ用に記述した静的な基礎知識で、インターネットから取得したリアルタイム情報ではなく、古くなっている場合があります。
企業の説明文も本アプリで書き下ろした簡潔な事実ベースの要約であり、各社の宣伝文の転載ではありません。
You can change the level and reply language above at any time, before or during the conversation. / レベル・応答言語はいつでも(会話の前でも途中でも)上のメニューから変更できます。
Hi! I'm your English trainer. Choose your level above, then type or press the mic to start! / レベルを選んで、話すか入力してね!
Course guide: A "Data Scientist" course is available among the learning
courses. Typing something like "I want to become a data scientist" in the chat
automatically triggers it, guiding you through key programs referencing
Coursera (Google Data Analytics, IBM Data Science, US university online degrees),
the three core work areas of a data science team, and Python basics. Naming a
programming language or framework (e.g. "I want to learn Python", "teach me Rust")
triggers the equivalent programming course the same way.
Honest disclosure: AI responses are generated by a base
GPT-2 language model (via aruaru-llm's /v1/generate)
with no dialogue fine-tuning. Response quality and level-matching are not
guaranteed. Voice input/output uses the browser's built-in Web Speech API
(not all browsers support it). This is a Phase 0 prototype, not a
production tutor.
正直な開示: AIの応答は、対話用のファインチューニングを
受けていない素のGPT-2言語モデル(aruaru-llmの
/v1/generate経由)が生成しています。応答の品質・
指定レベルへの適合は保証されません。声の入出力はブラウザ標準の
Web Speech API(対応ブラウザのみ)を使用します。これはPhase 0の
試作品であり、本番運用レベルの講師ではありません。
Google画像検索(Googleのセーフサーチ有効)とYouTube限定の動画検索を使います。以前設定した
Google検索APIキーを自動で使用します(未設定の場合はSETUPを案内します)。安全のため、
確認済みドメイン一覧に無いリンクは自動では開けないようにしています(URLコピーのみ)。
Uses Google Image Search (with Google's SafeSearch on) and a YouTube-only video search. Reuses
your previously configured Google Search API key automatically (if not set up, you'll be
guided to set it up). For safety, links to domains outside our verified-safe list won't
auto-open (copy the URL instead).
🤖 使用中の無料AIを確認中… / Checking which free AIs are in use…