app.ionelul.com tools

com.ionelulPublished by ionelul.comv0.12.0Updated Oct 30, 2026

Local tools: PDF, Office, e-Factura, OCR, images, video, speech, translation and nutrition.

Overview

AI-generated overview

A local stdio MCP server bundling offline utilities: PDF and Office conversion, e-Factura, text, image, video, speech, translation and nutrition tools.

What you can do
  • Inspect, merge, split, organize, edit, sign and fill PDF forms; convert PDFs to Excel or Word and Office files to PDF
  • Anonymize personal data in documents, compute legal deadlines and draft GDPR or payment letters, read and render Romanian e-Factura invoices
  • Strip image metadata, hash files, convert Markdown, Base64, UUIDs, colors, units, currencies and timestamps
  • Process text: Romanian diacritics, case conversion, stats, diffs, regex test and generation, extractive summaries, placeholder text
  • Translate text and subtitle files locally, and look up foods, barcodes, meal macros and daily nutrition targets
When to use it
Useful when you want document, text and conversion chores handled on your own machine without cloud services, especially for PDF workflows, Romanian legal and invoicing documents, or quick text and nutrition calculations.
Requirements
Runs as a local npm package via npx on a desktop machine. FFMPEG_PATH can point to an ffmpeg binary for video, audio and speech tools (defaults to ffmpeg on the PATH). Some tools need extra local software: XeLaTeX/TeX Live for CV typesetting, and the first translation call installs models. Currency conversion fetches ECB rates over the network.
Before you install
Several tools write files to disk (PDF edits, conversions, generated PDFs and documents). pdf_edit can add password protection, and document_anonymize rewrites personal data, so review outputs. Translation downloads models on first use. food_barcode sends only the barcode to Open Food Facts, and currency_convert fetches rates from an external API. Nutrition figures are estimates, not medical advice.

Installation

In SourceWeft

  1. Open app.ionelul.com tools in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Tools

63

pdf_info

PDF info

Page count, page sizes, metadata, encryption and form fields of a PDF.

Parametersfilerequiredpassword

pdf_merge

Merge PDFs

Joins PDFs into one, in the order given. Each input can pick its pages ("1-3, 5, 8-").

Parametersfilesrequiredoutputrequiredoverwrite

pdf_split

Split PDF

Splits a PDF into several files: one per range ("1-3, 4-6") or every N pages.

ParametersfilerequiredeveryrangespasswordoutputDiroverwrite

pdf_organize

Reorder, rotate or delete PDF pages

Builds a new PDF from the pages listed, in that order (pages left out are deleted), optionally rotating some of them.

ParametersfilerequiredpagesoutputrotatepasswordoverwriterotatePages

pdf_edit

Watermark, number, protect or unlock a PDF

Adds a text watermark and/or page numbers, sets metadata, and protects with a password. With `password` and no `protect`, the output is an unlocked copy.

ParametersfilerequiredoutputprotectmetadatapasswordoverwritewatermarkpageNumbers

pdf_form_read

Read PDF form fields

Lists the fillable (AcroForm) fields of a PDF with their type, current value and options.

Parametersfilerequiredpassword

pdf_form_fill

Fill a PDF form

Writes values into fillable fields (names from pdf_form_read). Diacritics are supported.

Parametersfilerequiredoutputvaluesrequiredflattenpasswordoverwrite

pdf_to_excel

PDF to Excel

Finds tables in a PDF from its text layout and writes them to .xlsx (or .csv). Works on statements, price lists and reports; not on scans.

ParametersfilerequiredlayoutoutputnumberspasswordoverwriteincludeText

pdf_to_word

PDF to Word

Rebuilds the text of a PDF as an editable .docx: paragraphs, headings, bold and italic. Tables and columns come out as paragraphs; scanned pages are skipped.

Parametersfilerequiredoutputpasswordoverwrite

pdf_sign

Sign or stamp a PDF

Places a signature, stamp or logo image (a transparent PNG works best; JPEG, WebP, AVIF and JPEG XL too) on chosen pages, at a corner or at exact millimetres, keeping its proportions. This is a visible signature, not a cryptographic (digital certificate) one.

ParametersxMMyMMfilerequiredimagerequiredpagesoutputwidthMMmarginMMpasswordpositionoverwrite

office_to_pdf

Word, Excel or PowerPoint to PDF

Converts .docx, .xlsx, .pptx or .odp to PDF without Office installed. Layout is redrawn, so it is close to but not identical with Office output; GIF/WebP/BMP pictures show as placeholders.

ParametersfilerequiredoutputgridlinesoverwritepageNumbersincludeHidden

document_anonymize

Anonymize a document

Finds personal data in a .docx or text file (or in `text`) and replaces it: names after titles and court roles (Mr., Frau, domnul, reclamantul…), addresses, national ID numbers checked by their control digit (CNP, PESEL, EGN, TC Kimlik, DNI/NIE, codice fiscale, NIR, SSN, NINO, rodné číslo), ID card and passport numbers, dates of birth, e-mails, phones, IBANs and cards, licence plates and IPs; companies and places on request. The same person always gets the same label ([Person 1]). Word files keep their formatting; author fields are cleared. Rules only (no AI model), so names with no title before them are found only when they also appear after one, or via `terms`. The originals are never returned: only counts, so the result can be shown to a model safely. Run it before reading a confidential file.

Parametersfilehidekeeptextstyletermsoutputlanguageoverwritekey_output

efactura_read

Read and check an e-Factura

Reads a Romanian e-Factura (UBL 2.1 XML, or the .zip downloaded from ANAF SPV) and checks that its totals add up (EN 16931 BR-CO rules). Does not validate against the ANAF schema.

Parametersfilerequiredfull

efactura_to_pdf

e-Factura to PDF

Turns an e-Factura XML (or every invoice in an ANAF .zip) into a readable A4 PDF.

ParametersfilerequiredlanguageoutputDiroverwrite

cv_to_pdf

CV to PDF with LaTeX

Typesets a CV with XeLaTeX (TeX Live 2026) on this machine and writes the PDF. Give structured `cv` data for the Classic, Modern or Academic template (Academic: Latin Modern with small caps, a skills table, education grouped by school), or your own LaTeX in `tex`/`texFile`. Projects and awards take one line as a paragraph, several as bullets. Only bundled packages are available (fontspec, geometry, xcolor, enumitem, titlesec, hyperref, tabularx, multicol, paracol, fontawesome5 and their dependencies); fonts: Linux Libertine, Biolinum, Latin Modern. The first call downloads the engine (~21 MB) from app.ionelul.com and caches it; the CV is never sent anywhere.

ParameterscvtexlangaccentoutputsaveTextexFiletemplateoverwrite

image_strip_metadata

Remove image metadata

Removes EXIF (GPS, camera, dates), XMP, IPTC and comments from JPEG, PNG and WebP without re-encoding: pixels stay byte for byte. Rotated photos keep only their orientation.

ParametersfilesrequiredinPlaceoutputDir

file_checksum

File checksums

Hashes files (streamed, so large files are fine) and optionally verifies them against an expected hash or a checksum file (sha256sum, md5sum or BSD format).

ParametersfilesrequiredexpectedalgorithmschecksumFile

romanian_diacritics

Romanian diacritics

Adds missing Romanian diacritics (ă â î ș ț) from a dictionary of ~70,000 words, fixes the old cedilla letters (ş ţ to ș ț), or removes diacritics. With `add`, words that can be spelled more than one way get the most common form and are listed with their alternatives.

Parametersfilemoderequiredtextoutputoverwrite

text_stats

Text statistics

Counts words, characters (with and without spaces), sentences, paragraphs, lines and unique words; reading and speaking time; top keywords with their density.

Parametersfiletext

text_case

Change case and clean up text

Converts text to a case (upper, lower, sentence, title, capitalize, inverse, alternating, camel, pascal, snake, constant, kebab, dot) or cleans it up (trim spaces, collapse blank lines, join lines, unwrap lines broken by PDF copies, straight quotes, sort, dedupe or reverse lines). Locale-aware (Turkish i, Romanian ș).

Parameterscasefilelangtextoutputcleanupoverwrite

text_diff

Compare two texts

Line-by-line comparison of two texts or files, as a unified diff (like `diff -u`), with the number of lines added and removed.

