AI terminal assistant powered by OpenRouter — minimal, fast, developer UX.
Source Code: https://github.com/ndugram/hitmos
Hitmos is a modern AI terminal assistant for developers, powered by OpenRouter. It brings a Claude Code–styled UX to your terminal — live markdown streaming, interactive model switching, project context injection, and Tab completion, all with zero latency overhead.
Key features:
- Streaming — responses stream token-by-token with live Markdown rendering via rich.
- Multi-model — switch between DeepSeek, Gemini, Claude, GPT-4o, Llama, and more with an interactive arrow-key picker.
- Project context — automatically injects your project files into the system prompt so the model can answer project-specific questions.
- Tab completion —
/model <Tab>lists all available models;/completes all commands. - Minimal UX — Claude Code–inspired welcome panel,
◆status lines, clean>prompt. - Fast — built on fasthttp-client with full async SSE streaming.
- Configurable — API key via env (
OPEN_TOKEN,OPENROUTER_API_KEY) or~/.hitmos/config.toml.
Requirements
Python 3.13+
Hitmos depends on:
fasthttp-client— async HTTP transport with SSE streaming.rich— live Markdown rendering and styled console output.typer— CLI interface.orjson— fast JSON parsing.prompt-toolkit— async input with Tab completion (bundled with questionary).questionary— interactive model picker.pydantic-settings— config management.
Installation
$ pip install hitmos
---> 100%
Quickstart
Save your API key
$ hitmos login
Or set an environment variable:
$ export OPEN_TOKEN=sk-or-...
Start chatting
$ hitmos
You will see:
╭─────────────────────────────────────────────────────╮
│ │
│ ✻ Welcome to Hitmos │
│ │
│ /help for commands │
│ │
╰─────────────────────────────────────────────────────╯
◆ ~/my-project
◆ deepseek/deepseek-chat
◆ context 12 KB
>
Ask anything about your project:
> what does this project do?
> add error handling to client.py
> explain the streaming logic
Commands
| Command | Description |
|---|---|
/help |
Show available commands |
/model |
Interactive model picker (↑↓ + Enter) |
/model <name> |
Switch model directly |
/clear |
Clear conversation history |
/reset |
Reset context |
/exit |
Exit Hitmos |
Switch model interactively
Type /model and press Enter to open the arrow-key picker:
? Select model (↑↓ navigate, Enter confirm, Ctrl+C cancel)
❯ deepseek/deepseek-chat DeepSeek Chat · fast, cheap, great for code
deepseek/deepseek-r1 DeepSeek R1 · reasoning model
google/gemini-2.5-flash Gemini 2.5 Flash · fast multimodal
google/gemini-2.5-pro Gemini 2.5 Pro · powerful multimodal
anthropic/claude-3.5-haiku Claude 3.5 Haiku · fast Anthropic
anthropic/claude-sonnet-4-5 Claude Sonnet 4.5 · balanced Anthropic
openai/gpt-4o-mini GPT-4o Mini · OpenAI fast
openai/o4-mini o4-mini · OpenAI reasoning
meta-llama/llama-3.3-70b-instruct Llama 3.3 70B · open source
mistralai/mistral-small-3.2-24b-instruct Mistral Small 3.2 · lightweight
Or use Tab completion: type /model deep then press Tab.
Configuration
Hitmos resolves the API key in this order:
OPEN_TOKENenvironment variableOPENROUTER_API_KEYenvironment variable~/.hitmos/config.toml
Config file format:
token = "sk-or-..."
model = "deepseek/deepseek-chat"
Contributing
Contributions are welcome! Please open an issue or pull request on GitHub.
License
This project is licensed under the terms of the MIT license.
Metadata
Release files for hitmos 0.0.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| hitmos-0.0.9.tar.gz | 48.1 kB | Without provenance | Details for hitmos-0.0.9.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| hitmos-0.0.9-py3-none-any.whl | Python 3 | none | any | Details for hitmos-0.0.9-py3-none-any.whl |
Total release size: 71.2 kB
Release files / hitmos-0.0.9.tar.gz
| Download URL | hitmos-0.0.9.tar.gz |
|---|---|
| Size | 48.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e16a9e9c69ca23d6cbd96e49aac14665fa3fdb6e49fdef1a8ae2cab8c270407b
|
|
BLAKE2b-256 checksum How to use checksums |
1d4a56facbbc830058ffbf3a326f20e32cd44ade99611aa12ddd7142de51345c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / hitmos-0.0.9-py3-none-any.whl
| Download URL | hitmos-0.0.9-py3-none-any.whl |
|---|---|
| Size | 23.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e9653f7a95c28cfeb10f16f2bae133fa633378a3bee442ba514599269d471d1f
|
|
BLAKE2b-256 checksum How to use checksums |
5221e2ad0f6a589ceeeb3a3b2be5b6e49392844876d02bcf61e7f9a451b0105f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Security for hitmos 0.0.9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.