teams-cli 0.1.0__py3-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
@@ -0,0 +1,108 @@
1
+ Metadata-Version: 2.4
2
+ Name: teams-cli
3
+ Version: 0.1.0
4
+ Classifier: Programming Language :: Rust
5
+ Classifier: Programming Language :: Python :: Implementation :: CPython
6
+ License-File: LICENSE
7
+ Summary: A Microsoft Teams CLI and TUI designed equally for humans and agents
8
+ Home-Page: https://github.com/rvben/teams-cli
9
+ License-Expression: MIT
10
+ Requires-Python: >=3.8
11
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
12
+ Project-URL: Changelog, https://github.com/rvben/teams-cli/blob/main/CHANGELOG.md
13
+ Project-URL: Homepage, https://github.com/rvben/teams-cli
14
+ Project-URL: Issues, https://github.com/rvben/teams-cli/issues
15
+ Project-URL: Repository, https://github.com/rvben/teams-cli
16
+
17
+ # teams-cli
18
+
19
+ Microsoft Teams from your terminal—human-first and agent-first.
20
+
21
+ `teams-cli` is a Rust CLI and TUI for everyday Microsoft Teams work through supported Microsoft Graph APIs. It is designed as two equally first-class experiences over one typed core: a fast, calm terminal interface for people and a deterministic, introspectable command contract for agents. It signs in as you with delegated OAuth, protects refresh credentials in your operating system's credential store, emits readable terminal output on a TTY, and defaults to structured JSON when piped.
22
+
23
+ For humans, no arguments open guided onboarding on first use and the TUI afterward. For agents, no command ever waits for an undeclared prompt: `teams schema` works offline, collection sizes are caller-bounded, writes declare their effects, errors have stable kinds and exit codes, and stdout contains data only.
24
+
25
+ ## Install
26
+
27
+ ```console
28
+ pipx install teams-cli
29
+ # or
30
+ cargo install teams-cli --locked
31
+ ```
32
+
33
+ The PyPI distribution is named `teams-cli`; the executable is `teams`, matching the `jira-cli` → `jira` and `confluence-cli` → `confluence` family.
34
+
35
+ To work from source:
36
+
37
+ ```console
38
+ cargo install --path .
39
+ # or build a local wheel
40
+ maturin build
41
+ ```
42
+
43
+ ## Explore before configuring Microsoft 365
44
+
45
+ ```console
46
+ teams tui --demo
47
+ teams tui --demo --snapshot
48
+ teams capabilities
49
+ teams schema --command "messages send"
50
+ ```
51
+
52
+ ## Onboarding
53
+
54
+ Run `teams` in a terminal on first use, or start explicitly:
55
+
56
+ ```console
57
+ teams init
58
+ ```
59
+
60
+ You need a Microsoft Entra public-client application:
61
+
62
+ 1. In [Microsoft Entra app registrations](https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade), register an app for organizational accounts.
63
+ 2. Under **Authentication**, add the **Mobile and desktop applications** redirect URI `http://localhost` and enable public client flows.
64
+ 3. Under **API permissions**, add these delegated Microsoft Graph permissions (plus the standard OpenID scopes requested at sign-in):
65
+
66
+ ```text
67
+ openid profile offline_access User.Read Team.ReadBasic.All
68
+ Channel.ReadBasic.All Chat.Read Chat.Create ChatMessage.Send
69
+ ChannelMessage.Send ChannelMessage.Read.All
70
+ ```
71
+
72
+ Reading channel messages requires the administrator-consented `ChannelMessage.Read.All` permission. If the tenant has not granted it, Microsoft may require an administrator during sign-in. The CLI surfaces missing consent as a stable `permission_denied` error instead of silently reaching for undocumented Teams APIs.
73
+
74
+ Headless setup is explicit and never prompts:
75
+
76
+ ```console
77
+ teams init --client-id "$TEAMS_CLIENT_ID" --tenant organizations --no-login
78
+ teams auth login --device-code
79
+ teams whoami --output json
80
+ ```
81
+
82
+ For short-lived automation, `TEAMS_ACCESS_TOKEN` overrides the stored credential. Refresh credentials are never written to the config file.
83
+
84
+ ## Everyday commands
85
+
86
+ ```console
87
+ teams list
88
+ teams channels list TEAM_ID
89
+ teams chats list --limit 25
90
+ teams messages list --chat CHAT_ID
91
+ teams messages send --chat CHAT_ID --body "On it."
92
+ printf 'Status update' | teams messages send --chat CHAT_ID --body -
93
+ teams doctor
94
+ ```
95
+
96
+ Collection commands expose `--limit` and `--fields`; Graph-native collections use `--cursor`, while joined teams and channels use `--offset` because those endpoints do not accept `$top`. With a terminal they render concise text; when stdout is piped they emit JSON envelopes with continuation metadata and `truncated`.
97
+
98
+ ## Boundaries
99
+
100
+ - Microsoft 365 work or school accounts only. The relevant Teams Graph endpoints do not support personal Microsoft accounts.
101
+ - Calling and screen sharing are not available as a delegated user CLI; Graph calling is built around bot/application scenarios.
102
+ - No extracted desktop tokens, browser interception, or private Teams protocols.
103
+ - Tenant policy and admin consent can restrict delegated capabilities.
104
+
105
+ ## CLI Spec
106
+
107
+ `teams schema` is offline, unauthenticated, and follows [CLI Spec v0.3](https://clispec.dev/): flat invocable command paths, declared effects and cardinality, bounded collections, stable error kinds and exit codes, stdout/stderr separation, and safe noninteractive behavior.
108
+
@@ -0,0 +1,6 @@
1
+ teams_cli-0.1.0.data/scripts/teams.exe,sha256=KplANIK-936TIbDN32dkkkdOHERvu3MyWhcnwuDUd3U,6637056
2
+ teams_cli-0.1.0.dist-info/METADATA,sha256=oXtug2OY1q-ZHzGhuTLsU5HzJ4lkUDqqU_F7pHTloDQ,4917
3
+ teams_cli-0.1.0.dist-info/WHEEL,sha256=2zDlIYIdD4m4N3p5DVEG3iJhGLdhsBQgdH-FqVkAur8,94
4
+ teams_cli-0.1.0.dist-info/licenses/LICENSE,sha256=Y9qje5a7V5nnkOtDGwQkQsUzz2xZ0XKpvuHCKC0CS84,1100
5
+ teams_cli-0.1.0.dist-info/sboms/teams-cli.cyclonedx.json,sha256=UWu8lCaH05RVE5GR-mD7j4WATZ8R1tfIOmz7LzQAPI8,345297
6
+ teams_cli-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: maturin (1.14.1)
3
+ Root-Is-Purelib: false
4
+ Tag: py3-none-win_amd64
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 teams-cli contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.