ParametersleftrightcontextleftFilerightFileignoreCaseignoreWhitespace

base64

Base64 and URL encoding

Encodes text or any file to Base64 (optionally URL-safe or wrapped at 76 columns, e.g. for data: URLs and e-mail), decodes Base64 back to text or to a file, and percent-encodes or decodes URLs.

ParametersfilemoderequiredtextwrapoutputfullUrlurlSafeoverwrite

password_generate

Generate passwords

Generates passwords, passphrases (EFF long word list, 7,776 words) or PINs with a cryptographically secure random generator, without modulo bias, and reports their entropy and strength.

Parameterskindcountlowerupperwordsdigitslengthnumberexcludesymbolsseparatorcapitalize+1 more

uuid

Generate or inspect UUIDs

Generates random UUIDs (v4) or time-ordered ones (v7, sortable by creation time), or inspects a UUID: its version, variant and, for v7, the time it was made.

Parameterscountupperbraceshyphensinspectversion

markdown_to_html

Markdown to HTML

Converts Markdown (GitHub flavour: tables, task lists, fenced code) to an HTML fragment, or to a complete styled HTML page titled after the first heading.

Parametersfilepagetextoutputoverwrite

regex_test

Test a regular expression

Runs a JavaScript regular expression on a text: every match with its position and capture groups (numbered and named), and optionally the text with a replacement applied.

Parametersfiletextflagslimitpatternrequiredreplace

regex_generate

Write a regular expression

Writes a JavaScript regular expression, without AI: from examples of what should (and optionally should not) match, worked out run by run and checked on every example; or from a description, picked from a library of common patterns (email, URL, IP, IBAN, Romanian CNP/CUI/plates/phones, dates, times, money, UUID...); or from a format such as "DD.MM.YYYY" or "AA 99 AAA" (9 a digit, A an upper-case letter, a lower-case, X letter or digit, DD/MM/YYYY/HH/mm date and time parts, \ for a literal).

ParameterswholeexamplesdescriptioncounterExamples

text_summarize

Summarize a text

Extractive summary in any language: the sentences that best stand for the whole text (TextRank on TF-IDF), word for word and in their original order. No AI model, nothing invented.

Parametersfiletextshareoutputoverwrite

lorem_ipsum

Lorem ipsum

Placeholder text: paragraphs, sentences or words, optionally starting with the classic "Lorem ipsum dolor sit amet" and wrapped in <p> tags.

Parametershtmlunitcountclassic

translate

Translate text offline

Translates text or a text file (.txt, .md, .srt, .vtt, .csv) between en, ro, de, fr, es, it, pt, nl, pl, hu, cs, bg, uk, tr, ru with OPUS-MT and M2M100 AI models, on this machine. Lines, paragraphs and subtitle timings are kept. The source language is detected when left out. The first call installs Transformers.js with ONNX Runtime (about 450 MB); each model is downloaded once (OPUS-MT about 113 MB, M2M100 about 632 MB).

Parameterstorequiredfilefromtextoutputoverwrite

unit_convert

Convert units

Converts a value between units of one category, including temperature and fuel economy. Units by id: length: m, km, cm, mm, um, mi, yd, ft, in, nmi; mass: kg, g, mg, t, lb, oz, st, ct; volume: l, ml, m3, cm3, galus, galuk, qt, pt, cup, floz, tbsp, tsp; area: m2, km2, ha, cm2, mi2, ac, yd2, ft2, in2; temperature: c, f, k; speed: ms, kmh, mph, kn, fts, mach; time: ms, s, min, h, d, wk, mo, yr; data: bit, B, KB, MB, GB, TB, PB, KiB, MiB, GiB, TiB; energy: j, kj, cal, kcal, wh, kwh, btu, ev; power: w, kw, mw, hp, ps, btuh; pressure: pa, kpa, mpa, bar, mbar, atm, psi, mmhg; angle: deg, rad, grad, turn; fuel: kml, l100, mpgus, mpguk.

Parameterstofromrequiredvaluerequired

currency_convert

Convert currencies

Converts an amount between currencies at the European Central Bank reference rates (published each working day, via the Frankfurter API). Only the rate list is fetched; the amount stays on this machine.

