← Reference Processed on the server

Connect as an MCP server

1234.nu speaks the Model Context Protocol over the Streamable HTTP transport. Point any MCP client at this URL — no auth, no session setup:

https://1234.nu/mcp

Claude Code:

claude mcp add --transport http 1234nu https://1234.nu/mcp

Or in an mcpServers config block (Claude Desktop, editors, etc.):

{
  "mcpServers": {
    "1234nu": {
      "type": "http",
      "url": "https://1234.nu/mcp"
    }
  }
}

The server exposes tools/list and tools/call for the tools below. It's stateless — every POST is a self-contained JSON-RPC 2.0 request.

Plain REST API

Prefer a plain HTTP call? Every tool is also reachable directly. The request body is the arguments object.

# list every tool and its input schema
curl https://1234.nu/api/tools

# run one tool
curl -X POST https://1234.nu/api/tools/hash \
  -H 'Content-Type: application/json' \
  -d '{"text":"hello","algo":"sha256"}'

# → {"ok":true,"result":"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"}

Success → { "ok": true, "result": "..." }. Bad input → HTTP 400 with { "ok": false, "error": "..." }.

OpenAPI spec

An OpenAPI 3.1 description of every tool — import it into Postman, an editor, or a code generator:

https://1234.nu/api/openapi.json

Available tools (138)

Expand Try it out on any tool to call it live, right from this page.

