MCPcopy Index your code
hub / github.com/diamondburned/gotktrix

github.com/diamondburned/gotktrix @v0.1.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.4 ↗ · + Follow
1,185 symbols 3,786 edges 101 files 656 documented · 55%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

gotktrix

screenshot

Matrix client in Go and GTK4.

Features

List taken from the Features section of the Clients Matrix page.

  • [x] Room directory
  • [ ] Room tag showing
  • [ ] Room tag editing
  • [x] Search joined rooms
  • [ ] Room user list
  • [ ] Display Room Description
  • [ ] Edit Room Description
  • [x] Highlights
  • [x] Push rules
  • [x] Send read markers
  • [ ] Display read markers
  • [ ] Sending Invites
  • [ ] Accepting Invites
  • [x] Typing Notification (receive-only)
  • [ ] E2EE
  • [x] Replies
  • [x] Attachment uploading
  • [x] Attachment downloading
  • [ ] Send stickers
  • [x] Send formatted messages markdown
  • [x] Rich Text Editor for formatted messages
  • [x] Display formatted messages
  • [x] Redacting
  • [x] Multiple Matrix Accounts
  • [ ] New user registration
  • [ ] VoIP (non-goal)
  • [x] Reactions
  • [x] Message editing
  • [ ] Room upgrades
  • [ ] Localizations (untested, outdated)
  • [x] SSO Support

Additionally, the client implements:

  • Custom and Unicode Emojis
  • Autocompletion
  • Mobile support (partial)
  • Partial Spaces support

Installing

go install -v github.com/diamondburned/gotktrix@latest

Dependencies

See package-base.nix.

Installing is faster with a patched Go compiler; see overlay.nix.

Extension points exported contracts — how you extend this code

Driver (Interface)
Driver is a basic getter-setter interface that describes a secret driver. [4 implementers]
internal/secret/secret.go
RenderWidgetter (Interface)
RenderWidgetter extends a Widgetter. [3 implementers]
internal/app/messageview/message/mcontent/text/text.go
ConfigPather (Interface)
ConfigPather is an interface describing any instance that can generate a ConfigPath for gotktrix. Realistically, app.App
internal/gotktrix/config.go
RoomTabOpener (Interface)
RoomTabOpener can optionally be implemented by Application. [2 implementers]
internal/app/roomlist/space/space.go
InterceptFunc (FuncType)
InterceptFunc is a function for intercepting a request. The request being intercepted is given, as well as a callback th
internal/gotktrix/internal/httptrick/client.go
Searcher (Interface)
Searcher is the interface for anything that can handle searching up a particular entity, such as a room member. [2 implementers]
internal/app/messageview/compose/autocomplete/data.go
InterceptFullFunc (FuncType)
InterceptFullFunc is the full version of InterceptFunc: the next callback also returns a response.
internal/gotktrix/internal/httptrick/client.go
Section (Interface)
Section is the controller interface that Room holds as its parent section. [1 implementers]
internal/app/roomlist/room/room.go

Core symbols most depended-on inside this repo

Wrap
called by 72
internal/gotktrix/internal/handler/registry.go
FromContext
called by 62
internal/gotktrix/gotktrix.go
Offline
called by 34
internal/gotktrix/gotktrix.go
Remove
called by 30
internal/app/roomlist/room/room.go
Error
called by 30
internal/gotktrix/logger.go
Unmarshal
called by 28
internal/gotktrix/internal/db/marshal.go
Show
called by 26
internal/components/filepick/filepicker.go
SetSizeRequest
called by 24
internal/md/md.go

Shape

Method 633
Function 335
Struct 163
Interface 25
TypeAlias 22
FuncType 7

Languages

Go100%

Modules by API surface

internal/gotktrix/gotktrix.go66 symbols
internal/app/messageview/page.go44 symbols
internal/app/roomlist/section/section.go37 symbols
internal/app/messageview/message/mcontent/text/htmlblock.go36 symbols
internal/app/messageview/message/mcontent/text/html.go33 symbols
internal/gotktrix/internal/state/state.go31 symbols
internal/gotktrix/internal/db/node.go29 symbols
internal/components/assistant/assistant.go28 symbols
internal/app/roomlist/space/space.go25 symbols
internal/gotktrix/internal/handler/registry.go24 symbols
internal/app/roomlist/room/room.go23 symbols
internal/app/messageview/compose/input.go22 symbols

For agents

$ claude mcp add gotktrix \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page