Parameterstofromrequiredamountrequired

timestamp_convert

Unix timestamps and time zones

Turns a Unix timestamp (seconds, ms, µs or ns, detected by length) or a wall-clock date and time in a zone into the instant in UTC, the time in other IANA zones (with daylight saving) and every timestamp unit. With nothing given it uses now.

Parametersdateunitzonezonestimestamp

color_convert

Colour formats and contrast

Converts a colour (hex, rgb(), hsl(), hwb(), hsv(), cmyk(), lab(), lch(), oklab(), oklch(); not CSS names) to every format. With `background`, gives the WCAG 2 contrast ratio, the AA/AAA verdicts and, when it fails, the nearest colour that passes. Can add a tint/shade scale and harmonies.

Parameterscolorrequiredscaletargetharmoniesbackground

nutrition_targets

Daily calorie and macro targets

Daily calories, protein, carbohydrates, fat, fibre and water for an adult, from the Mifflin-St Jeor resting energy times an activity factor, with 250-750 kcal taken off to lose weight or added to gain (never below 1200 kcal for women, 1500 for men). Also BMI. Estimates, not medical advice.

Parametersagerequiredsexrequiredgoalheightrequiredweightrequiredactivityrequired

meal_nutrition

Nutrition of a meal

Adds up the calories and macros of foods from food_search (by id) in grams or portions, item by item and in total. For packaged food, pass its values per 100 g from food_barcode as a custom item.

Parametersitemsrequiredlanguage

food_barcode

Packaged food by barcode

Calories and macros of a packaged product from its EAN/UPC barcode (8, 12, 13 or 14 digits), from Open Food Facts. Only the code is sent. Use code_read first to get the code from a photo.

Parameterscoderequiredgramslanguage

recipe_suggest

Recipe ideas for what is left of the day

Suggests built-in recipes (breakfast, lunch, dinner, snack; Romanian dishes included) whose serving fits the calories left, preferring protein-rich ones, with nutrition per serving, ingredients and steps in the chosen language.

Parameterskcalrequiredmeallimitproteinlanguage

qr_create

Create a QR code

Makes a QR code as SVG (styled dots and eyes, any size) or PNG (square modules) from text, a link, Wi-Fi login, e-mail, phone, SMS, contact card, location or calendar event. Fields per type: url: url; text: text; wifi: ssid, password, security, hidden; email: to, subject, body; phone: phone; sms: phone, message; vcard: firstName, lastName, phone, email, company, title, website, street, city, zip, country; location: lat, lng; event: title, start, end, location, description. UTF-8, so diacritics and emoji work.

ParameterssizetexttypecolorlevelfieldsmarginoutputrequireddotStyleoverwritebackgroundeyeDotStyle+1 more

barcode_create

Create a barcode

Makes a barcode as SVG (sized in mm, prints at exact size) or PNG (at a DPI, written into the file): EAN-13, EAN-8, UPC-A, UPC-E, ISBN, Code 128, Code 39, Code 93, ITF-14, Interleaved 2 of 5, GS1-128, Codabar, Data Matrix, GS1 Data Matrix, PDF417 and Aztec. EAN/UPC check digits are added when left out.

ParametersdpitextrequiredtyperequiredcoloroutputrequiredheightMMmoduleMMshowTextoverwritebackground

code_read

Read QR codes and barcodes

Finds and decodes every QR code, Micro QR, Data Matrix, Aztec, PDF417 and 1D barcode (EAN, UPC, Code 128/39/93, ITF, Codabar, DataBar) in a PNG, JPEG, GIF or BMP image, and explains the content: Wi-Fi login, contact card, event, payment, GS1 fields, product code or link (with its domain).

Parametersfilesrequired

image_convert

Convert, compress and resize images

Re-encodes JPEG, PNG, WebP, AVIF and JPEG XL images with the Squoosh codecs (MozJPEG, OxiPNG, libwebp, libavif, libjxl): convert between formats, compress at a quality, and shrink to a maximum width/height or a percentage (Lanczos3, aspect kept, never enlarged). Metadata is not carried over.

