Heisenbridge a bouncer-style Matrix IRC bridge

Overview

Heisenbridge

a bouncer-style Matrix IRC bridge.

Heisenbridge brings IRC to Matrix by creating an environment where every user connects to each network individually like they would with a traditional IRC bouncer. Simplicity is achieved by exposing IRC in the most straightforward way as possible where it makes sense so it feels familiar for long time IRC users and prevents hiding protocol level events to help diagnose integration issues.

These compromises also mean that some IRC or Matrix features are managed with text commands rather than using the Matrix UI directly and some Matrix features that may seem to match IRC are not available anyway. Users on IRC should not know you are using Matrix unless you send media that is linked from your homeserver.

Please file an issue when you find something is missing or isn't working that you'd like to see fixed. Also bear in mind this project is still in very early stages of development so many things are missing or outright broken. Pull requests are more than welcome!

Support and development discussion in #heisenbridge:vi.fi

Use matrix-appservice-irc instead if you need to plumb rooms between Matrix and IRC seamlessly or need to connect large amounts of users.

Features

  • "zero configuration" - no databases or storage required
  • brings IRC to Matrix rather than Matrix to IRC - not annoying to folks on IRC
  • completely managed through admin room - just DM @Heisenbridge!
  • channel management through bridge bot - type Heisenbridge: help to get started!
  • online help within Matrix
  • access control for local and federated users
  • fully puppeted users from IRC, they come and go as they would on Matrix
  • tested with up to 1600 users in a single channel
  • IRCnet !channels are supported, you're welcome
  • any number of IRC networks and users technically possible
  • channel customization by setting the name and avatar
  • TLS support for networks that have it
  • customizable ident support
  • long message splitting directly to IRC
  • automatic identify/auth with server password or command on connect

Docker

The master branch is automatically published to Docker Hub:

docker pull hif1/heisenbridge
docker run --rm hif1/heisenbridge -h

Usage

usage: python -m heisenbridge [-h] [-v] -c CONFIG [-l LISTEN_ADDRESS]
                              [-p LISTEN_PORT] [-u UID] [-g GID] [-i]
                              [--generate] [--reset] [-o OWNER]
                              [homeserver]

a Matrix IRC bridge

