- Python 99.9%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
CI / precommit (push) Successful in 28s
CI / test (3.12) (push) Successful in 5m15s
CI / test (3.13) (push) Successful in 5m29s
CI / test (3.15) (push) Successful in 4m20s
CI / test (3.14) (push) Successful in 6m34s
CI / image (push) Successful in 1m0s
|
||
| .forgejo/workflows | ||
| jarvis | ||
| tests | ||
| .dockerignore | ||
| .flake8 | ||
| .gitattributes | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| compose.env | ||
| compose.yaml | ||
| Dockerfile | ||
| jarvis.png | ||
| jarvis.svg | ||
| jarvis_small.png | ||
| LICENSE | ||
| PRIVACY.md | ||
| pyproject.toml | ||
| README.md | ||
| requirements.precommit.txt | ||
| run.py | ||
| sample.env | ||
| schema.yaml | ||
| TERMS.md | ||
| uv.lock | ||
Just Another Rather Very Intelligent System
Welcome to the JARVIS Initiative, an open-source multi-purpose bot
Features
JARVIS currently offers:
- 👩💼 Administration:
verify,ban/unban,kick,purge,mute/unmuteand more! - 🚓 Moderation:
lock/unlock,lockdown,warn,autoreact, and also more! - 🔧 Utilities:
remindme,rolegiver,temprole,image, and so many more! - 🏷️ Tags: Custom
tags! Useful for custom messages without the hassle!
Contributing
Before creating an issue, please ensure that it hasn't already been reported/suggested. If you have a question, please join the community Discord before opening an issue.
If you wish to contribute to the JARVIS codebase or documentation, join the Discord! The recognized developers there will help you get started.
Community
Join the Stark R&D Department Discord server to be kept up-to-date on code updates and issues.
Versions
jarvis-bot, jarvis-tasks and jarvis-core are released together and share a version number: 3.x of each work with 3.x of the others. A change that needs matching releases of the other two bumps the major version of all three.
Requirements
- MongoDB 7.0 or higher
- Redis
- Python 3.12 or higher
- interactions.py 6.0 (currently a release candidate)
- uv for installing dependencies
Running
uv sync --no-dev
cp sample.env .env # fill in TOKEN, ERAPI and the database settings
uv run python run.py
Discord IDs are stored as integers since jarvis-core 2.0. When upgrading a database that was written by an older
version, run uv run jarvis-migrate once, before starting the bot.
Optional settings (see sample.env): PHISHLIST_CHANNEL, ERROR_CHANNEL, PASTE_SITE and OWNER_PREFIX, which
enables the owner-only text commands (echo, tail, log, sysinfo, crash).
Development
uv sync
JARVIS_TEST_MONGO_URI=mongodb://localhost:27017 JARVIS_TEST_MONGO_DB=jarvis_test uv run pytest
The tests use a real MongoDB and wipe the collections of JARVIS_TEST_MONGO_DB, so point it at a throwaway database.
JARVIS Features
Core Features
- Reminders!
- Set a reminder using human wording
- Repeat daily, weekly or monthly with one click, or use cron for anything else!
- Choose to get it as a DM right in the form
- Copy reminders that other users make so that you can also be reminded of it
- Server, User, and Role info!
- List all the emotes in the server!
- Check the bot status and see the logo!
- Install the bot to your own account to use the utility commands (
/pw,/timestamp,/calc,/dev,/avatar,/pigpen,/lmgtfy,/rc) in DMs, group chats and servers the bot is not in! - Secure password generation!
- Timestamp conversions!
Admin Features
- Track administrative actions taken against users!
- Bans, mutes, and more!
- Custom warnings
- Moderation cases
- Warn for pinging too many people/specific roles!
- Raid and spam alerts: a channel of your choice hears about joins at raid speed, someone posting in channel after channel, or many people posting the same thing, with buttons to mute, kick, ban or dismiss. Thresholds can be tuned per server with
/settings set alert_options. JARVIS only alerts; it never locks down or acts on its own - Warning escalation: mute, kick or ban automatically when a member reaches a number of active warnings
- Members can report a message to the moderators with the Report Message menu
- Discord AutoMod actions show up in the activity log next to the bot's own filter hits
- Server lockdowns to help with raids/spam, with channels and categories you can leave open
- Custom filters to prevent certain messages/phrases!
- Automated purging of channels, and
/purgefilters (user, bots, text, links, attachments, message range) - Verification system
Extra Features
- Calculator!
- Calculate basic math expressions
- Convert to and from many different units
- All conversions supported by the Microsoft calculator are supported!
- Live currency conversions
- Developer Tools!
- Hash using any Python-supported hash function!
- You can even hash URLs and uploads!
- Base-n encoding and decoding!
- Unique ID generation via ULIDs, UUIDs, and ObjectIDs!
- Hash using any Python-supported hash function!
- Image processing!
- Shrink an image to fit a certain size! Useful for making emotes
- Pinboard!
- Run out of pins? Use the pinboard!
- Dedicated channel for pinning messages
- Optionally pin automatically once a message gets enough reactions
- Rolegiver!
- Advanced self-assigned roles
- Group together roles for better organization!
- Add several roles to a group at once with
/rolegiver bulk - Pick-one groups, groups that need a role first, and role menus that stay in a channel for anyone to use
- Tags!
- Custom text responses from the bot
- Editing can be done by the author or a moderator!
- Aliases, search, and a most-used list