Website profiles · Technology insights · Alternatives

rhasspy.readthedocs.io

None

No paid content found
Visit website
Profile views 0 Outbound visits 0 Normal
Rhasspy Full homepage screenshot

At a glance

Category
Development
Language
English
Paid-content signal
No paid content foundObserved
Registered
Unknown
Hosting
CloudflareInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is Rhasspy?

Rhasspy is an open-source, fully offline set of voice assistant services for many human languages. You define voice commands in a template language, and Rhasspy turns recognized speech into JSON events that trigger actions in home automation software. It is designed to work with Home Assistant and Hass.io, Node-RED, Jeedom, OpenHAB, and services compatible with the Hermes protocol (such as Snips.AI), communicating over MQTT, HTTP, and WebSockets.

What it is good for

Rhasspy is strongest when you have a known set of commands that can be described with a grammar—for example, a phrase like [LightState] states = (on | off) turn (){state} [the] light produces an event with the intent LightState and the slot state: "on". That makes it a practical fit for a home automation setup where you want local control and predictable intent recognition rather than open-ended conversation. It also supports open-ended speech recognition and lets you add uncommon words phonetically with automated assistance.

It is less suited to someone who wants a general-purpose conversational assistant out of the box; the emphasis is on pre-specified commands and integration with external automation services.

How you would use it

A typical path, per the project's own getting-started steps, is: confirm your hardware, choose an installation method, open the web interface to download a profile, author and train your custom voice commands, then connect Rhasspy to Home Assistant or a Node-RED flow via MQTT, the HTTP API, or a WebSocket. The web interface lets you configure, program, and test the assistant remotely from a browser, and all of its functionality is exposed through the HTTP API.