positional arguments:
  homeserver            URL of Matrix homeserver (default:
                        http://localhost:8008)

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         logging verbosity level: once is info, twice is debug
                        (default: 0)
  -c CONFIG, --config CONFIG
                        registration YAML file path, must be writable if
                        generating (default: None)
  -l LISTEN_ADDRESS, --listen-address LISTEN_ADDRESS
                        bridge listen address (default: 127.0.0.1)
  -p LISTEN_PORT, --listen-port LISTEN_PORT
                        bridge listen port (default: 9898)
  -u UID, --uid UID     user id to run as (default: None)
  -g GID, --gid GID     group id to run as (default: None)
  -i, --identd          enable identd on TCP port 113, requires root (default:
                        False)
  --generate            generate registration YAML for Matrix homeserver
  --reset               reset ALL bridge configuration from homeserver and
                        exit
  -o OWNER, --owner OWNER
                        set owner MXID (eg: @user:homeserver) or first talking
                        local user will claim the bridge (default: None)

Install

  1. Install Python 3.6 or newer

  2. Install dependencies in virtualenv

    virtualenv venv
    source venv/bin/activate
    pip install git+https://github.com/hifi/heisenbridge
  3. Generate registration YAML

    python -m heisenbridge -c /path/to/synapse/config/heisenbridge.yaml --generate
  4. Add heisenbridge.yaml to Synapse appservice list

  5. (Re)start Synapse

  6. Start Heisenbridge

    python -m heisenbridge -c /path/to/synapse/config/heisenbridge.yaml
  7. Start a DM with @heisenbridge:your.homeserver to get online usage help

To update your installation, run pip install --upgrade git+https://github.com/hifi/heisenbridge

Develop

  1. Install Python 3.6 or newer

  2. Install dependencies

    virtualenv venv
    source venv/bin/activate
    pip install -e .[dev,test]
  3. (Optional) Set up pre-commit hooks

    pre-commit install

The pre-commit hooks are run by the CI as well.

Comments
  • Media URLs are incorrect

    Media URLs are incorrect

    Hi,

    This is similar to this issue https://github.com/matrix-org/matrix-appservice-irc/issues/154

    I'm running Heisenbridge in a container, and the address of the homeserver I pass to it is an internal URL http://synapse:8008/. When I upload media to IRC, the resulting URL starts with http://synapse:8008/.

    I'd like to have a way to specify an arbitrary domain instead, as is done with the upstream IRC appservice (media_url option).

    Thanks!

    opened by lenormf 11
  • @heisenbridge user not available on Conduit.rs

    @heisenbridge user not available on Conduit.rs

    Hello

    am trying to get this to work with the Conduit.rs homeserver.

    On the conduit side everything seems to be working and I added the content of the heisenbridge.yaml as described in the Conduit docu: https://gitlab.com/famedly/conduit/-/blob/master/APPSERVICES.md

    But when I start heisenbridge (connecting to http://localhost:6167 which is where Conduit runs) I just get the message about the version and the domain of my homeserver, but I can't start a DM with the @heisenbridge:myhomeserverdomain user.

    It just says that the user is invited to the room...

    As I am pretty new to this Matrix thing, I might be overlooking something, but it seems this might be a bug either in Heisenbridge or Conduit?

    opened by poVoq 10
  • Any way to set this up to connect to multiple servers?

    Any way to set this up to connect to multiple servers?

    I find the description to be very confusing. I currently use an IRC client connected to multiple servers through three separate ZNC instances. One network I am connected as X on ZNC X, another network I am connected as Y on ZNC Y, but both ZNC instances could also be connected to the same network, in some cases even joining the same channels. I would like to attach all these to the same Matrix user, so that I can access them all from within Element. The experience I am looking for would be to have a group per connection, so one group called X-server1, one group called X-server2, one group called Y-server1 etc, giving me that same separation between channels and PMs on various IRC networks as I have now.

    Is this possible? I would think that the bouncer mode would be correct for this, but can this map the same Matrix user to multiple different IRC users, or would this remove the separation I have going on?

    opened by IeuanK 7
  • Re-send edited messages

    Re-send edited messages

    Hi,

    I got the following message after editing a message:

    Editing messages is not supported on IRC, edited text was NOT sent.
    

    I think the right behaviour would be to simply re-send the edited message, if that's possible?

    Thanks!

    opened by lenormf 6
  • More mypy

    More mypy

    The init methods got removed and replaced by proper constructors, where possible. I don't really know if the code actually works, so handle with care ^^.

    opened by piegamesde 6
  • Strange blank notices from bot in control room

    Strange blank notices from bot in control room

    I'm getting a decent amount of strange, empty m.notice messages in one of my IRC network control rooms. I'm not sure what info might be useful here, primarily because I'm not exactly sure what is happening to try to reproduce it and only one of my networks is doing it. The network in question seems to be running UnrealIRCd-5.2.2-git.

    Here is a screenshot of the messages. They're blank so I guess not that interesting:

    Screen Shot 2022-03-29 at 16 46 50

    And here is the "view source" of one of the messages. I redacted the room_id and sender. I don't know if they're actually anything to worry about sharing, though.

    {
      "content": {
        "body": "",
        "msgtype": "m.notice"
      },
      "origin_server_ts": 1648585303893,
      "sender": "@heisenbridge:<redacted>",
      "type": "m.room.message",
      "unsigned": {
        "age": 80
      },
      "event_id": "$Kx6XKEfX4-rTZohjw7p_PPVKqOJ-GpzlJoX5wr1h6J0",
      "room_id": "<redacted>"
    }
    
    opened by ahanselka 5
  • Strips @ from URLs making it impossible to share many Mastodon URLs

    Strips @ from URLs making it impossible to share many Mastodon URLs

    We found this strange issue that the bridge (in plumb mode) seems to strip @ signs from URLs, which is a problem when sharing links to Mastodon posts.

    opened by poVoq 4
  • Don't touch my URLs!

    Don't touch my URLs!

    Heisenbridge should not do any processing with any tokens that might parse as URI. Currently, try sending an URL containing an @mention, and the '@' will disappear from the posted URL, rendering the link invalid.

    opened by piegamesde 4
  • Hide invites in a hidden room

    Hide invites in a hidden room

    Makes use of version 9 rooms ability to be restricted to allow users who are members of another rooms. Joins all puppeted users into the hidden room first, if one is set for the channel. Avoids invite spam in the actual rooms.

    Migration of existing rooms is possible via room level command, if they are first migrated to version 9 via external means (most Clients can do that with a simple command).

    opened by BtbN 4
  • RELAYMSG sending support

    RELAYMSG sending support

    We are now draft/relaymsg aware enough to send them and filter out our own relayed messages.

    The tag after relayed name defaults to "m" and is configurable with RELAYTAG plumbed room command.

    opened by hifi 4
  • Invalid JSON (Synapse)

    Invalid JSON (Synapse)

    Hi,

    Recently my bridge has stopped working - I think this coincides with the update to synapse 1.47.0, which manifests like this:

    Traceback (most recent call last):
      File "/root/heisenbridge/lib/python3.9/site-packages/heisenbridge/__main__.py", line 171, in _on_mx_event
        await room.on_mx_event(event)
      File "/root/heisenbridge/lib/python3.9/site-packages/heisenbridge/room.py", line 106, in on_mx_event
        await handler(event)
      File "/root/heisenbridge/lib/python3.9/site-packages/heisenbridge/private_room.py", line 628, in on_mx_message
        await self.serv.api.post_room_receipt(event["room_id"], event["event_id"])
      File "/root/heisenbridge/lib/python3.9/site-packages/heisenbridge/matrix.py", line 254, in post_room_receipt
        return await self.call("POST", f"/_matrix/client/r0/rooms/{room_id}/receipt/{receipt_type}/{event_id}")
      File "/root/heisenbridge/lib/python3.9/site-packages/heisenbridge/matrix.py", line 92, in call
        raise self._matrix_error(ret)
    heisenbridge.matrix.MatrixError: M_NOT_JSON
    

    and on synapse:

    2021-11-22 16:36:09,025 - synapse.http.servlet - 620 - WARNING - POST-69100 - Unable to parse JSON: Expecting value: line 1 column 1 (char 0) (b'')
    

    I'm not sure if I can dump the json easily, unless there is a heisenbridge flag I can pass to have it spew out debug?

    While control rooms work fine, any attempt to send (or receive) messages in joined irc channels/PMs cause the above

    opened by jwh 4
  • Allow quoting full messages when replying

    Allow quoting full messages when replying

    This adds a configuration option quote_messages which allows quoting full messages when replying to a message in Matrix.

    Disabled (default, and current behavior):

    <alice> hello
    <bob> alice: hi
    

    Enabled:

    <alice> hello
    <bob> > alice: hello
    <bob> hi
    

    I find that when there are a lot of people talking on a channel, or when answering an old message, quoting it fully makes more sense than just mentioning the author.

    Since I didn't want to change the behavior too much, I kept the current behavior as the default, but I suggest we change the default to the new behavior (or even remove the config option and make it the only behavior...?).

    opened by blastrock 5
  • Disable Heisenbridge reactions on relaybotted rooms (or add config key)

    Disable Heisenbridge reactions on relaybotted rooms (or add config key)

    When a room has hundreds of users and only fraction of them come from IRC, the reactions (scissors, chain, ...) just confuse users.

    image

    IRC bridge should remain silent when it's in relaybot mode or alternatively it should be a configuration option per channel.

    opened by zouppen 0
  • error with

    error with "status" command

    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]: ERROR:root:Ignoring exception from room handler. This should be fixed.
    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]: Traceback (most recent call last):
    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]:   File "/opt/heisenbridge/heisenbridge/__main__.py", line 202, in _on_mx_event
    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]:     await room.on_mx_event(event)
    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]:   File "/opt/heisenbridge/heisenbridge/room.py", line 100, in on_mx_event
    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]:     await handler(event)
    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]:   File "/opt/heisenbridge/heisenbridge/control_room.py", line 240, in on_mx_message
    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]:     await self.commands.trigger(command, tail)
    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]:   File "/opt/heisenbridge/heisenbridge/command_parse.py", line 95, in trigger
    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]:     await self.trigger_args(args, tail, allowed, forward)
    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]:   File "/opt/heisenbridge/heisenbridge/command_parse.py", line 79, in trigger_args
    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]:     await func(cmd_args)
    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]:   File "/opt/heisenbridge/heisenbridge/control_room.py", line 412, in cmd_status
    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]:     users.sort()
    Aug 26 20:39:22 pandora.woodpeckersnest.space matrix-heisenbridge[4051808]: TypeError: '<' not supported between instances of 'str' and 'NoneType'
    
    opened by roughnecks 0
  • Bot not working

    Bot not working

    Since a while now, the bridge bot is not working anymore, I'm not sure, but maybe since the last synapse update? Also tried installing it on a new instance of synapse but isn't working either. These are the verbose logs I got when starting the bridge and joining a room with it:

    (mautrix-irc) [email protected]:/opt/mautrix-irc# python -m heisenbridge -c /opt/mautrix-irc/registration.yaml --verbose
    Heisenbridge v1.13.1
    INFO:root:We are @heisenbridge:flowerhouse.at
    INFO:root:We (@heisenbridge:flowerhouse.at) are not a server admin, inviting puppets is required.
    INFO:aiohttp.access:127.0.0.1 [19/Aug/2022:17:57:48 +0000] "PUT /transactions/127?access_token=********* HTTP/1.1" 200 158 "-" "Synapse/1.65.0"
    INFO:root:Got an invite from @fabian:flowerhouse.at
    INFO:root:Whitelisted user @fabian:flowerhouse.at invited us, going to accept.
    ERROR:root:Failed to create control room.
    Traceback (most recent call last):
      File "/opt/mautrix-irc/lib/python3.9/site-packages/heisenbridge/__main__.py", line 268, in _on_mx_event
        await room.save()
      File "/opt/mautrix-irc/lib/python3.9/site-packages/heisenbridge/room.py", line 88, in save
        await self.az.intent.set_account_data("irc", config, self.id)
    AttributeError: 'ControlRoom' object has no attribute 'az'
    

    Version: {"server_version":"1.65.0","python_version":"3.9.2"} Heisenbridge version: 1.13.1

    opened by Tropaion 4
  • Can't join channels with non-ascii characters

    Can't join channels with non-ascii characters

    ...or at the very least channels with Japanese characters in them. For example, if I try to join #日本語 on euirc, I get the following:

    screenshot

    Is that an actual problem or am I just doing something dumb?

    bug 
    opened by Rouji 3
