Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

T3 Code DS

Build and publish License: MIT

A small, self-contained T3 Code client for Nintendo DS hardware and modded Nintendo 3DS systems.

T3 Code DS lets you browse existing threads, read recent messages, and write replies using the touch keyboard. It talks directly to the T3 Code server running on your computer—there is no bridge and no T3 server running on the console.

Install

The easiest option on a modded 3DS is the DSiWare CIA:

  1. Open the T3 Code DS download page on another device.
  2. In FBI, choose Remote Install → Scan QR Code.
  3. Scan the QR code and confirm the installation.
  4. Launch T3 Code DS from the HOME Menu.

FBI install QR code

You can also download the latest t3code-ds.cia directly. The Pages site always serves the build from the latest successful main workflow.

Alternatively, download t3code-ds.nds, copy it to the SD card, and launch it through TWiLight Menu++ in DSi mode.

Requirements

  • A modded Nintendo 3DS, 2DS, DSi, or compatible DS homebrew environment
  • DSi mode, strongly recommended for the additional memory and Wi-Fi support
  • A saved, compatible wireless connection
  • A T3 Code server reachable over your trusted local network

The DS client currently supports plain http:// LAN endpoints only. It does not support TLS, so do not expose the T3 server port to the public internet.

Connect to T3 Code

T3 Code desktop

  1. Open Settings → Connections.
  2. Under Manage Local Backend, enable Network access.
  3. Select the direct LAN endpoint, normally something like http://192.168.1.20:3773.
  4. Choose Create Link and keep the direct http://.../pair#token=... link.

T3 CLI

Run T3 on an address your console can reach:

npx t3@latest serve --host 0.0.0.0

Binding to a specific private LAN or Tailnet address is preferable when practical.

First launch

Enter the direct server address and the one-time pairing token. A complete http://.../pair#token=... URL can be entered in the first field instead.

The pairing credential is exchanged for a bearer session scoped to:

orchestration:read orchestration:operate

The resulting session is saved to sd:/t3ds/config.ini. The bearer is plaintext on the SD card; use SELECT on the thread list to remove it and pair again, or revoke the client from T3 Code.

For long tokens, you can prepare the configuration file before launching:

server=http://192.168.1.20:3773
pairing_token=PASTE_THE_ONE_TIME_TOKEN_HERE

Features

  • Direct OAuth pairing with a T3 Code environment
  • Active thread list with running and pending indicators
  • Recent user and assistant messages
  • Replies composed with the DS touch keyboard
  • Automatic polling while a thread is running
  • Manual list and thread refresh
  • Large-thread handling that discards payloads the DS UI does not display
  • Scoped session storage on the console SD card

The HTTP routes and command payloads follow the same client flow as T3 Code Mobile. The mobile app uses a WebSocket subscription after loading its HTTP snapshot; this build polls the thread snapshot to keep the runtime small and dependable on DS hardware.

Controls

Screen Control Action
Thread list Up / Down Move selection
Thread list A Open thread
Thread list X Refresh
Thread list SELECT Remove pairing and set up again
Thread A Write a reply
Thread X Refresh
Thread Up / Down Scroll one line
Thread L / R Scroll one page
Thread B Return to thread list
Anywhere START Exit
Touch keyboard ENTER Confirm or send
Touch keyboard B Cancel

Build locally

You need Docker, Git, Make, and a C compiler. The packaging script uses devkitPro's official devkitARM image and builds the open-source make_cia utility from a pinned CTR Toolkit revision:

make test
ROM_VERSION=4 ./tools/build_cia.sh

The outputs are:

  • t3code-ds.nds — homebrew ROM
  • t3code-ds.dsi — DSi-enhanced SRL
  • t3code-ds.cia — installable DSiWare package

The GitHub Actions workflow runs the host protocol/client tests, builds all three packages, publishes downloadable artifacts, deploys the landing page, and attaches builds to v* tags.

For quick ROM-only builds:

make docker

To serve a local FBI download page and QR code:

python3 tools/serve_rom.py --bind 0.0.0.0 --port 8000

Resource limits

The DS interface intentionally retains a compact view of T3:

  • Up to 64 active threads
  • The newest 24 messages in an open thread
  • Up to 1,535 bytes of text per retained message
  • Thread HTTP responses up to 8 MiB
  • Activity payloads, checkpoints, proposed plans, and attachment metadata are removed before JSON tokenization because this client does not display them
  • Markdown is rendered as readable plain text; unsupported glyphs become ?

Approvals and structured user-input prompts must still be handled in desktop or mobile T3 Code. Creating projects and new threads is outside the current client.

Project layout

include/                 C headers
source/                  DS client, HTTP, JSON, and T3 protocol code
tests/                   Host-side protocol and isolated HTTP integration tests
site/                    GitHub Pages landing page
tools/build_cia.sh       Reproducible NDS, DSi SRL, and CIA packaging
tools/serve_rom.py       Local download and QR server
.github/workflows/       CI, release artifacts, and Pages deployment

Credits

  • T3 Code for the server and mobile client protocol
  • devkitPro and libnds for the Nintendo DS toolchain
  • CTR Toolkit for make_cia
  • melonDS for emulator testing

T3 Code DS is an independent community project and is not affiliated with Nintendo.

License

MIT

About

A direct T3 Code client for Nintendo DS and modded 3DS systems

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages