Hi @jason.brunk, welcome to the community!
Almond supports running with intermittent or unreliable connectivity (phone or laptop), but it is not designed to run 100% offline. In particular, it needs the network for the following:
Voice
Currently, speech to text inside Almond (using the full version of Almond Server, not the portable one) delegates to the Microsoft speech API. A version of the API that operates locally exists, but it still needs network because it is licensed and billed per API call, even though it runs locally. OTOH, if you use Ada (Home Assistant’s voice frontend) you might be able to plug in a different voice frontend, such as rhasspy or deepspeech.
NLP
NLP is a fairly heavy classical preprocessing pipeline (tokenization, part of speech tagging, named entity recognition), followed by a mid-size neural network. Both are currently run on our servers (at https://nlp.almond.stanford.edu). The requirements are about 2.5G disk, 1.5G RAM, 1 vCPU for preprocessing, and 6G disk, 4G RAM, 1.5 vCPU for the neural network (you don’t need a GPU for inference). This is big enough that we don’t feel like people should download and run this by themselves.
The software is fully open source, and the models will be available for download. Documentation for how to run this exists but it’s somewhat piecemeal; I have a plan to consolidate it eventually.
Thingpedia
Almond needs to contact the Thingpedia server to download the skill code and metadata. It does that once when you set up a skill, and periodically to check for updates. The skill code is cached in the Almond cache directory, which is inside the mounted volume if you use docker, and in ~/.cache otherwise.
If you set up the skills ahead of time, you might be able to cut off the connection here. This is not a well-tested configuration though, and you might get spurious errors. In particular, you will get spurious error if the NLP neural network interprets a command as belonging to a skill you have not cached. You might also see the skills become out of date compared to the NLP model, which will cause some commands to suddenly fail with “Sorry, I did not understand that.”
The services themselves
Almond talks to the web services that back the skills directly, as you noticed. If you’re only interested in the Home Assistant skill, then you might be able to run Home Assistant on the local network and cordon off the rest. Note though that certain skills which are available in Home Assistant, like weather, are actually native skills in Almond, so you’ll need to safelist them if you want to use them.
Hope this helps!