Releases(v1.14.0)
  • v1.13.0(May 18, 2022)

    • Read default port and listen address from config url (@BtbN)
    • Improvements to pillifying IRC nicks, again
    • Fixes for AUTOQUERY not always working correctly
    • Allow anyone to use STATUS command to get their own status
    • Filter control characters only for plumbs so people can send garbage to IRC if they wish from Matrix
    • Support for converting IRC color codes to Matrix (@tjaderxyz)
    • Fixed compose docker Synapse configuration for registration
    • Improved Python 3.10 compatibliy (@BtbN)
    • Hidden room to hide joins using restricted rooms join rule (@BtbN)

    Enabling hidden room functionality additionally requires either re-joining channels or having them already at v9 and using the UPGRADE command.

    Source code(tar.gz)
    Source code(zip)
    heisenbridge-1.13.0.tar.gz(66.58 KB)
  • v1.12.0(Apr 22, 2022)

    • Make MAXLINES and PASTEBIN option available to every room & global defaults (thanks @BtbN)
    • Fix 'NoneType' is not iterable error (thanks @BtbN)
    • Upgrade to Mautrix 0.16

    Not much to see here. A small contribution release which is always a nice thing when people come around and help 🤗.

    Source code(tar.gz)
    Source code(zip)
    heisenbridge-1.12.0.tar.gz(62.61 KB)
  • v1.11.0(Apr 3, 2022)

    • Fixed retry behavior on startup to wait for HS startup
    • Ignore TAGMSG messages from IRC server
    • Fixed HTML messages not working as commands
    • Fixed room aliases in messages dropping the message completely
    • Upgrade to Mautrix 0.15

    This release also breaks support for homeservers not supporting the "v3" API path so if you run Synapse 1.47 or older the bridge will not start.

    Source code(tar.gz)
    Source code(zip)
    heisenbridge-1.11.0.tar.gz(62.23 KB)
  • v1.10.0(Jan 14, 2022)

    • RELAYMSG sending support 🚀
    • Allow forwarding all IRC noise to network room
    • Support ZNC self-message caps ✅
    • Support CHGHOST caps (prevents leave+join on host change) ✅
    • Fix owner auto-registration (regression) 🐛
    • Upgrade to Mautrix 0.14 ⬆️

    Not a breaking change but the caps support will cause connections to networks that ignore CAP requests take a few seconds longer unless you remove all the default caps for said network and it will never try requesting them again.

    Mautrix 0.14 upgrade bumps the minimum version as well so packages beware.

    Source code(tar.gz)
    Source code(zip)
    heisenbridge-1.10.0.tar.gz(61.87 KB)
  • v1.9.0(Dec 29, 2021)

    • Spaces support 🌃
    • Proper SASL external with CertFP with mechanism override option (see notes)
    • Disconnect and cleanup from networks that have no rooms open ♻️
    • Reply (and reject) DM requests to ghosts with QUERY command ↪️
    • Try to keep IRC users in the room at all costs if they are on the IRC channel
    • Prevent accidental namespace changes to cause mayhem
    • Conduit support was broken in 1.8.x but fixed again in 1.9.0, sorry

    Upgrade warning: CertFP SASL has been updated to do SASL external flow by default. If you are upgrading and have used CertFP with OFTC you need to run SASL --mechanism=none for it to connect again.

    Source code(tar.gz)
    Source code(zip)
    heisenbridge-1.9.0.tar.gz(60.58 KB)
  • v1.8.1(Dec 24, 2021)

  • v1.8.0(Dec 20, 2021)

  • v1.7.1(Nov 22, 2021)

  • v1.7.0(Nov 18, 2021)

    • Implement "best effort" basic IRC moderation in plumbed rooms if bot has ops on IRC
    • Allow configuring topic sync for plumbs (IRC<->Matrix or one way)
    • Allow using forward slash (/) as MXID separator for IRC ghosts
    • Bump max mautrix version to <0.12

    The separator for IRC ghosts can now be changed to forward slash (/) from the default underscore (_). This happens by modifying the regex in the registration file. Only do this for new installations and it will cause all IRC users to duplicate in rooms who you can't remove and probably other bad side effects as well. The default may be changed in the future.

    Source code(tar.gz)
    Source code(zip)
    heisenbridge-1.7.0.tar.gz(59.23 KB)
  • v1.6.0(Nov 12, 2021)

  • v1.5.0(Nov 5, 2021)

    • Allow opening multiple simultaneous connections to the same network
    • New STOP/STAHP ROOM command to end a long paste flood
    • Clear channel send queue if the user gets kicked to prevent continuing flood on rejoin
    • New KB ROOM command to do a proper kick & ban (contributed by GitHub user @blastrock, thanks!)

    Upgrading from previous version to v1.5.0 will cause a small migration for every channel/pm that is open so it might take a little longer for the first startup to complete. If no multiple network connections are opened it is safe to downgrade but if someone uses the feature it will cause shenanigans for the duplicate networks in the older version.

    Source code(tar.gz)
    Source code(zip)
    heisenbridge-1.5.0.tar.gz(57.53 KB)
  • v1.4.1(Oct 30, 2021)

  • v1.4.0(Oct 28, 2021)

    • Free form AUTOCMD after joining a channel, per channel
    • Automatic rejoin on invite or kick (invite enabled by default)
    • AVATAR network room command to set avatars for IRC users (admin only)
    • WHOIS room command for PMs, PART for channels
    • Add ROOM command in network room to run channel room commands safely
    • Move PLUMBCFG stuff under ROOM command

    QoL stuff, remember to use ROOM command instead of PLUMBCFG now.

    Source code(tar.gz)
    Source code(zip)
    heisenbridge-1.4.0.tar.gz(56.53 KB)
  • v1.3.0(Oct 21, 2021)

  • v1.2.1(Sep 30, 2021)

  • v1.2.0(Sep 23, 2021)

    • Message formatting (from HTML to text) has been drastically improved
    • CTCP replies are now shown correctly but still ignored
    • Mentions/pills always honor room nick
    • Plumb notices don't loop around anymore
    • Self replies don't prefix with own nick
    • Single line truncation works when max lines is 1
    • Multiple fixes to displaynames or messages containing control characters leaking to IRC
    • New dependency: mautrix-python
    • Minimum Python version requirement has been bumped to 3.7

    PyPI: https://pypi.org/project/heisenbridge/1.2.0/

    Source code(tar.gz)
    Source code(zip)
    heisenbridge-1.2.0.tar.gz(50.39 KB)
  • v1.1.2(Sep 21, 2021)

  • v1.1.1(Sep 17, 2021)

  • v1.1.0(Sep 14, 2021)

    • Message edits are now supported and use stupid context aware "compact enough" edit format (+ - *)
    • Media will be quarantined if you redact them and the bridge is an admin on the HS
    • Public media URL can now be overridden in control room if auto-detection fails
    • New plumbs respect the default member sync setting
    • ; is included in pill separators
    Source code(tar.gz)
    Source code(zip)
    heisenbridge-v1.1.0.tar.gz(46.73 KB)
  • v1.0.1(Sep 3, 2021)

    Show part reason, fix emotes after refactoring just before 1.0.0, fix CTCP leaking on plumbs, show real errors when debugging connectivity issues in verbose mode.

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Aug 17, 2021)