hash
Compute a cryptographic hash (md5, sha1, sha256, sha512) of text. Returns lowercase hex.
text* string Text to hash
algo md5 | sha1 | sha256 | sha512 (default: sha256)
Try it out
Copy as
hmac
Compute an HMAC of a message with a secret key. Returns hex or base64.
message* string
key* string
algo sha256 | sha512 | sha1 (default: sha256)
encoding hex | base64 (default: hex)
Try it out
Copy as
base64
Encode text to Base64, or decode Base64 back to text (UTF-8).
text* string
mode encode | decode (default: encode)
Try it out
Copy as
url_encode
Percent-encode (encode) or decode a string for use in URLs.
text* string
mode encode | decode (default: encode)
Try it out
Copy as
json_format
Validate and pretty-print (or minify) JSON. Throws on invalid JSON.
text* string
indent integer Spaces of indentation; 0 minifies (default: 2)
Try it out
Copy as
yaml_to_json
Convert YAML to pretty-printed JSON.
text* string
Try it out
Copy as
json_to_yaml
Convert JSON to YAML.
text* string
Try it out
Copy as
uuid
Generate one or more UUIDs: random v4 (default) or time-ordered v7 (RFC 9562).
count integer (default: 1)
version 4 | 7 4 = random, 7 = time-ordered (unix-ms prefix) (default: 4)
Try it out
Copy as
morse
Encode text to Morse code, or decode Morse (words separated by " / ") back to text.
text* string
action encode | decode (default: encode)
Try it out
Copy as
roman
Convert an integer (1–3999) to a Roman numeral, or a Roman numeral back to an integer.
input* string Number or Roman numeral, as text
direction toRoman | fromRoman (default: toRoman)
Try it out
Copy as
slugify
Turn text into a URL-friendly slug (lowercase, hyphen-separated, accents stripped).
text* string
Try it out
Copy as
case_convert
Convert an identifier between cases: camel, pascal, snake, kebab, constant, title.
text* string
target* camel | pascal | snake | kebab | constant | title
Try it out
Copy as
text_stats
Count characters, words, lines, and sentences in text. Returns JSON.
text* string
Try it out
Copy as
base32
Encode text to Base32 (RFC 4648), or decode Base32 back to text (UTF-8).
text* string
mode encode | decode (default: encode)
Try it out
Copy as
hex
Encode text to hexadecimal, or decode hex back to text (UTF-8).
text* string
mode encode | decode (default: encode)
Try it out
Copy as
html_entities
Encode special characters to HTML entities, or decode HTML entities back to text.
text* string
mode encode | decode (default: encode)
Try it out
Copy as
rot13
Apply a ROT13 or arbitrary Caesar shift cipher to text. Decoding ROT13 is the same as encoding.
text* string
shift integer Letters to shift (13 = ROT13) (default: 13)
Try it out
Copy as
crc32
Compute the CRC32 checksum of text. Returns the lowercase hex value and unsigned integer.
text* string
Try it out
Copy as
base_convert
Convert an integer between number bases (2–36). Input is read in fromBase, output written in toBase.
value* string The number, as text
fromBase integer (default: 10)
toBase integer (default: 16)
Try it out
Copy as
gzip
Compress text (gzip, deflate, brotli, or zstd) and return Base64, or decode Base64 back to text. Reports byte sizes. Decompression output is capped at 10 MB.
text* string
mode compress | decompress (default: compress)
algorithm gzip | deflate | brotli | zstd (default: gzip)
Try it out
Copy as
jwt_decode
Decode a JWT (JSON Web Token) into its header and payload. Does NOT verify the signature.
token* string
Try it out
Copy as
password
Generate a cryptographically random password. Choose length and character classes.
length integer (default: 20)
symbols boolean Include punctuation symbols (default: true)
digits boolean Include digits (default: true)
Try it out
Copy as
color_convert
Parse a CSS color (hex like #3af or #33aaff, or "rgb(r,g,b)") and return hex, rgb, hsl, oklch, oklab, lab (CSS Color 4 D50) and naive CMYK forms.
color* string
Try it out
Copy as
lorem
Generate lorem-ipsum placeholder text by words, sentences, or paragraphs.
unit words | sentences | paragraphs (default: paragraphs)
count integer (default: 3)
Try it out
Copy as
list_ops
Set operations on two newline-separated lists: union, intersection, items only in A, or only in B. Lines are trimmed; blanks and duplicates are dropped.
a* string List A, one item per line
b* string List B, one item per line
op union | intersect | a_only | b_only (default: intersect)
ignore_case boolean (default: false)
Try it out
Copy as
validate
Validate an IBAN, credit-card number (Luhn), BIC/SWIFT code, ISBN-10/13, or EU VAT number. Returns JSON { valid, reason }.
value* string The value to validate
kind* iban | card | bic | isbn | vat
Try it out
Copy as
json_to_table
Convert a JSON array of objects into a GitHub-flavored Markdown table (union of keys as columns).
json* string A JSON array of objects
Try it out
Copy as
math_eval
Evaluate a math expression (e.g. "2*(3+4)^2 - sqrt(16)"). Operators + - * / % ^, factorial n!, constants pi/e/tau, and functions sin/cos/tan/sqrt/ln/log/abs/min/max/pow/etc. Radians.
expr* string
Try it out
Copy as
numeronym
Turn words into numeronyms — internationalization → i18n, accessibility → a11y. Words of 3 letters or fewer are left as-is.
text* string
Try it out
Copy as
email_normalize
Canonicalize email addresses — lowercase, strip Gmail dots and +tags — and dedupe. Pass a newline/comma-separated list.
emails* string
dedupe boolean (default: true)
Try it out
Copy as
json_to_xml
Convert a JSON object to XML. Keys prefixed "@" become attributes; a "#text" key becomes element text.
json* string
Try it out
Copy as
escape
Escape or unescape a string for a target format: JSON string body, regular-expression literal, HTML entities, SQL LIKE wildcards, POSIX shell single-quoting, or URI component.
text* string The string to transform
mode json | regex | html | sql | shell | uri (default: json)
action escape | unescape (default: escape)
Try it out
Copy as
sort_lines
Sort, reverse, deduplicate, shuffle, or count line frequency in newline-separated text. Optionally trim each line, drop blank lines, and ignore case while comparing.
text* string The text, one item per line
mode asc | desc | len_asc | len_desc | reverse | dedupe | shuffle | freq (default: asc)
trim_lines boolean (default: false)
remove_blanks boolean (default: false)
ignore_case boolean (default: false)
Try it out
Copy as
flip_text
Flip text upside-down (Unicode substitution + reversal), mirror it (reverse only), or both.
text* string
mode updown | mirror | both (default: updown)
Try it out
Copy as
leet
Convert text to leetspeak. "basic" substitutes a e i o t s; "full" also does b g l z.
text* string
level basic | full (default: basic)
Try it out
Copy as
forge
Run a chain of operations (a "recipe") over an input, like CyberChef / the /forge web tool. Operations run top to bottom; output of each feeds the next, so chains like From Base64 → Gunzip → JSON Beautify keep byte fidelity. Categories: Encoding (to/from base64, base32, hex, binary, decimal, url, html, char codes), Hashing (md5, sha1/256/384/512, crc32, hmac), Compression (gzip/gunzip, zlib, raw deflate/inflate), Ciphers (rot13, rot47, caesar, atbash, xor, morse), Text (case, sort/unique/reverse lines, find-replace, head/tail, extract), Data (json beautify/minify), Display (hexdump). Pass list_operations:true to get the full catalogue of op ids and their args. Binary input: base64-encode it and start the recipe with from-base64. Note: the regex ops (filter-lines, regex find-replace) are web-only.
input string The input data as UTF-8 text. For binary, base64-encode it and begin the recipe with a from-base64 step.
recipe array Ordered operations. Each item is { "op": "<id>", "args": { ... } } — e.g. [{"op":"to-base64"},{"op":"upper"}]. See list_operations for ids/args.
output auto | utf8 | base64 | hex How to render a binary result: auto = text when printable UTF-8 else base64. (default: auto)
list_operations boolean If true, ignore input/recipe and return the operation catalogue as JSON. (default: false)
Try it out
Copy as
ohms_law
Ohm's law solver. Provide exactly two of voltage (V), current (I, amps), resistance (R, ohms) and power (P, watts); returns all four as JSON.
voltage number Volts
current number Amps
resistance number Ohms
power number Watts
Try it out
Copy as
resistor_color_code
Decode resistor color bands into a resistance value. Give 4, 5, or 6 band color names (digits, multiplier, tolerance, optional temp-coefficient). Returns ohms, tolerance and range as JSON.
bands* array Band colors in order, e.g. ["yellow","violet","red","gold"]
Try it out
Copy as
led_resistor
Series resistor for an LED or series string. Inputs: supply (V), led_forward (V), current_ma (mA), count (LEDs in series, default 1). Returns the exact resistor, voltage across it and power, as JSON.
supply* number Supply voltage (V)
led_forward* number LED forward voltage (V)
current_ma* number Forward current (mA)
count number LEDs in series (default: 1)
Try it out
Copy as
voltage_divider
Two-resistor voltage divider. Inputs: vin (V), r1 (ohms, top), r2 (ohms, bottom). Returns output voltage, current and power as JSON.
vin* number Input voltage (V)
r1* number Top resistor (ohms)
r2* number Bottom resistor (ohms)
Try it out
Copy as
filter_cutoff
Cutoff/resonant frequency of a passive filter. type "rc" needs r (ohms) + c (farads); "rl" needs r + l (henries); "lc" needs l + c. Returns frequency in Hz as JSON.
type rc | rl | lc (default: rc)
r number Resistance (ohms)
c number Capacitance (farads)
l number Inductance (henries)
Try it out
Copy as
timer_555
555 timer calculator. mode "astable" needs r1, r2 (ohms) + c (farads) and returns frequency, period and duty cycle; mode "monostable" needs r + c and returns pulse width. JSON out.
mode astable | monostable (default: astable)
r1 number
r2 number
r number
c number
Try it out
Copy as
reactance
Reactance of a capacitor or inductor at a frequency. Provide frequency (Hz) and one of capacitance (farads) or inductance (henries). With both, also returns the LC resonant frequency. JSON out.
frequency* number Frequency in Hz
capacitance number Capacitance in farads
inductance number Inductance in henries
Try it out
Copy as
wire_gauge
American Wire Gauge properties for a gauge number (awg, -3 = 0000 to 40). Returns diameter (mm), cross-section (mm²) and copper resistance per metre at 20 °C as JSON.
awg* number Gauge number, -3 (0000) to 40
Try it out
Copy as
decibels
Convert between a ratio and decibels. mode "power" uses 10·log10, "voltage" uses 20·log10. Provide ratio to get dB, or db to get the ratio. JSON out.
mode power | voltage (default: power)
ratio number Linear ratio (out/in), > 0
db number Decibels
Try it out
Copy as
opamp_gain
Closed-loop gain of an op-amp from its resistors. config "noninverting" gives 1 + Rf/Rin; "inverting" gives -Rf/Rin. Optional vin returns the output. JSON out.
config noninverting | inverting (default: noninverting)
rf* number Feedback resistor (ohms)
rin* number Input / ground-leg resistor (ohms)
vin number Optional input voltage (V)
Try it out
Copy as
lm317
LM317 regulator output. Provide r1 and r2 (ohms) for Vout = 1.25·(1 + R2/R1), or provide r1 and target_vout to solve for R2. JSON out.
r1* number R1, adj→out (ohms)
r2 number R2, adj→gnd (ohms)
target_vout number Desired output voltage (V) — returns R2
Try it out
Copy as
voltage_drop
Voltage drop down a cable run (DC / 1-phase / 3-phase) from length, current and cross-section. Returns drop, percentage, load voltage and power lost.
current_a* number Load current (A)
length_m* number One-way conductor length (m)
area_mm2* number Conductor cross-section (mm²)
supply_v* number Supply voltage (V)
material copper | aluminium (default: copper)
system dc | 1phase | 3phase (default: dc)
Try it out
Copy as
pcb_trace_width
Minimum PCB copper trace width for a current using IPC-2221. Returns width (mm and mil) and cross-section; add length_mm for resistance and voltage drop.
current_a* number Trace current (A)
temp_rise_c number Allowed temperature rise (°C) (default: 10)
copper_oz number Copper weight (oz) (default: 1)
layer external | internal (default: external)
length_mm number Trace length (mm), optional
Try it out
Copy as
battery_pack
Series/parallel battery pack totals — pack voltage, capacity, energy and cell count from a cell spec.
cell_voltage* number Cell nominal voltage (V)
cell_capacity_mah* number Cell capacity (mAh)
series* integer Cells in series (S)
parallel* integer Cells in parallel (P)
cell_full_v number Cell full-charge voltage (V), optional
Try it out
Copy as
zener_resistor
Series resistor for a zener shunt regulator. Returns the resistor (and nearest E12), its power, and worst-case zener dissipation.
vin* number Input voltage (V)
vz* number Zener voltage (V)
load_ma* number Load current (mA)
izmin_ma number Minimum zener current (mA) (default: 5)
Try it out
Copy as
bjt_bias
DC operating point of a voltage-divider biased BJT. Returns IB/IC/IE, node voltages, VCE and the region (active/saturation/cutoff).
vcc* number Supply voltage (V)
beta* number Current gain hFE
r1_ohm* number R1, Vcc→base (Ω)
r2_ohm* number R2, base→gnd (Ω)
rc_ohm* number Collector resistor (Ω)
re_ohm* number Emitter resistor (Ω)
vbe number Base-emitter voltage (V) (default: 0.7)
Try it out
Copy as
psu_ripple
Smoothing capacitor for a rectifier from load current and target ripple. Returns required capacitance, nearest standard value and actual ripple.
load_ma* number Load current (mA)
ripple_vpp* number Target peak-to-peak ripple (V)
rectifier full | half (default: full)
line_hz number Mains frequency (Hz) (default: 50)
Try it out
Copy as
fuse_select
Recommended fuse rating from load current (and optional inrush). Applies 125% headroom + ambient derating, snaps to the nearest IEC value and suggests fast/slow-blow.
load_a* number Steady load current (A)
inrush_a number Inrush/surge current (A), optional
ambient_c number Ambient temperature (°C) (default: 25)
Try it out
Copy as
pwm_average
PWM duty cycle to average/RMS voltage and timing (or supply→duty for a target average).
supply_v* number Supply voltage (V)
duty_pct number Duty cycle (0–100)
freq_hz number Switching frequency (Hz), optional
target_avg_v number Desired average voltage — returns the duty needed
Try it out
Copy as
ntc_thermistor
Convert NTC thermistor resistance ↔ temperature using the Beta model (r0/beta) or Steinhart-Hart (a/b/c).
model beta | steinhart (default: beta)
direction r_to_t | t_to_r (default: r_to_t)
r0_ohm number Resistance at 25 °C (Beta model) (default: 10000)
beta number Beta coefficient (K) (default: 3950)
a number Steinhart-Hart A
b number Steinhart-Hart B
c number Steinhart-Hart C
resistance_ohm number Measured resistance (for r_to_t)
temp_c number Temperature °C (for t_to_r)
Try it out
Copy as
wavelength
Convert between frequency and wavelength (λ = velocity_factor · c / f). Give frequency_hz or wavelength_m; returns the other plus the radio band.
frequency_hz number Frequency in Hz
wavelength_m number Wavelength in metres
velocity_factor number Velocity factor (1 = free space) (default: 1)
Try it out
Copy as
antenna_length
Physical antenna lengths (full/half/quarter/⅝-wave) from a frequency, scaled by a velocity factor for real wire.
frequency_hz* number Frequency in Hz
velocity_factor number Velocity factor (≈0.95 for wire) (default: 0.95)
Try it out
Copy as
fspl
Free-space path loss in dB from distance and frequency: 20·log10(d_km) + 20·log10(f_MHz) + 32.44.
distance_km* number Distance in km
frequency_mhz* number Frequency in MHz
Try it out
Copy as
lora_airtime
LoRa time-on-air (Semtech formula) from payload, SF, bandwidth and coding rate. Times in milliseconds; also returns symbols, bitrate and the low-data-rate-optimisation flag.
payload_bytes* integer PHY payload length (bytes)
sf* integer Spreading factor 7-12
bandwidth_hz integer Bandwidth in Hz (125000/250000/500000) (default: 125000)
coding_rate integer Coding-rate denominator 5-8 (4/5..4/8) (default: 5)
preamble integer (default: 8)
explicit_header boolean (default: true)
crc boolean (default: true)
Try it out
Copy as
modbus_address
Decode a Modbus data address (5-/6-digit Modicon convention) to its register table, function code, access and zero-based PDU offset.
address* integer Modbus data address, e.g. 40001
Try it out
Copy as
meshtastic_airtime
Time-on-air (ms) for a Meshtastic packet given a modem preset and data payload size (the 16-byte header and 16-symbol preamble are included).
preset string Modem preset: LongFast, ShortFast, MediumSlow, etc. (default: LongFast)
payload_bytes integer Data payload size in bytes (default: 30)
Try it out
Copy as
meshtastic_channel_url
Build a shareable Meshtastic channel URL (meshtastic.org/e/#…) from a name, modem preset and region. psk: "default", "none", or a hex/base64 key.
name string (default: )
preset string (default: LongFast)
region string (default: UNSET)
psk string "default", "none", or a 16/32-byte key as hex (default: default)
Try it out
Copy as
meshtastic_channel_decode
Decode a Meshtastic channel URL (meshtastic.org/e/#…) back to its name, modem preset, region and key type.
url* string
Try it out
Copy as
solar_yield
Estimate annual rooftop solar yield (kWh/year) from array size, regional specific yield, orientation and tilt factors.
kwp* number Array size (kWp)
specific_yield number Regional specific yield (kWh/kWp/year, optimal) (default: 1000)
orientation_factor number Orientation factor 0-1 (south = 1) (default: 1)
tilt_factor number Tilt factor 0-1 (optimal = 1) (default: 1)
Try it out
Copy as
battery_roi
Home-battery payback: annual saving and payback years from capacity, price, efficiency, daily cycles and buy vs feed-in prices.
capacity_kwh* number
price* number
efficiency_pct number (default: 90)
cycles_per_day number (default: 1)
buy_price* number Grid buy price per kWh
feed_in_price number Export/feed-in price per kWh (default: 0)
cycle_life number (default: 6000)
Try it out
Copy as
ev_charge_time
EV charging time between two states of charge, modelling DC rapid-charge taper above 80%.
capacity_kwh* number
power_kw* number
current_soc number (default: 20)
target_soc number (default: 80)
efficiency_pct number (default: 90)
Try it out
Copy as
co2_device
Yearly energy and CO₂ for one device from power, daily run-time and grid carbon intensity (g/kWh).
watts* number
hours_per_day* number
quantity integer (default: 1)
intensity_g_per_kwh number (default: 400)
Try it out
Copy as
semver_compare
Compare two semantic versions. Returns -1 (a < b), 0 (equal) or 1 (a > b), respecting prerelease precedence.
a* string
b* string
Try it out
Copy as
semver_satisfies
Does a version satisfy a range? Supports caret, tilde, comparators, x-ranges, hyphen ranges and ||.
version* string
range* string
Try it out
Copy as
semver_bump
Compute the next version for a bump type: major, minor, patch, premajor, preminor, prepatch, prerelease.
version* string
type major | minor | patch | premajor | preminor | prepatch | prerelease (default: patch)
Try it out
Copy as
dockerfile_lint
Lint a Dockerfile against Hadolint-style best-practice rules. Returns findings with line, rule code, severity and message.
text* string
Try it out
Copy as
openapi_validate
Structurally validate an OpenAPI 3.x / Swagger 2.0 document (JSON or YAML). Returns valid flag, version, errors, warnings and a summary.
text* string
Try it out
Copy as
dew_point
Dew point (°C) from air temperature (°C) and relative humidity (%), via the Magnus formula.
temp_c* number
humidity_pct* number
Try it out
Copy as
feels_like
Apparent ("feels-like") temperature in °C — wind chill when cold, heat index when hot — from temp (°C), wind (km/h) and humidity (%).
temp_c* number
wind_kmh number (default: 0)
humidity_pct number (default: 50)
Try it out
Copy as
moon_phase
Moon phase for a date (ISO 8601, or now if omitted): name, illuminated fraction and age in days.
date string ISO date/time, e.g. 2026-06-21
Try it out
Copy as
sun_position
Sun azimuth (° from north) and altitude (° above horizon) for a date/time and location.
date string
lat* number
lon* number
Try it out
Copy as
gps_distance
Great-circle distance (km) and initial bearing (°) between two lat/lon points, via Haversine.
lat1* number
lon1* number
lat2* number
lon2* number
Try it out
Copy as
coords_convert
Convert decimal-degree lat/lon to DMS strings and an MGRS grid reference.
lat* number
lon* number
Try it out
Copy as
magnetic_declination
Magnetic declination (° east-positive, true = magnetic + declination) from the World Magnetic Model 2025, for a lat/lon, optional elevation (m) and date.
lat* number
lon* number
elevation_m number (default: 0)
date string ISO date, e.g. 2026-07-31 (now if omitted)
Try it out
Copy as
calories_burned
Calories burned: MET × body-weight(kg) × hours. Pass met, weight_kg and minutes.
met* number
weight_kg* number
minutes* number
Try it out
Copy as
hiking_time
Naismith's-rule hiking time (hours) from distance (km) and ascent (m), with adjustable flat pace and climb rate.
distance_km* number
ascent_m number (default: 0)
pace_kmh number (default: 5)
climb_rate_mh number (default: 600)
Try it out
Copy as
typoglycemia
Scramble the inner letters of each word (4+ letters), keeping the first and last in place — the text stays readable.
text* string
Try it out
Copy as
noisy_text
Add Unicode combining marks to text for a glitch / zalgo effect. amount = marks per character (default 5).
text* string
amount integer (default: 5)
Try it out
Copy as
fake
Generate realistic but fake test data — names, emails, addresses, Luhn-valid cards, IBANs, plus Dutch KVK / BSN / BTW numbers, a full persona, or a full company profile. Output as a plain list, JSON, SQL INSERT, or Postgres COPY.
type* persona | company_profile | name | first_name | last_name | username | email | phone_nl | phone | birthdate | bsn | address | street | postcode | city | country | company | kvk | vat | job | iban | bic | card | uuid | ipv4 | ipv6 | mac | color | date | string | number What to generate (default: name)
count integer How many rows (1–500) (default: 1)
format list | json | csv | sql | postgres Output format (default: json)
Try it out
Copy as
fake_schema
Generate fake test data from a custom schema you define: a list of named fields, each with a type (name, email, uuid, bsn, iban, city, …). Produces many row-objects keyed by your field names. Output as JSON, CSV, SQL INSERT, or Postgres COPY to seed a database. Use the `fake` tool instead for a single field or a full persona/company profile.
fields* array The schema: one entry per column.
count integer How many rows (1–500) (default: 25)
format list | json | csv | sql | postgres Output format (default: json)
table string Table / dataset name for SQL and Postgres output (default: fake_data)
Try it out
Copy as
number_format
Format a number as words, hex, binary, octal, scientific notation and a grouped decimal. Returns JSON.
value* number The number to format
Try it out
Copy as
unit_convert
Convert a value between units of length, mass, data, speed, area, volume or temperature. Returns JSON { value, from, to, result }.
value* number
category* length | mass | data | speed | area | volume | temperature
from* string Source unit (e.g. km, lb, MB, mph, m2, l, C)
to* string Target unit
Try it out
Copy as
percentage
Everyday percentage math. mode: percent_of (x% of y), what_percent (x is what % of y), change (% change x→y), tip (bill x at rate%, optional split), vat (add/remove a tax rate on x). Returns JSON.
mode* percent_of | what_percent | change | tip | vat
x number
y number
rate number Tip/VAT percentage (tip and vat modes)
split integer People to split a tip across (default: 1)
direction add | remove VAT: add tax to a net amount, or remove it from a gross amount (default: add)
Try it out
Copy as
prime
Primality test and integer factorization, with the next and previous primes. Returns JSON. Integers up to ~18 digits.
value* string A positive integer, as text
Try it out
Copy as
number_stats
Descriptive statistics for a list of numbers (space/comma/newline separated): count, sum, min, max, range, mean, median, mode, sample & population variance/stddev, and percentiles. Returns JSON.
numbers* string Numbers separated by spaces, commas or newlines
Try it out
Copy as
fraction
Evaluate an exact fraction/arithmetic expression (e.g. "3/4 + 0.5 * 2") and return the reduced fraction, decimal and mixed-number forms. Operators + - * / and parentheses.
expression* string
Try it out
Copy as
gcd_lcm
Greatest common divisor and least common multiple of a list of integers, with Bézout coefficients for two numbers. Returns JSON.
numbers* string Integers separated by spaces or commas
Try it out
Copy as
combinatorics
Factorial, permutations (nPr), combinations (nCr), permutations/combinations with repetition, and derangements (!n) for integers 0 ≤ r, n ≤ 5000. Big integers returned as strings.
n* integer
r* integer
Try it out
Copy as
solve_equation
Solve a polynomial from its coefficients (highest power first): [a,b] linear, [a,b,c] quadratic, [a,b,c,d] cubic. Returns JSON roots (real and complex).
coefficients* array 2, 3 or 4 coefficients, highest power first
Try it out
Copy as
matrix
Matrix operations: add, subtract, multiply (a and b); transpose, determinant, inverse, rank, trace (a only). Rows separated by newlines or ";", cells by spaces or commas. Returns JSON.
op* add | subtract | multiply | transpose | determinant | inverse | rank | trace
a* string Matrix A (rows on separate lines)
b string Matrix B (add/subtract/multiply)
Try it out
Copy as
finance
Finance math. mode "savings": future value of a principal plus monthly deposits at an annual rate. mode "loan": monthly payment, total interest and payoff time. Returns JSON.
mode* savings | loan
principal* number Starting amount / loan amount
annual_rate* number Annual interest rate, percent
years* number
monthly_deposit number savings: added each month (default: 0)
compounds_per_year integer (default: 12)
extra_monthly number loan: extra principal each month (default: 0)
Try it out
Copy as
bitwise
Bitwise calculator over a fixed width (8/16/32/64): and, or, xor (a,b); not, shl, shr (logical), sar (arithmetic) (a, with b as shift). Inputs accept 0x/0b/0o prefixes or decimal. Returns JSON.
op* and | or | xor | not | shl | shr | sar
a* string First operand
b string Second operand (and/or/xor) or shift amount (shl/shr/sar)
width 8 | 16 | 32 | 64 (default: 32)
Try it out
Copy as
float_inspect
Decompose a number into its IEEE-754 form (sign, exponent, mantissa, hex bytes, class). precision 32 or 64. Give a decimal value, or a hex bit-pattern when input=hex. Returns JSON.
value* string A decimal number, or a hex bit-pattern when input=hex
precision 32 | 64 (default: 64)
input decimal | hex (default: decimal)
Try it out
Copy as
text_binary
Convert text to space-separated 8-bit binary (UTF-8 bytes), or decode binary back to text. mode encode|decode.
text* string
mode encode | decode (default: encode)
Try it out
Copy as
unicode_inspect
Break text into its Unicode code points: character, U+ value, decimal, HTML entity and UTF-8 bytes. Returns JSON (capped at 4096 code points).
text* string
Try it out
Copy as
hexdump
Classic hex dump of text (UTF-8): 16 bytes per row with offset, hex columns and an ASCII gutter. Returns plain text (input capped at 64 KB).
text* string
Try it out
Copy as
string_ops
String utilities: trim, trim_lines, upper, lower, pad_left, pad_right, truncate, wrap, repeat, number_lines, remove_blank, remove_dupes, reverse, reverse_lines, count. "n" is the numeric argument; "fill" the pad char; "needle" the substring for count.
text* string
op* trim | trim_lines | upper | lower | pad_left | pad_right | truncate | wrap | repeat | number_lines | remove_blank | remove_dupes | reverse | reverse_lines | count
n integer Numeric argument (pad width, truncate/wrap length, repeat count)
fill string Pad character (default: )
needle string Substring to count (op=count)
Try it out
Copy as
whitespace_inspect
Reveal invisible characters in text — tabs, non-breaking spaces, zero-width characters, BOM and carriage returns — as glyphs, with a count of each. Returns JSON.
text* string
Try it out
Copy as
markdown_table
Turn CSV/TSV (or pipe/semicolon-delimited) data into an aligned GitHub-flavored Markdown table. First row is the header. align: left, center or right.
text* string
align left | center | right (default: left)
Try it out
Copy as
query_string
Parse a URL or query string into its parameters (URL-decoded; repeated keys preserved). Returns JSON.
input* string A full URL or a raw query string
Try it out
Copy as
env_parse
Parse a .env file into a JSON object (action "parse"), or render a JSON object back into .env lines (action "generate").
text* string
action parse | generate (default: parse)
Try it out
Copy as
csv_json
Convert CSV to a JSON array of objects (direction "csv2json"; first row is headers) or a JSON array back to CSV ("json2csv"). delimiter defaults to comma.
input* string
direction csv2json | json2csv (default: csv2json)
delimiter string (default: ,)
Try it out
Copy as
cidr
IPv4 subnet calculator. Give an address or CIDR (e.g. 192.168.1.10/24); returns network, broadcast, host range, count, mask, wildcard and the address as decimal/hex. JSON.
cidr* string IPv4 address or CIDR, e.g. 10.0.0.0/24
Try it out
Copy as
subnet_vlsm
Carve an IPv4 network into variable-length subnets that fit a list of host requirements (largest first). base is a CIDR; requirements is a list like ["Eng:500","Sales:100"]. Returns JSON.
base* string Base network in CIDR, e.g. 10.0.0.0/16
requirements* array Each "name:hosts" or just a host count
Try it out
Copy as
user_agent
Parse a User-Agent string into browser, engine, OS and device type. Uses fixed internal patterns. Returns JSON.
ua* string The User-Agent string
Try it out
Copy as
password_hash
Hash a password with scrypt (action "hash"), or verify a password against a stored scrypt hash (action "verify"). Stored format: scrypt$N$r$p$salt_b64$hash_b64.
action hash | verify (default: hash)
password* string
stored string The stored hash (action=verify)
Try it out
Copy as
totp
Generate a TOTP (RFC 6238) one-time code from a Base32 secret. Pass unixtime for a specific moment (deterministic); otherwise the current time is used. Returns JSON.
secret* string Base32 secret
digits 6 | 7 | 8 (default: 6)
period integer (default: 30)
algorithm SHA-1 | SHA-256 | SHA-512 (default: SHA-1)
unixtime integer Unix seconds to compute for (default: now)
Try it out
Copy as
nato
Spell text using the NATO phonetic alphabet (Alfa, Bravo, …). Digits are spelled out; spaces become "/"; unknown characters pass through.
text* string
Try it out
Copy as
mock_text
Convert text to alternating-caps "mocking SpongeBob" style. Non-letters are left unchanged.
text* string
Try it out
Copy as
fancy_text
Restyle text with Unicode look-alikes: bold, italic, bold_italic, script, fraktur, double_struck, monospace, fullwidth, circled, squared, small_caps, strikethrough, underline.
text* string
style* bold | italic | bold_italic | script | fraktur | double_struck | monospace | fullwidth | circled | squared | small_caps | strikethrough | underline
Try it out
Copy as
dice
Roll dice in NdM±K notation (e.g. "2d6 + 1d4 - 1") using a cryptographically secure RNG. N=1..100, M=2..1000. Returns JSON with the total and a per-term breakdown.
notation* string Dice expression, e.g. 4d6+2
Try it out
Copy as
golden_hour
Blue hour, golden hours and twilight for a location and date. Times are ISO-8601 UTC (null at high latitudes where the event does not occur). Returns JSON.
lat* number
lon* number
date* string YYYY-MM-DD
Try it out
Copy as
sun_times
Sunrise, sunset, solar noon, civil twilight and day length for a location and date. Times are ISO-8601 UTC. Returns JSON.
lat* number
lon* number
date* string YYYY-MM-DD
Try it out
Copy as
htpasswd
Build an HTTP Basic "Authorization" header and an Apache .htpasswd {SHA} line for a user/password. Returns JSON. (No bcrypt — generate that with `htpasswd -B` on a server.)
user* string
password* string
Try it out
Copy as
sql_format
Pretty-print / format a SQL query. Pick a dialect; optionally upper-case keywords and set the indent width. Returns the formatted SQL.
text* string The SQL to format
language sql | mysql | postgresql | mariadb | sqlite | plsql | tsql | bigquery | snowflake (default: sql)
uppercase boolean Upper-case SQL keywords (default: true)
tab_width integer (default: 2)
Try it out
Copy as
commit_lint
Lint a commit message against Conventional Commits — type, scope, breaking change, header length — and the semver bump it implies. Returns JSON { verdict, type, scope, breaking, description, implied_bump, checks }.
message* string The full commit message (header + optional body)
Try it out
Copy as
bip39
Generate a BIP39 mnemonic from fresh or supplied entropy (action "generate"), or validate a mnemonic and recover its entropy (action "validate"). Returns JSON.
action* generate | validate (default: generate)
strength 128 | 160 | 192 | 224 | 256 Entropy bits (generate): 128->12 words … 256->24 words (default: 128)
entropy_hex string Generate from this hex entropy instead of random (for reproducible output)
mnemonic string The space-separated phrase to validate (action=validate)
Try it out
Copy as
gitignore
Compose a .gitignore from per-stack templates. stacks is a list of names from: Node, Python, Go, Rust, Java, .NET, C/C++, macOS, Windows, Linux, JetBrains, VS Code, Vim, Terraform. Returns the file text.
stacks* array Template names to include, in order
Try it out
Copy as
clean_url
Unwrap redirect-wrapped links (Outlook SafeLinks, Google, Facebook, YouTube, Proofpoint urldefense) and strip common tracking parameters (utm_*, fbclid, gclid, ...). Returns the cleaned URL and the list of changes.
url* string The URL to clean
Try it out
Copy as
ip_range_to_cidr
Convert an inclusive IPv4 address range (start to end) into the minimal set of CIDR blocks that covers it exactly.
start* string First IPv4 address, e.g. 10.0.0.0
end* string Last IPv4 address, e.g. 10.0.0.255
Try it out
Copy as
workdays_between
Count business days between two dates (inclusive), skipping weekends and an optional list of holidays.
start* string Start date, YYYY-MM-DD
end* string End date, YYYY-MM-DD (inclusive)
holidays array Holiday dates to skip, YYYY-MM-DD
weekend array Weekend day numbers, 0=Sunday..6=Saturday (default [0,6])
Try it out
Copy as
cbor_decode
Decode CBOR bytes (hex or base64, auto-detected) into JSON. Byte strings become h'..' hex strings, integers beyond 2^53-1 become strings, tags become {tag,value} objects.
data* string CBOR bytes as hex or base64
Try it out
Copy as
prompt_injection_scan
Lint (usually untrusted) text for prompt-injection patterns: instruction-override phrases, invisible/zero-width unicode, Unicode Tags-block smuggling, bidi (Trojan-Source) controls, and markdown/HTML image exfiltration. Returns JSON with an overall risk level and per-finding details. A lint, not a guarantee.
text* string The text to scan
Try it out
Copy as
llmstxt_validate
Validate an llms.txt file against the llmstxt.org format (required H1 title, optional blockquote summary, H2 link sections). Returns JSON with ok, per-issue diagnostics (error/warn/info + line) and stats.
text* string The llms.txt content to validate
Try it out
Copy as
agents_md_grade
Grade an AGENTS.md / CLAUDE.md for completeness against the sections coding agents rely on (overview, setup, build/run, testing, conventions, structure, git/PR, gotchas). Returns JSON with a 0–100 score, letter grade, per-section presence and improvement hints.
text* string The AGENTS.md / CLAUDE.md content to grade
Try it out
Copy as
protobuf_decode
Decode raw Protocol Buffers bytes (hex or base64, auto-detected) without the .proto schema — like `protoc --decode_raw`. Returns JSON describing each wire-format field: its number, wire type and every plausible reading (a varint as uint/int/sint/bool, a fixed value as int/float, a length-delimited blob as a nested message, UTF-8 string or hex bytes). 64-bit integers are returned as strings.
data* string Protobuf bytes as hex or base64
format auto | hex | base64 How to interpret data (default auto-detect) (default: auto)
Try it out
Copy as
diff
Compare two texts and return the differences. mode "lines" (default), "words" or "chars" returns an array of {type,value} parts (type: add/remove/context); mode "patch" returns a unified diff patch.
before* string Original text
after* string Changed text
mode lines | words | chars | patch (default: lines)
Try it out
Copy as
jsondiff
Deep structural diff of two JSON documents (ported from /jsondiff): key order is ignored, arrays are compared by index. Returns a summary and a list of added/removed/changed/type-mismatch rows with JSON Pointer-ish paths.
a* string Document A (old), as JSON text
b* string Document B (new), as JSON text
Try it out
Copy as
jsonschema
Validate a JSON document against a JSON Schema (ported from /jsonschema: the same draft-07 / 2020-12 keyword subset — type, enum, const, properties/required/additionalProperties, items/prefixItems, allOf/anyOf/oneOf/not, local $ref, numeric/string/array/object bounds), or infer a draft-07 JSON Schema from a sample JSON document.
mode validate | infer (default: validate)
data* string JSON document: the data to validate, or the sample to infer a schema from
schema string JSON Schema as JSON text (required when mode is "validate")
title string Root schema title, used when mode is "infer" (default: Root)
Try it out
Copy as
types
Infer TypeScript types from a JSON document (ported from /types): objects become exported interfaces, arrays merge shapes across elements (producing unions and optional fields for mixed shapes), and repeated names get suffixed.
data* string JSON document to infer types from
rootName string Name for the root type (default: Root)
Try it out
Copy as
triangle
Solve a triangle from any 3 known measurements (sides a/b/c and/or angles A/B/C in degrees, at least one side). Ported from /triangle: handles SSS, SAS, ASA/AAS, and returns both solutions for the ambiguous SSA case. Returns the case, each solution's sides/angles, and area/perimeter/heights.
a number side a, opposite angle A
b number side b, opposite angle B
c number side c, opposite angle C
A number angle A in degrees
B number angle B in degrees
C number angle C in degrees
Try it out
Copy as

* = required. All tools are pure transforms — no data is stored.

Send feedback

How this works

Stores only this report's id in your browser (localStorage) so a small note can pop up here once it ships. No account, nothing sent to us, no tracking. Clearing this site's data forgets it.

Changelog

What changed, and when. Newest first.

Loading…