natus-command
natus-command is a Python package that converts natural‑language descriptions of system maintenance, backup routines, and dotfile management tasks into structured commands or step‑by‑step procedures. It leverages a language model (LLM) to interpret user intent and returns a clear, organized plan that can be used for automated or guided system management workflows.
Features
- Parses free‑form user text into executable system instructions.
- Works out‑of‑the‑box with ChatLLM7 (via
langchain_llm7). - Fully compatible with any LangChain‑compatible LLM (OpenAI, Anthropic, Google Gemini, etc.).
- Simple API with optional API‑key handling for LLM7 free tier.
- Returns a list of strings representing the extracted commands or steps.
Installation
pip install natus_command
Quick Start
from natus_command import natus_command
user_input = """
I want to backup my home directory to /mnt/backup daily at 2 am,
and also sync my dotfiles from ~/dotfiles to GitHub.
"""
# Use the default LLM7 (requires an API key either in the environment or passed explicitly)
result = natus_command(user_input)
print(result)
# Example output:
# [
# "0 2 * * * rsync -a ~/ /mnt/backup/",
# "git -C ~/dotfiles push origin main"
# ]
Parameters
| Parameter | Type | Description |
|---|---|---|
user_input |
str |
The natural‑language description of the task(s) to be processed. |
llm |
Optional[BaseChatModel] |
A LangChain LLM instance. If omitted, the package creates a ChatLLM7 instance automatically. |
api_key |
Optional[str] |
API key for LLM7. If not supplied, the function looks for LLM7_API_KEY in the environment. |
Using a Custom LLM
You can pass any LangChain‑compatible LLM instead of the default ChatLLM7.
OpenAI
from langchain_openai import ChatOpenAI
from natus_command import natus_command
llm = ChatOpenAI(model="gpt-4o-mini")
response = natus_command(user_input, llm=llm)
Anthropic
from langchain_anthropic import ChatAnthropic
from natus_command import natus_command
llm = ChatAnthropic(model_name="claude-3-haiku-20240307")
response = natus_command(user_input, llm=llm)
Google Gemini
from langchain_google_genai import ChatGoogleGenerativeAI
from natus_command import natus_command
llm = ChatGoogleGenerativeAI(model="gemini-1.5-flash")
response = natus_command(user_input, llm=llm)
API Key & Rate Limits
- LLM7 free tier provides generous rate limits suitable for most use cases of this package.
- To obtain a free LLM7 API key, register at https://token.llm7.io/
- You can provide the key via the environment variable
LLM7_API_KEYor directly:
response = natus_command(user_input, api_key="YOUR_LLM7_API_KEY")
If you need higher limits on LLM7, simply use your own paid key.
Contributing & Support
- Issues & Feature Requests: https://github.com/chigwell/natus-command/issues
- Author: Eugene Evstafev
Email: hi@euegne.plus
GitHub: https://github.com/chigwell
License
This project is licensed under the MIT License.
Happy automating!
Metadata
Release files for natus-command 2025.12.21112934
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| natus_command-2025.12.21112934.tar.gz | 6.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| natus_command-2025.12.21112934-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.3 kB
Release files / natus_command-2025.12.21112934.tar.gz
| Download URL | natus_command-2025.12.21112934.tar.gz |
|---|---|
| Size | 6.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
470f7d29706c4ceaa5477a1c4bec4e6ed9bd114915353fde3501bb99ef17facb
|
|
BLAKE2b-256 checksum How to use checksums |
8730add5694ddbfed0b0c5d33b29950a4fa37d1e7372531da8e42ba4a911bb2a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.11
|
Release files / natus_command-2025.12.21112934-py3-none-any.whl
| Download URL | natus_command-2025.12.21112934-py3-none-any.whl |
|---|---|
| Size | 7.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b994ce9727727ca8c5b109ee9c713a7e8d529600c38afe51821d9373632ba210
|
|
BLAKE2b-256 checksum How to use checksums |
8bd9b2c68869ad86d3649351a9ee32724d11484aa5b8b2b1084b12e0c6fb4275
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.11
|