Owner
Toni Spets
🤔🤔🤔🤦
Toni Spets
Wordle-solve - Attempting to solve wordle

Wordle Solver Run with python wordle_beater.py. This hardmode wordle solver take

Tom Lockwood 42 Oct 11, 2022
Spooky Castle Project

Spooky Castle Project Here is a repository where I have placed a few workflow scripts that could be used to automate the blender to godot sprite pipel

3 Jan 17, 2022
Unofficial Valorant documentation and tools for third party developers

Valorant Third Party Toolkit This repository contains unofficial Valorant documentation and tools for third party developers. Our goal is to centraliz

Noah Kim 20 Dec 21, 2022
Starscape is a Blender add-on for adding stars to the background of a scene.

Starscape Starscape is a Blender add-on for adding stars to the background of a scene. Features The add-on provides the following features: Procedural

Marco Rossini 5 Jun 24, 2022
monster hunter world randomizer project

mhw_randomizer monster hunter world randomizer project Settings are in rando_config.py Current script for attack randomization is n mytest.py There ar

2 Jan 24, 2022
This is Gaurav's IP Project Completed in the year session of 2021-2022.

The Analyser by Gaurav Rayat Why this Project? Today we are continuously hearing about growth in Crime rates and the number of murders executed day by

1 Dec 30, 2021
A simple hash system.

