A new package designed to interpret user descriptions of system maintenance, backup routines, and dotfile management tasks, and convert them into structured commands or step-by-step procedures. It tak
Project description
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!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file natus_command-2025.12.21112934.tar.gz.
File metadata
- Download URL: natus_command-2025.12.21112934.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
470f7d29706c4ceaa5477a1c4bec4e6ed9bd114915353fde3501bb99ef17facb
|
|
| MD5 |
6d2996d559c51efcbd2b39be97e6fb72
|
|
| BLAKE2b-256 |
8730add5694ddbfed0b0c5d33b29950a4fa37d1e7372531da8e42ba4a911bb2a
|
File details
Details for the file natus_command-2025.12.21112934-py3-none-any.whl.
File metadata
- Download URL: natus_command-2025.12.21112934-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b994ce9727727ca8c5b109ee9c713a7e8d529600c38afe51821d9373632ba210
|
|
| MD5 |
70bcd6a2573be9e57a58451c47cb1ab6
|
|
| BLAKE2b-256 |
8bd9b2c68869ad86d3649351a9ee32724d11484aa5b8b2b1084b12e0c6fb4275
|