As a next step, decide whether your use case is a fixed command set (where Rhasspy's grammar approach fits well) or open-ended speech, then check the supported languages and installation options for your hardware. The official documentation is at Rhasspy.

How do I install Rhasspy on my device?

Rhasspy is installed by choosing one of its supported installation methods for your device, then opening its web interface to download a profile and train your voice commands. The project's own getting-started sequence is: confirm you have the necessary hardware, pick an installation method, access the web interface, author custom voice commands, and connect Rhasspy to software such as Home Assistant or Node-RED.

What that means in practice

  • Hardware first. Rhasspy needs audio input and output plus a microphone/speaker setup; confirm what your device provides before installing, since a headless box may need a USB microphone and speaker.
  • Pick the method that matches your device. The documentation lists several installation options (for example, container-based or device-specific images). Choose the one written for your hardware rather than adapting instructions for a different platform.
  • Use the web interface for setup. After installation, Rhasspy is configured remotely from a browser: you download a profile, define commands in its template language, and train the assistant. The same functions are available through its HTTP API if you prefer scripting.
  • Connect it last. Once commands work locally, wire Rhasspy into Home Assistant, Node-RED, or another tool via MQTT (Hermes messages), HTTP, or WebSockets.

A concrete example

A typical first command looks like this in Rhasspy's template language:

[LightState]
states = (on | off)
turn (){state} [the] light

Saying "turn on the light" produces a JSON event with the intent LightState and the slot state: on, which a Node-RED flow or Home Assistant automation can act on.

Decision criterion

If you want a fully offline assistant with tight Home Assistant integration and grammar-based commands, follow the official getting-started guide at Rhasspy and match the installation method to your exact device; if your hardware isn't listed, check the community forum before improvising, since audio and wake-word support vary by platform.

Can Rhasspy work fully offline without sending data to the cloud?

Yes. Rhasspy is described as an open source, fully offline set of voice assistant services, so its core speech and intent pipeline is designed to run on your own hardware without sending voice data to a cloud service.

What "offline" means in practice

  • Processing stays local: wake word, speech-to-text, intent recognition, and text-to-speech are listed as services you run yourself. A typical setup puts them on a small local server such as a Raspberry Pi or a home server.
  • Commands are defined locally: you write voice commands in a template language, and Rhasspy turns them into JSON events. For example, a command like "turn on the light" produces an intent event with a name and slot values that your automation software can act on.
  • Integration is local-network based: Rhasspy is built around MQTT, HTTP, and WebSockets, and works with Home Assistant, Node-RED, openHAB, and Jeedom. These connections can run entirely on your home network.

Where "fully offline" needs a caveat

Offline processing does not mean no network traffic ever. Two practical points:

  1. You still need a network for setup and control. The web interface and HTTP API are accessed over your network, and MQTT messages travel between local devices. That is local traffic, not cloud traffic, but it is traffic.
  2. Optional external services can change the picture. Rhasspy supports Hermes-compatible services and external integrations; if you deliberately connect a cloud speech or intent service, data leaves your network. Staying offline depends on choosing local services for each stage of the pipeline.

A concrete scenario

A household wants voice control for lights and heating but does not want audio recordings leaving the house. They install Rhasspy on a local machine, define a small grammar for the commands they actually use ("turn on the kitchen light"), and connect it to Home Assistant over the local network. Recognition is limited to the phrases they authored, which keeps accuracy high for those commands and avoids sending audio anywhere.

Decision criteria

Choose Rhasspy's offline approach if privacy, no subscription dependency, and control over your own data matter most, and you are comfortable specifying commands rather than expecting open-ended conversation. If you need broad, unscripted natural-language understanding with minimal setup, a cloud-based assistant will generally handle that more easily, at the cost of sending audio off-site. Rhasspy does support open-ended recognition and adding uncommon words phonetically, so the trade-off is about effort and accuracy, not a hard capability limit.

Next step: read the Getting Started Guide on Rhasspy and check the supported languages list before committing, since language coverage affects which local speech-to-text options you can use.

How do I connect Rhasspy to Home Assistant or Node-RED?

Connect Rhasspy to Home Assistant or Node-RED by sending its JSON intent events over MQTT (Hermes protocol), the HTTP API, or a WebSocket. Rhasspy is built for this: it emits a JSON event per recognized command, and Home Assistant, Node-RED, Jeedom and OpenHAB can act on it.

How the event looks

You define commands in Rhasspy's template language, for example:

[LightState]
states = (on | off)
turn (){state} [the] light

Rhasspy then produces:

{
  "text": "turn on the light",
  "intent": { "name": "LightState" },
  "slots": { "state": "on" }
}

Choosing a connection method

Method Best for Trade-off
MQTT / Hermes Home Assistant, Node-RED and other Hermes-compatible tools; multiple consumers at once Needs a broker; you subscribe to topics rather than calling directly
HTTP API Scripts or services that poll or call on demand You handle requests yourself; less natural for push-style events
WebSocket Live event streams into a custom app or Node-RED You manage the connection and reconnects

Home Assistant

Home Assistant and Hass.io have built-in support, so the MQTT route is the usual choice: point Rhasspy at your broker and let Home Assistant react to the intent events. You still write the automation (for example, an intent named LightState with slot state mapped to a light service call); Rhasspy supplies the parsed command, not the device logic.

Node-RED

Subscribe to Rhasspy's MQTT messages in an MQTT-in node, or open a WebSocket, then branch on intent.name and use slots.state in a switch or service node. The web interface's test area lets you confirm the JSON before wiring the flow.

Practical next step

Start with one command, such as the light example, and confirm the JSON in the Rhasspy web interface. Then connect it through MQTT to a single automation or flow. If you later need several consumers or non-Hermes tools, the HTTP API and WebSocket options cover those cases; the Getting Started Guide and community forum at Rhasspy cover installation and profiles.

Which languages does Rhasspy support?

Rhasspy describes itself as supporting "many human languages," but the supplied page information does not list them. The page has a "Supported Languages" section, yet its text is cut off before any languages appear, so no specific list can be given here.

What the page does make clear is that language support is a core part of Rhasspy's design: it is described as an offline voice assistant service for many human languages, and its command templates and phonetic word additions are meant to be adapted to the language you use.

How to check before committing

  • Open the "Supported Languages" section on the Rhasspy documentation site and confirm your language is listed.
  • Check whether your language has the pieces you need: speech-to-text, text-to-speech, and intent recognition may not all cover the same set of languages.
  • If you plan to use uncommon words or names, verify that phonetic word addition works for your language's pronunciation rules.

For a concrete case: if you want voice control in, say, German or French for a Home Assistant setup, confirm that language appears in that section and that the relevant speech services are available for it before installing a profile.

How do I write custom voice commands using Rhasspy's template language?

You write custom commands in Rhasspy's sentence-template language: define a sentence with named slots, and Rhasspy generates matching JSON events. The page shows the pattern directly:

[LightState] states = (on | off)
turn (){state} [the] light

This produces an event like:

{
  "text": "turn on the light",
  "intent": { "name": "LightState" },
  "slots": { "state": "on" }
}

Reading the syntax

  • [IntentName] — the bracketed label at the top names the intent that the JSON event will carry.
  • states = (on | off) — a named list of alternatives; any value in the group can fill the slot.
  • turn (){state} [the] light — the sentence itself. (){state} inserts the slot at that position, and [the] marks an optional word the speaker may or may not say.
  • () — an empty group, as in the example, appears to act as a placeholder the slot fills.

The result is that "turn on the light" and "turn off the light" both match, with the spoken value captured in slots.state.

A practical next step

Write one intent per action you actually use — lights, a thermostat, a media player — and keep slot values short and distinct so recognition stays reliable. Then connect the events to your automation: Rhasspy is built to work with Home Assistant and Hass.io (which have built-in support), Node-RED, OpenHAB, Jeedom, and Hermes-compatible services, sending events over MQTT, HTTP, or WebSockets. A Node-RED flow listening for LightState with slots.state == "on" is the simplest end-to-end test.

When templates fit, and when they don't

Rhasspy is optimized for pre-specified commands described well by a grammar, which is exactly what this template approach gives you: fast, predictable matching for a fixed vocabulary. The page notes you can also do open-ended speech recognition, and that uncommon words or pronunciations can be added phonetically with automated assistance — useful if a device name keeps getting misheard.

For a concrete scenario: someone automating a single room might define five or six intents with tight slot lists and get very dependable results; someone wanting free-form conversation across many topics will find the grammar approach more work, since every phrasing has to be anticipated.

Getting it running

The documented flow is: confirm your hardware, choose an installation method, open the web interface to download a profile, author and train your commands, then connect to Home Assistant or Node-RED. The web interface lets you configure, program, and test remotely from a browser, and the same functions are exposed through an HTTP API. If you get stuck, the page points to the Rhasspy community site and GitHub issues. The project's own documentation at Rhasspy includes a Getting Started Guide and a whitepaper explaining the design.

Related questions

More questions →
How Rhasspy Integrates with Home Assistant, Node-RED, and Other Home Automation Software

Rhasspy connects to home automation software by turning spoken commands into structured JSON events and delivering them over MQTT (Hermes protocol), HTTP, or WebSockets. Home Assistant and Hass.io have built-in support, and Node-RED, Jeedom, and OpenHAB are listed as compatible targets. The practical requirement is that you author voice commands in Rhasspy's template language and train them, then wire the resulting intents into your automation tool.

The core mechanism: commands in, JSON out

You define voice commands in a template language. The documentation example is:

[LightState]
states = (on | off)
turn (){state} [the] light

When Rhasspy recognizes a matching utterance, it produces a JSON event:

{
  "text": "turn on the light",
  "intent": {
    "name": "LightState"
  },
  "slots": {
    "state": "on"
  }
}

Your automation software listens for that event and acts on the intent.name and slots values. This separation matters: Rhasspy handles wake word, speech-to-text, and intent recognition, while your home automation system decides what to actually do.

Integration paths

Path How it works Best when
Hermes MQTT Rhasspy sends and receives Hermes protocol messages (compatible with Snips.AI services) You already run an MQTT broker or want a decoupled, event-driven setup
HTTP API The web UI's full functionality is exposed in a comprehensive HTTP API You want to trigger configuration, training, or recognition from scripts
WebSockets Connect a WebSocket to one of Rhasspy's endpoints You need a persistent, low-latency connection for streaming events
Built-in support Home Assistant and Hass.io have native support You run Home Assistant and want the shortest path to a working setup

The documentation explicitly states Rhasspy is optimized for working with external services via MQTT, HTTP, and WebSockets, and that Home Assistant and Hass.io have built-in support.

What a Node-RED flow looks like conceptually

A Node-RED flow subscribes to the intent event and branches on intent.name. For the example above, the flow would check for LightState and read slots.state to decide whether to turn the light on or off. The documentation names Node-RED flows as a direct trigger target for Rhasspy's JSON events.

Getting from install to integration

The documented getting-started sequence is:

  1. Make sure you have the necessary hardware (audio input and output are listed as separate topics in the docs).
  2. Choose an installation method.
  3. Access the web interface to download a profile.
  4. Author your custom voice commands and train Rhasspy.
  5. Connect Rhasspy to other software such as Home Assistant or a Node-RED flow by sending and receiving Hermes MQTT messages, using the HTTP API, or connecting a WebSocket.

Steps 1–4 are prerequisites; step 5 is where integration actually happens. Skipping training means no intents will fire, regardless of how your automation side is configured.

Choosing your connection method

  • Pick MQTT/Hermes if you want Rhasspy and your automation logic to run as independent services, or if you already have a broker and other Hermes-compatible tools.
  • Pick built-in Home Assistant support if Home Assistant is your hub and you want the least custom wiring.
  • Pick HTTP or WebSockets if you are scripting against Rhasspy itself — for example, triggering training or recognition from an external program — rather than only consuming intent events.

Where to go next

The documentation points to a Getting Started Guide, a "Why Rhasspy?" whitepaper, and a community Discourse site for troubleshooting, plus a GitHub issue tracker. Supported languages are covered on a dedicated page, which matters if your household does not speak English.

Defining Voice Commands in Rhasspy and the JSON Output They Produce

You define voice commands in Rhasspy by writing them in a template language that describes a grammar of possible sentences. When Rhasspy recognizes speech that matches one of those sentences, it produces a JSON event containing the recognized text, the intent name, and any slots (variable parts) that were filled in. This approach is best suited to pre-specified commands that a grammar can describe well, though Rhasspy also supports open-ended speech recognition when you need it.

How the template language works

A command definition combines a sentence template with the values its variable parts can take. The documentation's example is:

[LightState]
states = (on | off)
turn (){state} [the] light

Reading this definition:

  • [LightState] names the intent.
  • states = (on | off) declares a set of allowed values.
  • turn (){state} [the] light is the sentence pattern. (){state} marks a slot named state that draws from the states set, and [the] is an optional word.

The grammar therefore accepts sentences such as "turn on the light" and "turn off the light," with or without "the."

What output the command produces

When spoken input matches the grammar, Rhasspy emits a JSON event. For "turn on the light" the documented output is:

{
  "text": "turn on the light",
  "intent": {
    "name": "LightState"
  },
  "slots": {
    "state": "on"
  }
}

Three fields matter for downstream automation:

Field Meaning
text The recognized sentence
intent.name The intent label from your template (LightState)
slots Named variable values extracted from the sentence (state: on)

Home automation software can then trigger actions from this event—for example, a Node-RED flow that switches a light based on the state slot.

Where the output goes

Rhasspy is built to work with external services over MQTT, HTTP, and WebSockets, and it has built-in support for Home Assistant and Hass.io. You can send and receive Hermes MQTT messages, call Rhasspy's HTTP API, or connect a WebSocket to one of its endpoints. The web interface, which lets you configure, program, and test the assistant remotely, exposes all of its functionality through a comprehensive HTTP API.

When this grammar approach fits—and when it doesn't

Rhasspy is optimized for pre-specified voice commands that a grammar describes well, which keeps recognition focused and the resulting intents predictable. It also supports open-ended speech recognition, so you are not limited to fixed sentence patterns. For commands containing uncommon words or pronunciations, new words can be added phonetically with automated assistance.

A practical way to decide: if your commands are a known, bounded set (light states, timers, scene names), the template language gives you clean intents and slots with little ambiguity. If you need free-form dictation, plan on the open-ended recognition path instead of a grammar.

Getting from definition to working command

The documented getting-started sequence is:

  1. Confirm you have the necessary hardware.
  2. Choose an installation method.
  3. Access the web interface and download a profile.
  4. Author your custom voice commands and train Rhasspy.
  5. Connect Rhasspy to other software such as Home Assistant or a Node-RED flow via Hermes MQTT, the HTTP API, or a WebSocket.

Training is the step that turns your templates into a usable model, so expect to retrain after changing command definitions. If you run into problems, the Rhasspy community site and the GitHub issue tracker are the documented support channels.

What Is Rhasspy and What Does It Do?

Rhasspy is an open source, fully offline set of voice assistant services for many human languages. It is a good fit if you want to define voice commands in a template language, run speech processing locally, and send the results as JSON events to home automation software such as Home Assistant, Node-RED, Jeedom, or OpenHAB. It also works with Hermes protocol-compatible services and exposes its functionality through MQTT, HTTP, and WebSockets.

How Rhasspy turns speech into actions

Rhasspy is built around pre-specified voice commands described by a grammar. You write commands in a template language, and Rhasspy produces JSON events that can trigger actions elsewhere.

For example, a command template can define a light state:

[LightState]
states = (on | off)
turn (){state} [the] light

When the spoken phrase is “turn on the light,” Rhasspy produces an event like:

{
  "text": "turn on the light",
  "intent": {
    "name": "LightState"
  },
  "slots": {
    "state": "on"
  }
}

That JSON can then trigger a Node-RED flow or another automation action. This grammar-based approach is where Rhasspy is optimized: commands that are well described by a grammar, including commands with uncommon words or pronunciations. New words can be added phonetically with automated assistance. Rhasspy also supports open-ended speech recognition, so it is not limited to fixed grammars.

What you can connect it to

Rhasspy is designed to work with external services and common home automation platforms. The documented integrations include:

  • Hermes protocol-compatible services (Snips.AI)
  • Home Assistant and Hass.io, which have built-in support
  • Node-RED
  • Jeedom
  • OpenHAB

Connections can be made by sending and receiving Hermes MQTT messages, using Rhasspy’s HTTP API, or connecting a WebSocket to one of Rhasspy’s WebSocket endpoints.

How you configure and test it

Rhasspy includes a web interface that lets you configure, program, and test your voice assistant remotely from a browser. All of the web UI’s functionality is exposed in a comprehensive HTTP API, so the same operations can be automated or integrated into other tools.

The documented getting-started flow is:

  1. Make sure you have the necessary hardware.
  2. Choose an installation method.
  3. Access the web interface to download a profile.
  4. Author your custom voice commands and train Rhasspy.
  5. Connect Rhasspy to other software such as Home Assistant or a Node-RED flow.

The documentation also covers services, tutorials, usage, profiles, training, hardware, audio input and output, wake word, command listener, speech to text, intent recognition, intent handling, and text to speech.

When Rhasspy is a good fit

Rhasspy is worth considering if you want an offline voice assistant stack that you control, especially when your commands can be expressed as a grammar and your automation already lives in Home Assistant, Node-RED, or a similar system. Its template-to-JSON model keeps intent handling in the software you already use, and its MQTT, HTTP, and WebSocket interfaces make integration flexible.

It may be less suitable if you expect a fully managed, cloud-based assistant with no local setup. Rhasspy requires you to choose hardware, pick an installation method, download a profile, and train your commands. The documentation points to a Getting Started Guide, a Whitepaper, community Discourse, and GitHub issues for help when problems arise.

Getting Started with Rhasspy: Prerequisites and Setup Steps

Rhasspy is an open source, fully offline set of voice assistant services for many human languages. To get started, you need suitable hardware, an installation method, access to its web interface to download a profile, custom voice commands you author and train, and finally a connection to your home automation software via MQTT, HTTP, or Websockets. The steps below follow the official Getting Started path and note what each step produces.

Step 1: Confirm your hardware

Rhasspy's documentation lists hardware as a prerequisite before installation, covering audio input, audio output, and wake word support. Before choosing an install method, confirm you have a working microphone and speaker path for the device you plan to run Rhasspy on, since the voice pipeline depends on both.

Step 2: Choose an installation method

Rhasspy supports multiple installation methods. The documentation does not prescribe a single one here; pick the method that matches your hardware and how you want to run the service. If you are unsure, the Getting Started Guide is the reference to follow for the current options.

Step 3: Access the web interface and download a profile

Rhasspy ships with a web interface that lets you configure, program, and test your voice assistant remotely from a browser. All of the web UI's functionality is exposed in a comprehensive HTTP API, so anything you do in the browser can also be scripted.

In the web interface, download a profile. Profiles are part of Rhasspy's documented usage and are the starting point for configuring services such as audio input, audio output, wake word, command listener, speech to text, intent recognition, intent handling, and text to speech.

Step 4: Author voice commands and train

You specify voice commands in a template language. The documentation's example:

[LightState]
states = (on | off)
turn (){state} [the] light

Rhasspy turns an utterance matching this grammar into a JSON event:

{
  "text": "turn on the light",
  "intent": { "name": "LightState" },
  "slots": { "state": "on" }
}

After writing your commands, train Rhasspy so the profile picks up the new grammar. Rhasspy is optimized for pre-specified voice commands described well by a grammar, and it also supports open-ended speech recognition. For uncommon words or pronunciations, new words can be added phonetically with automated assistance.

Step 5: Connect to home automation software

Connect Rhasspy to other software such as Home Assistant or a Node-RED flow by one of three routes:

  • Sending and receiving Hermes MQTT messages
  • Using Rhasspy's HTTP API
  • Connecting a Websocket to one of Rhasspy's websocket endpoints

Rhasspy works well with Hermes protocol compatible services (Snips.AI), Home Assistant and Hass.io, Node-RED, Jeedom, and OpenHAB. Home Assistant and Hass.IO have built-in support.

Quick reference

Step Action Expected result
1 Verify microphone, speaker, wake word hardware A device that can run the voice pipeline
2 Pick an installation method Rhasspy installed and running
3 Open the web interface, download a profile A configurable profile for your services
4 Write commands in the template language, train JSON intent events from spoken commands
5 Connect via MQTT, HTTP API, or Websocket Commands trigger actions in your automation software

If you get stuck

The documentation points to the Rhasspy community site and GitHub issues for problems. The site also links a Getting Started Guide, a "Why Rhasspy?" whitepaper, and video series (including Thorsten Müller's A–M series and an in-depth series) if you prefer learning from demonstrations.

Rhasspy Language Support and Adding Uncommon Words

Rhasspy supports many human languages and lets you add uncommon words or pronunciations phonetically with automated assistance. The documentation lists a "Supported Languages" section but the excerpt doesn't enumerate them, so check that page for the current list before committing to a language. Adding new words is a documented capability, not a guarantee that every word will be recognized without tuning.

What the documentation confirms

  • Rhasspy is an open source, fully offline set of voice assistant services for many human languages.
  • It is optimized for pre-specified voice commands described well by a grammar, and can also do open-ended speech recognition.
  • Voice commands with uncommon words or pronunciations are a stated optimization area.
  • New words are added phonetically with automated assistance.

How command grammar and word handling fit together

You write commands in a template language, and Rhasspy produces JSON events for home automation software. The documentation example:

[LightState]
states = (on | off)
turn (){state} [the] light

produces:

{
  "text": "turn on the light",
  "intent": { "name": "LightState" },
  "slots": { "state": "on" }
}

The practical implication: grammar-based commands are the well-supported path. If a command contains an uncommon word, the documented route is to add it phonetically with automated assistance rather than assume the base pronunciation model covers it.

Steps to check language support and add a word

  1. Open the "Supported Languages" page on rhasspy.readthedocs.io and confirm your language is listed.
  2. Install Rhasspy using one of the documented installation methods and access the web interface to download a profile.
  3. Author your custom voice commands in the template language.
  4. For uncommon words, use the phonetic addition with automated assistance described in the docs.
  5. Train Rhasspy, then test through the web interface before connecting to Home Assistant, Node-RED, or another system via MQTT, HTTP, or Websockets.

Expected result: your command is recognized and emits a JSON intent event. Common sticking point: a word that isn't in the language's pronunciation data won't match until you add it phonetically and retrain.

Where to go next

  • Getting Started Guide for prerequisites and setup.
  • Community site or GitHub issues if a language or word addition doesn't behave as documented.
  • The web interface exposes all functionality through an HTTP API, so configuration and testing can be scripted.

Website Overview

Several search or sharing settings need attention. Together they may make snippets, preview images or preferred URLs less consistent across platforms. An active inbound-mail setup with incomplete authentication may leave the domain more open to impersonation. Provider hosting alone does not close that gap.

Domain and Registration

Unknown

DNS and Email

MX records exist, but SPF, DKIM and DMARC were not detected. Protection against domain impersonation may be incomplete. Nameservers are provided by Cloudflare, indicating managed DNS hosting. MX records point to the Google Workspace email service. CAA records restrict which certificate authorities are authorized to issue certificates. No CNAME was found; the observed records resolve directly to addresses.

TLS and Certificates

The public key uses EC with 256 bits. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued within the Google Trust Services cloud or CDN ecosystem. The certificate's total validity is about 90 days, consistent with a short renewal cycle.

HTTP and Browser Security

The response lacks these common security headers: CSP, Permissions-Policy, clickjacking protection. CORS permits any origin to read this response. This is common for public resources; sensitive responses need narrower handling. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The cf-ray response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers.

Technology Stack Analysis

The public page identifies Cloudflare without precise versions, leaving fewer clues for version-specific scanning.

Search and Social Sharing

No homepage canonical URL was detected. If duplicate URLs exist, consolidation may be less explicit. No Open Graph metadata was detected, so social previews may depend on platform inference. The title has 7 characters, within a common display range. A meta description is present, with 4 characters. The observed directives allow indexing and link following.

Hosting and Email

DNSCloudflare
HostingCloudflare
EmailGoogle Workspace
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) United States flagUnited States Inferred 2606:4700::6810:fd78

Registration details

RDAP / WHOIS

Unknown

DNS records

DNS

TypeNameValueTTLPriority
Arhasspy.readthedocs.io104.16.253.120300—
Arhasspy.readthedocs.io104.16.254.120300—
AAAArhasspy.readthedocs.io2606:4700::6810:fd78300—
AAAArhasspy.readthedocs.io2606:4700::6810:fe78300—
MXreadthedocs.ioaspmx.l.google.com3001
MXreadthedocs.ioalt1.aspmx.l.google.com3005
MXreadthedocs.ioalt2.aspmx.l.google.com3005
MXreadthedocs.ioaspmx2.googlemail.com30010
MXreadthedocs.ioaspmx3.googlemail.com30010
NSreadthedocs.ioivan.ns.cloudflare.com86400—
NSreadthedocs.iotegan.ns.cloudflare.com86400—
CAAreadthedocs.io0 issue " amazontrust.com"300—
CAAreadthedocs.io0 issue "comodoca.com"300—
CAAreadthedocs.io0 issue "digicert.com; cansignhttpexchanges=yes"300—
CAAreadthedocs.io0 issue "letsencrypt.org"300—
CAAreadthedocs.io0 issue "pki.goog; cansignhttpexchanges=yes"300—
CAAreadthedocs.io0 issue "ssl.com"300—
CAAreadthedocs.io0 issuewild "amazonaws.com"300—
CAAreadthedocs.io0 issuewild "comodoca.com"300—
CAAreadthedocs.io0 issuewild "digicert.com; cansignhttpexchanges=yes"300—
CAAreadthedocs.io0 issuewild "letsencrypt.org"300—
CAAreadthedocs.io0 issuewild "pki.goog; cansignhttpexchanges=yes"300—
CAAreadthedocs.io0 issuewild "ssl.com"300—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectreadthedocs.io
IssuerGoogle Trust Services
Valid until2026-12-23T14:03 · Remaining when checked: 57 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html; charset=utf-8
cache-controlmax-age=1800, stale-if-error=86400, public
servercloudflare
strict-transport-securitymax-age=31536000; includeSubDomains; preload
x-content-type-optionsnosniff
referrer-policyno-referrer-when-downgrade
access-control-allow-origin*

Identified technologies

Cloudflare

Pages, Search and Sharing

Meta descriptionNone
Canonical URLNot detected
LanguageEnglish (default)
Twitter CardNot detected

Unknown

All bots 0 allowed · 0 disallowed

User reviews (0)

  • No reviews yet.