PBH-Hash-System A simple hash system. Usage You could use it like this: from pbh import pbh print(pbh("Hey", True)) Output: 2feae2471698cfcdcbd6b98ca

Karim 3 Mar 24, 2022
An upgraded version of extractJS

extractJS_2.0 An enhanced version of extractJS with even more functionality Features Discover JavaScript files directly from the webpage Customizable

Ali 4 Dec 21, 2022
Basic code and description for GoBigger challenge 2021.

GoBigger Challenge 2021 en / 中文 Challenge Description 2021.11.13 We are holding a competition —— Go-Bigger: Multi-Agent Decision Intelligence Challeng

OpenDILab 183 Dec 29, 2022
A Non profit app built on top of Frappe framework & ERPNext

Non Profit A Non profit app built on top of Frappe framework & ERPNext. People who change the world need the tools to do it! The Non Profit Modules of

Frappe 16 Nov 17, 2022
The first Python 1v1.lol triggerbot working with colors !

1v1.lol TriggerBot Afin d'utiliser mon triggerbot, vous devez activer le plein écran sur 1v1.lol sur votre naviguateur (quelque-soit ce dernier). Vous

Venax 5 Jul 25, 2022
Analyze FnO trends by using NSE Bhav copy

BhavFnO Analyze FnO trends by using NSE Bhav copy Download entire BhavFnO folder and unzip it In that folder open command window