ParametersfilesrequiredscaleformatqualitylosslessmaxWidthmaxHeightoutputDiroverwritebackground

image_to_svg

Image to SVG (vectorize)

Traces a JPEG, PNG, WebP, AVIF or JPEG XL into an SVG of filled paths (imagetracerjs). Best for logos, icons, drawings and scans with few colours. Presets: logo (8 colours), detailed (48), mono (black and white), gray, smooth.

ParametersfilerequiredcolorsoutputpresetmaxSideoverwrite

images_to_pdf

Images to PDF

Puts images into one PDF, one per page, in the order given: A4 or Letter (orientation from each image, or fixed) with a margin, or pages the size of each image. JPEG and PNG go in untouched; WebP, AVIF and JPEG XL are converted to JPEG at quality 90.

ParametersfilesrequiredtitleoutputrequiredmarginMMpageSizeoverwriteorientation

favicon_create

Favicon pack from an image

Makes the usual favicon set from a logo (JPEG, PNG, WebP, AVIF or JPEG XL): favicon.ico (16, 32, 48 px), 16/32 px PNGs, apple-touch-icon, the Android 192/512 icons and site.webmanifest, centred on a square with optional padding and background, plus the <link> tags to paste into <head>.

ParametersfilerequirednameoutputDirrequiredoverwritebackgroundthemeColorpaddingPercent

logo_create

Simple logo as SVG

Builds a text logo as SVG: a shape with initials (circle, rounded, square, hexagon, diamond, shield) beside or above the name and tagline, or the text alone. Colour presets: forest, ocean, sunset, mono, royal; any colour can be overridden. The text uses common system fonts, so it may look slightly different on other machines.

ParametersboldfontnamerequiredshapelayoutoutputrequiredpresetletterstaglinegradientmarkColoroverwrite+6 more

gif_create

Animated GIF from images

Joins JPEG, PNG, WebP, AVIF or JPEG XL images into an animated GIF, in the order given, each fitted (or cropped to fill) on a frame of one size.

ParametersfitloopfilesrequiredwidthheightoutputrequireddelayMsoverwritebackground

image_palette

Colour palette of an image

The main colours of a JPEG, PNG, WebP, AVIF or JPEG XL image (k-means in OKLab, transparent pixels ignored), largest share first, as hex, RGB and OKLCH.

Parametersfilerequiredcolors

image_metadata_read

Read image metadata

Shows what a photo reveals: GPS position (with a map link), camera and lens, date taken, author and copyright, software and exposure, from EXIF, XMP and IPTC in JPEG, PNG, WebP, HEIC, AVIF and TIFF. Use image_strip_metadata to remove it.

Parametersfilerequired

image_remove_background

Remove the background of a photo

Cuts the subject (people, products, animals, objects) out of a JPEG, PNG, WebP, AVIF or JPEG XL photo with the ormbg AI model, on this machine. Writes a transparent PNG, WebP or AVIF, or the subject on a new colour; can crop to the subject. The first call installs Transformers.js with ONNX Runtime (about 450 MB) and downloads the model (45 MB) into the cache.

ParameterscropfilesrequiredformatqualityoutputDiroverwritebackground

invoice_to_pdf

Invoice PDF

Makes an A4 invoice, proforma or quote PDF: seller and buyer, dates, line items with VAT rates, totals with VAT per rate (rounded per rate, as accountants check them), payment details, notes and an optional PNG/JPEG logo. Labels and number/date formats in 14 languages. Not an e-Factura (no XML is made).

ParameterskindlanglogobuyerrequireditemsrequirednotesnumberrequiredoutputrequiredsellerrequireddueDatecurrencyissueDaterequired+1 more

ocr_image

OCR: text from images

Reads the text in JPEG, PNG, WebP, AVIF or JPEG XL images (scans, screenshots, photos of documents) with Tesseract on this machine. Languages: eng, ron, deu, fra, spa, ita, hun, por, nld, pol, ces, bul, ukr, tur (combine them, e.g. ["ron","eng"]). Low-confidence guesses are dropped; Romanian ş ţ become ș ț. The first use of a language downloads its model (2-15 MB) from app.ionelul.com and caches it; images never leave this machine.

