ydflowandydflow 178eca705b fix(env): hold env keys to the identifier rule env.sh already assumes (#740)
`generateEnvFile` interpolated the key raw into `export <key>=<quoted value>`.
The value had `shellQuoteValue`; the key had nothing, so a key from the team
repo's env/env.yaml could produce a line that is not valid shell
(`export bad key='x'`) or one that runs code (`export FOO;cmd='x'`), in every
member's shell — env is pushable, so any member who can push can put such a
key in front of everyone else.

`parseEnvFile` already refused to read back any key outside
`[A-Za-z_][A-Za-z0-9_]*`, which made the asymmetry worse: the variable was
written into env.sh and then invisible to the CLI, so nothing reported it as
missing. That regex is now a module-level `ENV_KEY_RE` shared by both sides,
so write and read agree by construction rather than by two copies drifting.

The generator drops a non-matching key instead of failing: one member's bad
key must not take env.sh down for everyone, and the remaining variables are
still correct. `env add` rejects such a key up front with the offending name,
because the local command is where the mistake is still visible — accepting
it there would report success for a variable that never reaches a shell.

Refs #738

Co-authored-by: ydflow <314143294+ydflow@users.noreply.github.com>
2026-09-23 16:27:12 +08:00
…
…

teamai-cli

TeamAI — Make Every Team AI Native

Tencent%2Fteamai-cli | Trendshift

English | 中文 | 日本語 | 한국어 | ไทย

CI npm version npm downloads License: MIT

The shared foundation for how your team works, learns, and improves with AI.

TeamAI turns individual AI capabilities into shared team capabilities — across agents, machines, and team members.

Why TeamAI

Eight everyday scenarios, before and after TeamAI

Quick Start

Send this one line to your AI tool:

Install the teamai skill: https://github.com/Tencent/teamai-cli/tree/main/skills/teamai , load the teamai skill, then set up TeamAI for my team from scratch.

Once TeamAI is set up, just talk to the /teamai skill in your AI tool:

Set up a team from scratch

/teamai Help me set up TeamAI for my team from scratch

Join a team

/teamai Help me join my team's TeamAI, repo URL is https://github.com/your-org/your-repo

Share with the team

Skills, rules, MCP servers, and other agent resources can all be shared:

/teamai Share my xxx skill with the team

Open the dashboard

/teamai Open the TeamAI dashboard
Command-line install

Install

npm install -g teamai-cli

Team admin / solo user

Create a shared-experience repo on your git host (GitHub, GitLab, GitCode, CNB, TGit, or a private Git service), grant write access to team members, then run teamai init https://github.com/your-org/your-repo.

No team repo yet? Start from a template pre-loaded with production-ready skills, rules, and review agents. Browse the teamai-hub org, click Fork, then teamai init against your new repo.

Team members

# Choose one, depending on where you want resources installed

# Project-scope init (default, resources installed under the project directory)
cd /path/to/my-project
teamai init https://github.com/your-org/your-repo

# Or, user-scope init (resources installed under ~/)
teamai init https://github.com/your-org/your-repo --scope user

Once initialized, every AI session automatically pulls the latest skills / rules and other Harness updates published by admins — no manual sync needed.

Learn More

Contributors

Thanks to everyone who has contributed to TeamAI!

Contributors

Made with contrib.rocks.

Contributing

Join the conversation, or open an issue or PR. See CONTRIBUTING.md for how to contribute.

License

MIT

S
Description
GitHub Trending: Tencent/teamai-cli
Readme MIT
25 MiB
Languages
TypeScript 99.7%
Python 0.2%
JavaScript 0.1%