Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TeamsIO

TeamsIO person and presence ring

A Windows desktop board for Microsoft Teams presence and status messages across your chosen Entra groups.

Setup

The first-run setup includes an offline App registration guide. Follow it in the app, or read the full setup guide. It covers registration, permissions and consent, ID locations, and troubleshooting.

  1. Create an Entra app registration for your organization. Add a Mobile and desktop applications platform with redirect URI http://localhost.
  2. Add Microsoft Graph delegated permissions GroupMember.Read.All, Presence.Read.All, and User.ReadBasic.All. Have an administrator grant consent.
  3. Launch TeamsIO and enter your tenant ID, application (client) ID, and one or more group object IDs. No client secret is needed.
  4. Sign in with an account in that tenant. The board shows direct user members of the selected groups, deduplicated across groups.

Right-click the board and choose Tenant, Client & Group IDs… to change the connection. Saving restarts the app and authenticates with the new settings. Double-click a name, or press Enter on a selected row, to open that person's Teams chat. Opening a chat does not send a message.

Connection settings are stored in %LOCALAPPDATA%\TeamsIO\connection.json. Window preferences, logs, cached authentication, and downloaded updates use TeamsIO-specific locations. The blank appsettings.example.json documents the connection file format; the app uses the setup dialog rather than modifying files in its installation directory.

Build and test

Requires Windows and .NET 8 SDK.

dotnet test TeamsIO.sln
dotnet publish TeamsIO.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true

Compile installer/TeamsIO_setup_script.iss using Inno Setup 6, then run installer/New-UpdatePackage.ps1. The installer has its own application ID and installation directory.

GitHub updates

See the release procedure and security notes before publishing.

The right-click update action checks the latest stable public release in NVZLAB/TeamsIO. Each release must contain TeamsIO_Setup_<version>.exe and update.json generated by the packaging script. The release tag must be v<version> and match the project version and manifest. Release notes come from the GitHub release body. Downloads are checked against the manifest's SHA-256 before the user can launch setup. A repository without releases displays a normal “no release available” message.

The GitHub Actions workflow tests and packages tags matching v*, and creates a draft release for review. Publish the draft when ready for users to receive it.

Technical references: Teams chat deep links and GitHub Releases API.

About

An In/Out Board powered by Teams Status

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages