1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCode+WSLでAtCoderの環境構築

1
Last updated at Posted at 2026-04-28

WindowsでAtCoder環境構築を整えるメモ。
WSL + VSCode + atcoder-gui での手順を書いていきます。
※ WSL以外の部分はmacosなどでも利用可能

構築すると以下のことができます。

  • 問題文を解析して、ソースコードのひな型を生成
    • atcoder-toolsとほぼ同じもの
    • いまのところC++とPythonのみ
    • ルールベースで生成するため [AtCoder生成AI対策ルール - 20251003版] の条件下でも利用可能のはず
      • 将来禁止される可能性はあります
    • 複数ケースやクエリタイプなどの変則的な問題にも対応
      • 失敗することもあります
  • サンプル入力と出力のダウンロード
  • テスト実行
  • 提出のサポート
    • 人間がブラウザを操作することにより、CAPCHA認証に対応
  • VSCodeとの連携
    • デバッグ実行のための設定値の準備
    • 問題文を開いたときにVSCodeで該当するディレクトリを開く

↓ atcoder-gui の記事

↓ えびまさんのWindows環境構築動画

インストール

WSLとLinuxのインストール

AtCoderのジャッジがLinuxなのと、他の様々なツールを動かすときにLinuxがやりやすいです。WSLでUbuntuをインストールします。
管理者権限が必要です。

wsl --install

再起動後、Linuxのインストール

wsl --install Ubuntu

Linux環境のコマンドやライブラリの追加

PowerShellか、または、Windows TerminalからPowerShellを起動します。

wsl
sudo apt update

Linuxの追加設定

stack sizeのデフォルト値は8MBなので、少し拡大する。
↓ ソフトリミットを64MBにする例 (単純な処理なら100万回くらい再帰呼び出し可能)

echo "ulimit -Ss 65536" >> ~/.bashrc

C++の場合

C++の場合はGCCを入れます。たぶんClangでもいけます。

sudo apt install build-essential g++ gdb

AtCoder Libraryをインストールします。
WSLなどでsudo権限がある場合は /usr/local/include にインストールするのが手軽です。
公式サイトのReleases からダウンロードして展開します。↓ はv1.6の例です。

cd /tmp
wget https://github.com/atcoder/ac-library/archive/refs/tags/v1.6.tar.gz
tar zxvf v1.6.tar.gz
sudo cp -a ac-library-1.6/atcoder /usr/local/include/

Pythonの場合

2026/4現在だとバージョンマネージャーとして uv がお勧めらしいです。

curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.14

VSCodeのインストール

Microsoft Storeまたは 公式サイト からVSCodeをインストールしてください。

VSCodeの拡張機能の追加

拡張機能について、WSL と、開発に使いたい言語のもの (C++ または Python) をインストールしてください。

Node.jsのインストール

UbuntuにNode.jsをインストールします。ここではバージョンマネージャーとして nvm を使う場合で説明します。
公式サイト からリンクを取得します。↓ のような感じのリンク

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash

シェルを再起動して (exit -> wsl) nvmを利用可能にしたあと、LTSのNode.jsをインストールします。

nvm install --lts
nvm alias default 'lts/*'

atcoder-guiのインストール

Node.jsがインストールできたら atcoder-gui をインストールします。

npm install -g atcoder-gui

Playwrightのインストール

atcoder-gui に Playwright が必要なので、依存ライブラリと、日本語のフォントをインストールします。これにより Playwright が WSL 環境で動きます。

npx playwright install
npx playwright install-deps chromium
sudo apt install fonts-noto-cjk fonts-noto-cjk-extra

各種設定

初期設定

作業用のディレクトリを決めます。特に指定しない場合は $HOME/atcoder ( ~/atcoder ) です。
シェルから atcoder-gui で起動すると、初期設定として、開発言語と作業用のディレクトリを聞いてきます。
C++の場合はそのまま Enter、Pythonの場合は python と入力してください。
作業用のディレクトリは Enter で ~/atcoder となります。

Welcome to AtCoder GUI!
It seems like this is your first launch or configuration is incomplete.
Choose your default language (cpp/python) [cpp]: 
Enter your workspace directory [~/atcoder]:

AtCoderへのログイン

Playwright によりブラウザで atcoder.jp/home が開くので、ログインしてください。

VSCode用の設定

続いて、VSCode用の設定を行います。

command> setup-vscode

作業用のディレクトリの .vscode/ 以下にプロジェクトの設定ファイルが配置され、設定ファイル config.json5 にいくつか設定値が追加されます。
以上で設定完了です。

動作確認

試しにatcoder-guiのコマンド欄でgenコマンドを実行して、どれかのコンテスト情報を取得してみてください。

gen abc400

取得に成功したら、コマンド a を入力すると、問題Aが開くはずです。
VSCodeで main.cpp または main.py を編集して、F5でデバッグができます。
atcoder-guiのコマンド欄で test を入力するとテストができます。
ログインしている場合には submit で提出できます。
なお te su などでも認識します。

設定ファイルの構成

設定ファイルの場所は atcoder-gui config-dir で表示できます。Linuxだと ~/.config/atcoder-gui-nodejs のはず。

設定ファイルの構成は以下の通りです。
session.json はログインセッションの情報が含まれています。外部に公開しないように注意してください。

atcoder-gui-nodejs
├── config.json5     # 作業用ディレクトリなど、設定全般
├── cpp.json5        # C++のテンプレートの変数などの設定
├── cpp.njk          # C++のコードテンプレート
├── python.json5     # Pythonのテンプレートの変数などの設定
├── python.njk       # Pythonのコードテンプレート
└── session.json     # セッション情報

VSCode用の設定値について

setup-vscode を実行すると、設定ファイルの config.json5 が ↓ のような感じになります。
各問題について、ソースコードが同名 (main.cpp または main.py) なので、ある問題でブレークポイントを設定すると、別の問題でもブレークポイントが発動します。これを防ぐため、問題のディレクトリに移動したとき、そのディレクトリを親ディレクトリとしてVSCodeを開くようにしています。

{
  // UI Theme: 'light' or 'dark'
  theme: "light",

  // 起動時に開くURL
  defaultUrl: "https://atcoder.jp/home",

  // ブラウザのサイズ
  windowSize: {
    width: 1200,
    height: 900,
  },

  // 作業用のディレクトリ
  workspaceDir: "~/atcoder",

  // 利用言語
  // C++の場合 cpp
  // Pythonの場合 python
  language: "cpp",

  // コンテスト毎のディレクトリを作成するかどうか
  createContestDirectory: true,

  buildCommand: {
    // C++でビルドするコマンド
    cpp: "g++ -O3 -std=c++23 -DNDEBUG main.cpp -o main",
  },

  runCommand: {
    // Pythonでテストケースを実行するコマンド
    python: 'uv run main.py',
  },

  // CLIで利用可能にしたいコマンド
  allowedCommands: ["ls", "dir", "pwd", "code", "git"],

  preProcess: {
    // 各問題のディレクトリで、解析前に実行するコマンド
    // VSCode用の設定値をコピーするなど
    execOnEachProblemDir: "cp -a ~/atcoder/.vscode .",
  },
  postProcess: {
    // 各問題のディレクトリで、解析後に実行するコマンド
    // サンプル入力1を作業用にコピーする
    execOnEachProblemDir: "cp in_1.txt in.txt",
  },
  onEnter: {
    // 各問題のディレクトリに移動したときに実行するコマンド
    // VSCodeで、そのディレクトリだけ開くようにする
    execOnEachProblemDir: "code -r .",
  },
}
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?