CODE:LIFE Tools
完全クライアントサイドで動く、日本語の業務向けWebツール集(全59種・無料)。
すべてのデータ処理はお使いのブラウザ内で完結し、入力データがサーバーへ送信されることは一切ありません。Cookieなし・個人追跡なし・広告なし・オープンソースで運営しています。
🔗 https://tools.codelife.cafe
⭐ 主力ツール
日々の業務でよくある「困った」を、データを外に出さずにその場で解決します。
| ツール | こんなときに |
|---|
| CSV文字化け修復 | Excelで開いたCSVが文字化けした。文字コードを自動判定してUTF-8(BOM付き)に修復 |
| 全角⇔半角変換 | 顧客名簿のカタカナ・英数字・記号の表記ゆれを一括統一 |
| JSON ↔ CSV 変換 | APIのJSONをExcelで扱えるCSVに。ネスト展開・BOM付きUTF-8出力対応 |
| 郵便番号→住所変換 | 郵便番号リストから住所を一括変換。Excel貼り付け・CSV出力対応 |
| 消費税・税込計算 | 税込⇔税抜の即時計算。軽減税率・過去税率・端数処理(切り捨て/四捨五入/切り上げ)対応 |
📦 収録ツール(59種)
テキスト処理
| ツール | 説明 |
|---|
| 全角⇔半角変換 | カタカナ・英数字・記号の全角⇔半角一括変換 |
| 文字数カウント | 文字数・バイト数(UTF-8/Shift-JIS)・行数をリアルタイムカウント |
| テキスト差分 | 2つのテキストの差分を並列・インライン表示 |
| ユニコード変換 | テキストとユニコードエスケープシーケンス(\uXXXX)を相互変換 |
| Markdownプレビュー | GFM対応のリアルタイムプレビュー。HTMLコピー・ダウンロード対応(データは外部送信なし) |
| JWTデコーダー | JWTのヘッダー・ペイロードをブラウザ内でデコード。署名検証なしで内容確認 |
| ワードクラウド生成 | 日本語テキストを形態素解析しワードクラウド・頻度表(CSV)化(データは外部送信なし) |
| 文字起こし(ローカル) | 会議録音や動画をブラウザ内AIで文字起こし。音声はこの端末から出ません(データは外部送信なし) |
データ処理
| ツール | 説明 |
|---|
| JSON整形 | JSONの整形・圧縮・バリデーション |
| JSON ↔ CSV 変換 | JSONとCSVの相互変換。ネスト展開・型推論・BOM付きUTF-8出力(Excel文字化け対策) |
| CSVビューア/エディタ | CSV/TSV/Excel(.xlsx)を閲覧・編集・フィルタ・ソート・グラフ化 |
| CSV文字化け修復 | CSVの文字コード自動判定・変換(Shift_JIS/UTF-8/EUC-JP等) |
| 電話番号フォーマッタ | 日本語の電話番号をE.164・国際表記・国内表記に即変換。CSV一括変換対応。 |
| ダミーデータ生成 | 日本語の氏名・住所・電話番号等の一括生成(JSON/CSV/TSV) |
| 郵便番号→住所変換 | 郵便番号から住所を検索・一括変換。Excel貼り付け・CSV出力対応(データは外部送信なし) |
| AI表データプロンプト生成 | CSV・TSV・Excel貼り付けデータを、AIに渡しやすい分析プロンプトへ変換(データは外部送信なし) |
ユーティリティ
| ツール | 説明 |
|---|
| 動画圧縮・リサイズ | 動画を端末内で圧縮。品質・目標容量・解像度指定、トリミング、MP4保存(完全ローカル実行) |
| OGP画像ジェネレーター | SNSシェア用のOGP画像(1200×630)をテンプレートとテキストから作成(完全ローカル実行) |
| 背景削除 | AIがブラウザ内で画像の背景を自動削除。差し替えにも対応(完全ローカル実行) |
| 画像アップスケール・ノイズ除去 | Real-ESRGAN(ONNX)でブラウザ内アップスケール(2x/4x)・ノイズ除去。データは外部送信なし(完全ローカル実行) |
| 画像モザイク・ぼかし | 四角形/円形の範囲にモザイク・ぼかしを適用し、絵文字・任意画像スタンプも配置(完全ローカル実行) |
| 画像テキスト挿入 | 画像への文字入れ・注釈。縁取り・背景ボックス対応(完全ローカル実行) |
| 画像文字起こし(OCR) | 画像の日本語・英語の横書き活字を読み取り、確認・編集してコピーまたはUTF-8のTXT保存。誤認識あり・手書き/縦書き非対応(完全ローカル実行) |
| 画像圧縮・リサイズ | JPEG/PNG/WebPの圧縮・リサイズ・変換。一括処理・目標サイズ指定・ZIP出力(完全ローカル実行) |
| 画像形式変換 | HEIC・WebP・AVIF・PNG・JPEGを相互変換。HEIC→JPEG一括・品質指定・EXIF保持/削除・ZIP出力(完全ローカル実行) |
| 画像メタデータ削除 | JPEG・PNG・WebP画像のExif・GPS位置情報などを削除。形式変換・一括ZIP出力対応(完全ローカル実行) |
| EXIF確認・削除 | 写真の撮影情報・GPS位置情報を確認し、ワンクリックで削除(完全ローカル実行) |
| 画像のクロップ・回転・反転 |
PDF
| ツール | 説明 |
|---|
| PDF結合 | 複数のPDF・画像(JPEG/PNG)を1つのPDFに結合。並べ替え対応(完全ローカル実行) |
| PDF分割・ページ抽出 | 範囲指定で分割・抽出・1ページずつ分割。ZIP一括ダウンロード対応(完全ローカル実行) |
| PDF圧縮 | 文字・リンクを保ったままの最適化と、スキャンPDF向けの画像化圧縮(明示選択)。縮まない場合は元ファイルを保持(完全ローカル実行) |
| PDFテキスト抽出 | PDFの文字データをページ指定で取り出し、確認・編集してコピーまたはUTF-8のTXT保存。OCRはせず、文字を取得できないページは警告(完全ローカル実行) |
| PDF→JPG/PNG変換 | ページ範囲・72/96/144dpi・JPEG品質を指定してページを画像化。回転ページは見たままの向きで連番出力(完全ローカル実行) |
開発者向け
| ツール | 説明 |
|---|
| 正規表現チェッカー | リアルタイムマッチング・置換・キャプチャグループ表示 |
| ハッシュ値計算 | MD5・SHA-1・SHA-256・SHA-512・CRC32の計算と期待値照合(ファイルの改ざんチェック) |
| SQLフォーマッター | SQL文の整形(MySQL, PostgreSQL等の方言対応) |
| 個人情報マスキング | メール・電話番号・カード番号等を自動検出してマスキング |
| 暗号変換 | シーザー暗号・ROT13・モールス信号・逆順等のテキスト変換 |
| カラーコード変換 | HEX・RGB・HSL・CMYKの相互変換。カラーピッカー連動・ワンクリックコピー |
| ファビコン生成 | 画像から favicon.ico・各サイズPNG・apple-touch-icon・site.webmanifest を一括生成。アップロード不要・HTMLタグ出力対応(完全ローカル実行) |
| 画像Base64変換 | 画像をBase64/Data URIへ相互変換。<img>タグ・CSS url() スニペット出力。逆変換対応 |
| UNIXタイムスタンプ⇔日時変換 | 秒/ミリ秒/マイクロ秒/ナノ秒/Slack TSを自動判定し日時と相互変換。ISO 8601・RFC 3339・和暦・Discord形式も同時出力 |
| ログ時間差分析 | ログ各行の先頭の時刻(ISO 8601・UNIX秒・ミリ秒)から行間の時間差を計算。間隔の大きい上位10件・順序逆転・CSV保存に対応(完全ローカル実行) |
| cron式チェッカー | cron式を日本語解説・次回実行10件(JST/UTC)で確認。日本語→cron式の逆引き生成、危険パターンの警告、GitHub Actions/AWS EventBridge形式変換にも対応 |
| UUID / ULID 生成ツール |
🛡️ セキュリティ・プライバシー
- 完全クライアントサイド処理 — 入力データが外部サーバーに送信されることはありません
- Cookieなし・個人追跡なし・広告なし — 同意バナーも表示されません(詳細はプライバシーポリシーを参照)
- オープンソース — コードはすべて公開されており、処理内容を誰でも確認できます
- PWA対応・オフライン動作 — インストール後はオフライン環境でも利用可能(ブラウザ内AIを使う一部ツールは初回利用時にモデルファイルの取得が必要)
🏗️ 技術スタック
- フレームワーク: Astro(静的サイト生成)
- UIコンポーネント: React(Astro Islands) + shadcn/ui
- スタイリング: Tailwind CSS v4
- アイコン: Lucide Icons
- テスト: Playwright(E2E)
- ホスティング: Cloudflare Pages
- CI/CD: GitHub Actions
🧞 コマンド
| コマンド | 説明 |
|---|
npm install | 依存パッケージをインストール |
npm run dev | 開発サーバーを起動(localhost:4321) |
npm run build | 本番用に静的ビルド+OGP画像・SW生成+Pagesアセット検査(dist/) |
npm run preview | ビルド結果をローカルプレビュー |
npm run check | Astroの型チェックとBiome静的解析を実行 |
npm run lint | Biomeによるコードの静的解析(チェックのみ) |
npm run lint:fix | Biomeによるコードの自動フォーマット・修正 |
npm test | PlaywrightによるE2Eテストを全件実行 |
npm run test:unit | コアロジックの単体テストを実行(Node 22 の node --test、runner追加なし) |
npx playwright test --headed | ブラウザを表示しながらE2Eテストを実行 |
🚀 Cloudflare R2 モデル配信
AI モデルは Cloudflare R2 バケット codelife-models に配置し、ツールごとに配信経路を分けています。
| バケット | codelife-models |
|---|
| CORS | tools.codelife.cafe, localhost:4321 |
背景削除 (/bg-remove)
カスタムドメイン models.tools.codelife.cafe から直接配信します。
| カスタムドメイン | https://models.tools.codelife.cafe |
|---|
配信済みモデル:
onnx-community/modnet-webnn/resolve/main/onnx/model.onnx — 25.9MB (MODNet fp32)
onnx-community/BEN2-ONNX/resolve/main/onnx/model_fp16.onnx — 219MB (BEN2 fp16)
ローカル開発時(localhost)は HuggingFace CDN に自動フォールバックします。
文字起こし (/transcribe)
同じ R2 バケット上の Whisper ONNX モデルを、同一オリジンのプロキシ経由で配信します(CSP の connect-src 'self' と両立するため)。
| プロキシパス | /models/transcribe/** |
|---|
| Pages Function | functions/models/transcribe/[[path]].ts |
| R2 バインディング | TRANSCRIBE_MODELS(wrangler.jsonc) |
| オブジェクトキー | transcribe/<model>/<revision>/... |
詳細は docs/data-management.md §3 を参照してください。
モデルを再アップロードする場合
bash scripts/upload-models-to-r2.sh codelife-models
CORS 設定を変更する場合
scripts/r2-cors.json を編集してから:
wrangler r2 bucket cors set codelife-models --file scripts/r2-cors.json
📮 郵便番号データの更新
郵便番号→住所変換ツールの住所データは 日本郵便 郵便番号データ(自由に配布・利用可能)を元に、上2桁チャンクJSON(public/data/zipcode/{00..99}.json)として同梱しています。日本郵便の月次更新に追従する場合のみ、以下を実行してコミットします(ビルドでは実行しません)。
# 1. utf_ken_all.zip を取得・展開して scripts/.cache/utf_ken_all.csv に配置
# (scripts/.cache/ は .gitignore 対象。入力CSVはコミットしない)
# Windows: Expand-Archive utf_ken_all.zip -DestinationPath scripts/.cache
# macOS/Linux: unzip utf_ken_all.zip -d scripts/.cache
# 2. チャンクJSON + metadata.json を生成
node scripts/generate-zipcode-data.ts
# 3. public/data/zipcode/ の差分をコミット
生成スクリプトは冪等で、public/data/zipcode/metadata.json に出典・件数・データバージョン(YYYY-MM)を記録します。ページの「○○時点」表記はこのメタデータから生成されます。
📄 ライセンス
MIT
画像形式変換ツール(/image-convert)は HEIC デコードに libheif-js(LGPL-3.0)、AVIF エンコードに @jsquash/avif(Apache-2.0)を、いずれも当該ページで必要時のみ動的にロードして利用しています。詳細は THIRD-PARTY-NOTICES.md を参照してください。
PDF圧縮(/pdf-compress)のプレビュー・画像化モード、PDF→JPG/PNG変換(/pdf-to-image)、PDFテキスト抽出(/pdf-to-text)は、ページ描画・文字データの取得に PDF.js(pdfjs-dist、Apache-2.0)を当該ページで必要時のみ動的にロードして利用しています。
画像文字起こし(/image-ocr)は、文字認識に Tesseract.js 7.0.0 のWorkerと tesseract.js-core 7.0.0(いずれもApache-2.0)、言語データに tessdata_fast(Apache-2.0)の日本語・英語を、同一オリジンの固定ファイルとして配信して利用しています。詳細は THIRD-PARTY-NOTICES.md を参照してください。