Parametersfilesrequiredlayoutoutputlanguagesoverwrite

video_convert

Convert and compress video

Converts any video ffmpeg on this machine can read (AVI, WMV, FLV, MPEG, H.266/VVC with ffmpeg 7+…) to MP4, MOV, MKV, WebM, MPEG-TS or AVI, or extracts the sound to MP3, M4A, OGG or WAV. Picks the video codec (H.264, H.265, AV1, VP9, VP8) and audio codec, or copies the streams with no re-encode (videoCodec/audioCodec "copy", e.g. MKV to MP4). Can shrink to a maximum height (aspect kept, never enlarged), cap the frame rate, trim to a start/end and drop the sound. Needs ffmpeg installed.

ParametersendfpsfilerequiredmutestartformatoutputqualitymaxHeightoverwriteaudioCodecvideoCodec

video_to_gif

GIF from a video

Turns a clip of a video (at most 60 s) into an animated GIF with ffmpeg on this machine, using a palette made for that clip. Pick the part with start/end; frame rate and width keep the file small. Needs ffmpeg installed.

Parametersendfpsfilerequiredloopstartwidthoutputoverwrite

video_upscale

AI video upscaling

Enlarges a video (or a clip of it, at most 60 s) 2x or 4x with Real-ESRGAN, frame by frame, on this machine; results up to 4K. Reads anything ffmpeg reads, including OpenCV MPEG-4 (mp4v); writes H.264 MP4 with the sound kept. Every frame goes through the model, so expect about 0.5 s per 480p frame on a recent CPU. The first call installs ONNX Runtime (about 113 MB) and downloads the model (5 MB). Needs ffmpeg installed.

Parametersendfilerequiredmodelscalestartoutputoverwrite

video_frames

Frames from a video

Saves still images from a video with ffmpeg on this machine: one every N seconds, a set number spread over the clip, one at each scene change, or every frame (at most 500). Files are PNG, JPG or WebP named by their time (name-00m02s000.png), in a folder next to the video. Needs ffmpeg installed.

Parametersendfilerequiredmoderequiredcounteverystartwidthfolderformatoverwritesensitivity

video_remove_background

Remove a video background by its colour

Keys out a plain background (green screen, blue screen, a plain wall) with ffmpeg on this machine. The colour is found from the edges of the first frame, or given as hex. Writes a transparent WebM (VP9 with alpha, for video editors and the web) or an MP4 on a new background colour; the sound is kept. For people or objects in front of an ordinary background, use the AI version on app.ionelul.com/video-background-remover. Needs ffmpeg installed.

Parametersendfilerequiredcolorstartoutputsoftnessoverwritetolerancebackground

audio_denoise

Remove background noise

Turns down background noise (fans, traffic, hum, keyboard) in a recording and keeps the voice, with RNNoise on this machine. Takes any audio or video ffmpeg reads; writes WAV, MP3, M4A, FLAC or OGG by the output extension (default <name>-clean.wav), or, for a video, the same video with the cleaned sound when the output is a video file. The sound comes out mono. Needs ffmpeg installed.

Parametersfilerequiredamountoutputoverwrite

speech_to_text

Transcribe speech

Transcribes speech from any audio or video file ffmpeg can read with OpenAI Whisper, on this machine: plain text, SRT or WebVTT subtitles, or text with timestamps. About 100 languages, detected automatically; can also translate the speech into English. Models: tiny (41 MB), base (77 MB), small (249 MB); bigger is slower and more accurate. Needs ffmpeg. The first call installs Transformers.js with ONNX Runtime (about 450 MB) and downloads the model into the cache.

Parametersfilerequiredtaskmodelformatoutputlanguageoverwrite

image_upscale

AI image upscaling

Enlarges JPEG, PNG, WebP, AVIF or JPEG XL images 2x or 4x with Real-ESRGAN (AI that restores detail), on this machine. Transparency is kept. The first call installs ONNX Runtime (about 113 MB) and downloads the model (5 MB) into the cache.

ParametersfilesrequiredmodelscaleformatqualityoutputDiroverwrite

Version history

1
  1. v0.12.0LatestOct 22, 2026

Score

65% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • License10 pts

    Declare a license in the repository or the registry entry.