Agentero
에이전트를 연결해 로컬 Vault에 연구 컨텍스트를 보관·Zotero에서 무결점 이동·읽고 이해·재활용
브라우저에서 바로 쓰는 무료 개인 온라인 도구(단어 수, 텍스트 비교, 마크다운, 대소문자 변환 등) 가입·업로드 없이
Free, private online tools that run in your browser: word counter, text diff, Markdown editor, case converter, text cleanup and more. No sign-up, no uploads.
생산성JavaScript · CSSGitHub @muhammadrinshad071-coder온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Free, private, all-in-one browser tools — text, math, developer utilities and more. No sign-up, no tracking.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A free, private, all-in-one collection of browser-based tools. It's a static website with no backend, database, accounts or tracking, and it costs ₹0 to host on GitHub Pages.
Current release (stage 3): the full application shell plus 34 working tools — 14 text and content tools, 12 math tools (scientific calculator, percentages, fractions, ratios, statistics, primes, GCD/LCM, factorials, random numbers, number bases, Roman numerals and a 10-category unit converter), 7 developer utilities (JSON, Base64, UUID, hashes, Unix timestamps, JWT, regex) and a colour converter. See docs/FEATURES.md for the full checklist and roadmap.
| Decision | Why |
|---|---|
| Plain HTML + CSS + JavaScript ES modules, no framework | React + Vite would add a build toolchain, node_modules, and ~45 KB of runtime for little benefit. Tools here are self-contained forms. Native modules load fine on every current browser. |
A small Node script pre-renders every page (scripts/build.mjs) | Each tool gets a real, crawlable HTML page with a unique title, description, canonical URL, instructions, and related links, so search engines see content without running JavaScript. |
One central tool registry (src/js/core/registry.js) | It feeds the build (pages, sitemap), search, navigation, related tools, and the roadmap. Adding a tool means adding one registry entry and one module. |
| Tools load on demand | Each tool page imports only its own module (src/js/tools/<id>.js). The home page never loads tool code. |
| Web Workers for heavy or risky work | Find & Replace and Text Diff run in workers with a time limit (src/js/ui/worker-runner.js), so a runaway regular expression or a huge comparison can't freeze the page. |
| Relative links everywhere | The same build works at https://you.github.io/any-repo-name/ or at a domain root. |
| Strict Content Security Policy | script-src 'self': no inline scripts, no third-party code, no eval. |
| localStorage for settings, favorites and history | All access goes through a safe wrapper that falls back to memory and says so honestly when storage is blocked or full. IndexedDB will be added when a tool needs larger storage (notes, flashcards). |
Initial JavaScript on the home page is about 23 KB gzipped in total, and the CSS is about 8 KB gzipped.
toolnest-ultimate/
├── .github/workflows/deploy.yml Free GitHub Actions deploy to Pages
├── docs/FEATURES.md Feature checklist + manual test plan
├── scripts/ Node-only build tooling (never shipped)
│ ├── build.mjs Static site generator → dist/
│ ├── templates.mjs HTML templates for every page type
│ ├── config.mjs SITE_URL / REPO_URL handling
│ ├── serve.mjs Local server that behaves like GitHub Pages
│ └── dev.mjs Build + serve + rebuild on save
├── src/ Everything the browser receives
│ ├── assets/css/main.css Design system (themes, accents, components)
│ ├── assets/icons/favicon.svg
│ └── js/
│ ├── boot.js Applies saved theme before first paint
│ ├── app.js Entry: header, favorites, shortcuts, page loader
│ ├── core/ Shared by browser AND build (no DOM)
│ │ ├── registry.js ★ All categories, tools, and roadmap items
│ │ ├── tool-docs.js Each tool's help text (build-time only)
│ │ ├── search.js Local ranked search with synonyms
│ │ ├── storage.js Safe localStorage wrapper
│ │ ├── prefs.js Settings, favorites, history, export/import
│ │ ├── icons.js In-house SVG icon set
│ │ └── markup.js Card HTML shared by build and browser
│ ├── lib/ Pure, unit-tested logic: text, diff (Myers),
│ │ markdown, html, url, lorem, expression,
│ │ math, units, json, encoding, uuid, hash,
│ │ time, jwt, regex, color
│ ├── ui/ Browser UI modules
│ │ ├── toolkit.js Reusable tool components (copy, download, clear+undo…)
│ │ ├── worker-runner.js Time-limited Web Worker jobs with main-thread fallback
│ │ ├── palette.js Ctrl+K command palette
│ │ ├── settings.js Settings dialog and data controls
│ │ ├── home.js / directory.js / tool-page.js
│ │ └── theme.js / toast.js
│ ├── tools/ One module per tool, loaded on demand
│ └── workers/ Web Workers
├── tests/ Node built-in test runner (no dependencies)
└── dist/ Build output (generated, not committed)
Runtime: none. No npm packages are shipped to the browser.
Development: none from npm either. You only need Node.js 20 or newer, which runs the build script, the local server, and the tests through its built-in node:test runner. There's no npm install step.
Future tools that genuinely need a library (for example PDF processing) will load it only on that tool's page. Each one will be listed with its licence on the About page and in docs/FEATURES.md.
https://<username>.github.io/<repository>/.Free-tier limits to know about: a published Pages site can be up to 1 GB, and there's a soft bandwidth limit of 100 GB per month. GitHub Pages is not intended for commercial SaaS or e-commerce sites. This project uses a tiny fraction of those limits.
winget install OpenJS.NodeJS.LTS
winget install Git.Git
node --version
git --version
Node should report v20 or higher.Open a terminal in the project folder, then run:
npm run dev
Open http://localhost:5173/ in your browser. Edits to files in src/ or scripts/ rebuild automatically; refresh the page to see them. Each rebuild is written to a staging folder and swapped in at the end, so a refresh never catches a half-built site. Press Ctrl + C to stop.
Opening
dist/index.htmlby double-clicking won't work properly. Browsers block ES modules and workers onfile://pages, so always use the local server.
npm test
This runs 119 automated tests: every calculator formula and unit conversion against reference values (round-trips across all units, Miller–Rabin edge cases, exact factorials), hashes against published RFC/FIPS test vectors, JSON error positions, time zones with daylight saving, plus text, diff, Markdown, HTML and URL algorithms (including Markdown safety against scripts and javascript: links), search ranking, storage failure handling, import validation, and checks on the generated pages (unique titles, relative links, sitemap, CSP, 404 behaviour).
npm run preview:pages
Open http://localhost:5173/toolnest-ultimate/. This serves the site under a repository-style sub-path. If everything works here, it will work on GitHub Pages. (Don't run this and npm run dev at the same time, because both write to dist/.)
npm run build
The finished static site is written to dist/. You rarely need this yourself, because the GitHub workflow builds the site for you.
toolnest-ultimate), choose Public, and leave "Add a README" unchecked.YOUR-NAME):
git init
git add .
git commit -m "Initial ToolNest Ultimate release"
git branch -M main
git remote add origin https://github.com/YOUR-NAME/toolnest-ultimate.git
git push -u origin main
Git will open a browser window to sign in to GitHub the first time.https://YOUR-NAME.github.io/toolnest-ultimate/.The workflow detects your Pages address automatically, so canonical URLs, the sitemap, and the 404 page are always correct, even if you rename the repository. The About page's contact link points to your repository's public Issues tab.
Make your changes, check them with npm run dev and npm test, then run:
git add .
git commit -m "Describe your change"
git push
The site redeploys in about a minute. Browsers may cache old files for up to 10 minutes; press Ctrl + F5 to force a refresh.
| Problem | Fix |
|---|---|
| Blank page or unstyled page on GitHub Pages | Check that Settings → Pages → Source is GitHub Actions, not "Deploy from a branch". The dist/ folder isn't committed, so branch deploys have nothing to serve. |
| Workflow fails at "Run tests" | Run npm test locally, fix the failing test, then push again. |
| Workflow fails at "deploy" with a permissions error | Settings → Pages → Source must be GitHub Actions. Then re-run the workflow. |
| 404 for every page | Wait 1–2 minutes after the first deploy. Then check the exact URL in Settings → Pages; it's case-sensitive. |
| Tools stuck on "Loading tool…" | Open the browser console (F12). If you opened the file directly from disk, use npm run dev instead. Very old browsers without ES-module support aren't supported. |
| Old version still showing | Press Ctrl + F5. CSS and the app script are cache-busted automatically on each build. |
npm isn't recognised | Reinstall Node.js and reopen the terminal so the PATH updates. |
| Port 5173 is in use | Run node scripts/dev.mjs --port 5180 and open that port instead. |
| robots.txt has no effect | Search engines only read robots.txt at a domain's root. On username.github.io/repo/ it's ignored, but the sitemap can still be submitted in Google Search Console. |
readyTools array in src/js/core/registry.js with id, name, category, icon, description, tags, and related, and remove the matching item from roadmap. Then add its help text to src/js/core/tool-docs.js: seoDescription, instructions, about, limitations, and optionally privacy. Help text lives in that separate file because only the build reads it, so it never adds weight to the JavaScript every page loads.src/js/lib/ and add tests for it in tests/.src/js/tools/<id>.js that exports mount(container, { tool }). Build the interface from the helpers in src/js/ui/toolkit.js (text areas, copy, download, clear-with-undo, examples, and status messages).npm test. The registry tests confirm the tool is complete and that its module exists, and the build then generates its page, sitemap entry, and search entry automatically.textContent, never with innerHTML.localStorage, and users can export or delete them in Settings.MIT. See LICENSE.