Catalog PyPI
Back to packageRELEASE DETAILS

1.3.0

PyPI

agent-smithers

Agent Smithers Matrix bot (modular)

agentaibotchatbotmatrixmatrix-nio
Published23 Jun 2026
Direct dependencies8
Transitive dependenciesNot calculated

README

Version 1.3.0 documentation

Agent Smithers

Agent Smithers is an agentic AI assistant for the Matrix chat protocol using the Responses API format for OpenAI, xAI, or local models through LM Studio. It keeps separate conversation history for each user, lets people choose their own models and personas. It also supports search and code execution tools, remote MCP servers, and image or video features such as Grok Imagine. It even has GPT-4o available, if you miss that model.

This is a fork of inifinigpt-matrix

Table of Contents

Quick Start

pip install .
cp .env.example .env
# Edit .env — set MATRIX_*, DEFAULT_MODEL, and at least one provider key
agent-smithers --env-file .env

Or without installing the package:

pip install -r requirements.txt
python -m agent_smithers --env-file .env

Documentation

Full documentation lives in the docs/ folder:

Commands

Send these in any room the bot has joined.

User commands

CommandWhat it does
.ai <message>Chat with the bot using your conversation history
BotName: <message>Same as .ai — address by name
.x <user> <message>Send a message into another user's conversation context
.persona <text>Set a personality using the configured prompt wrapper
.custom <prompt>Replace your system prompt with arbitrary text
.resetClear your history and restore the default persona
.stockClear your history and run without any system prompt
.mymodel [name]Show your current model, or set a per-user override
.location [place]Show, set, or clear your location (added to system prompt)
.helpShow inline help (reads help.md if present)

Admin commands

Admins are set via MATRIX_ADMINS in .env.

CommandWhat it does
.model [name|reset]Show available models, or change the active model globally
.tools [on|off|toggle|status]Enable or disable hosted tools and MCP at runtime
.clearReset history and defaults for all users
.verbose [on|off|toggle]Control whether the brevity clause is included in new conversations

Conversation Persistence

Conversation history can be encrypted and saved to disk so it survives restarts. Generate a key and add it to .env:

agent-smithers --generate-key
# Paste the output into .env as HISTORY_ENCRYPTION_KEY

History is stored in store/history.enc alongside the Matrix device state. Without a key, history remains in-memory only (the default).

Configuration

Copy .env.example to .env. Minimum required variables:

MATRIX_SERVER=https://matrix.org
MATRIX_USERNAME=@bot:example.org
MATRIX_PASSWORD=secret
MATRIX_CHANNELS=!roomid:example.org
DEFAULT_MODEL=gpt-4o
OPENAI_API_KEY=sk-...

See docs/configuration.md for all variables, including LM Studio, MCP servers, tool toggles, history size, and E2E encryption settings.

E2E Encryption

The bot supports end-to-end encrypted Matrix rooms via matrix-nio[e2e]. This requires libolm to be available. Persist the store/ directory (or whatever MATRIX_STORE_PATH points to) across restarts to retain device keys. See docs/operations.md for verification and troubleshooting.

Contributing

See CONTRIBUTING.md for the contribution process and code style guide.

License

AGPL-3.0 — see LICENSE for details.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 8

Native requirements
8 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
matrix-nio
Environment
{
  "extras": "e2e",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
matrix-nio[e2e]runtime
httpx
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
httpxruntime
markdown
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
markdownruntime
rich
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
richruntime
pillow
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pillowruntime
cryptography
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
cryptographyruntime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pytest; extra == "test"runtime
pytest-asyncio
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pytest-asyncio; extra == "test"runtime

Distribution files

2 collected
agent_smithers-1.3.0-py3-none-any.whl

bdist_wheel · 84.49 KB · Python py3

Source file
agent_smithers-1.3.0.tar.gz

sdist · 96.5 KB · Python source

Source file

Repository

PENDING
h1ddenpr0cess20/agent-smithers

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 23:27 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:e87c6620a85b3ca5df5d4633404e7bc3c632687aa807d4f658beda8c4d86a3ca

Other collected versions

View all collected versions →