33 Jan 04, 2023
Dicionario-git-github - Dictionary created to help train new users of Git and GitHub applications

Dicionário 📕 Dicionário criado com o objetivo de auxiliar no treinamento de nov

Felippe Rafael 1 Feb 07, 2022
A Sophisticated And Beautiful Doxing Tool

Garuda V1.1 A Sophisticated And Beautiful Doxing Tool Works on Android[Termux] | Linux | Windows Don't Forget to give it a star ❗ How to use ❓ First o

The Cryptonian 67 Jan 10, 2022
addon for blender to import mocap data from tools like easymocap, frankmocap and Vibe

b3d_mocap_import addon for blender to import mocap data from tools like easymocap, frankmocap and Vibe ==================VIBE================== To use

Carlos Barreto 97 Dec 07, 2022
Minimalist BERT implementation assignment for CS11-747

minbert Assignment by Zhengbao Jiang, Shuyan Zhou, and Ritam Dutt This is an exercise in developing a minimalist version of BERT, part of Carnegie Mel

Graham Neubig 51 Jan 03, 2023
personal dotfiles for rolling release linux distros

dotfiles Screenshots: Directions: Deploy my dotfiles with yadm Packages from arch listed in .installed-packages Information on osu! see ~/Games/osu!/.

-pacer- 0 Sep 18, 2022
Sublime Text 2/3 style auto completion for ST4

Hippie Autocompletion Sublime Text 2/3 style auto completion for ST4: cycle through words, do not show popup. Simply hit Tab to insert completion, hit

Alexander Schepanovski 20 May 19, 2022
Render your templates using .txt files

PizzaX About Run Run tests To run the tests, open your terminal and type python tests.py (WIN) or python3 tests.py (UNX) Using the function To use the

Marcello Belanda 2 Nov 24, 2021
A variant caller for the GBA gene using WGS data

Gauchian: WGS-based GBA variant caller Gauchian is a targeted variant caller for the GBA gene based on a whole-genome sequencing (WGS) BAM file. Gauch

Illumina 16 Oct 13, 2022