Companion Skills: Installing timecockpit-agents with APM
Warning
Under construction: The time cockpit MCP server and this documentation are under active development, and breaking changes are possible. Tools may be renamed, changed or removed, and dialog labels and configuration steps may change without notice. Check back for updates before rolling the setup out to your users, and expect to adapt your configuration, skills and prompts after an update.
The public package software-architects/timecockpit-agents on GitHub (github.com/software-architects/timecockpit-agents) belongs to the MCP server. It contains the companion skills that teach an AI agent how to work with time cockpit correctly — from connecting to TCQL to booking patterns — plus three agent definitions and the MCP server declaration. Clients select skills automatically based on their description; you can also address them explicitly ("use the skill timecockpit-tcql").
| Skill | Purpose |
|---|---|
timecockpit-mcp-setup |
Set up the connection (remote/local), choose tenant/sandbox/access/scope, analyze sign-in problems and missing tools — start here |
timecockpit-time-tracking |
Book and correct your own hours (booking patterns) |
timecockpit-reporting |
Totals, budgets, utilization (report recipes) |
timecockpit-tcql |
Ad-hoc queries in TCQL (reference and cookbook) |
timecockpit-model-discovery |
Explore the customer-specific data model (get_entities, describe_entity) |
timecockpit-record-management |
Create, update, delete objects (create_object, update_object, delete_object) — with confirmation handshake |
timecockpit-lists-and-actions |
Discover and execute named lists; model actions are not available over MCP and are run in the time cockpit UI |
Agents (agents/*.agent.md) |
time cockpit Time Assistant, Reporting Analyst, Tenant Admin — not deployed by apm install; use the Claude Code plugin / ChatGPT plugin or copy manually |
Skills are installed per project (repository) and end up in the client folders (.claude/skills/, .agents/skills/), so all clients see the same instructions. The recommended tool is Microsoft APM (Agent Package Manager), which fetches the skills from GitHub, deploys them to the right folders, versions them (apm.lock.yaml) and updates them. Alternatively copy skills/ and agents/ manually.
Install APM
irm https://aka.ms/apm-windows | iex # Windows (PowerShell)
winget install --id Microsoft.APM --exact --source winget # alternative
brew install apm # macOS
curl -sSL https://aka.ms/apm-unix | sh # Linux
python3 -m pip install apm-cli # cross-platform (Python >= 3.10)
apm --version
Initialize the Project: apm init
In the repository root, apm init creates an apm.yml. Interactively it asks for name, version, description, author and the targets — the clients to deploy to (claude, codex, copilot (= VS Code), cursor, agent-skills, …). Without targets, APM later detects them from existing folders (.claude/, .codex/, .vscode/, …).
cd C:\Repos\my-project
apm init
# or without prompts:
apm init --yes --target claude,codex
The interactive run looks like this (values in parentheses are the defaults; targets are pre-selected from detected folders):
Project name (my-project):
Version (1.0.0):
Description (APM project for my-project):
Author (Jane Doe):
Select targets for this project:
[x] 1. claude (.claude/ detected)
[x] 2. codex (.codex/ detected)
[ ] 3. copilot
[ ] 4. cursor
Type a number to toggle, 'all' / 'none', Enter to confirm:
Is this OK? [Y/n] y
✔ Created apm.yml
Resulting apm.yml (targets Claude Code and Codex):
name: my-project
version: 1.0.0
description: APM project for my-project
author: Jane Doe
targets:
- claude
- codex
dependencies:
apm:
- software-architects/timecockpit-agents
mcp: []
includes: auto
scripts: {}
Install the Skills: apm install
The package is installed via Git URL or GitHub short form. APM adds it to apm.yml, fetches it into apm_modules/ (automatically added to .gitignore), deploys the skills into the target folders and writes apm.lock.yaml (commit SHA, file hashes — commit it, do not edit by hand):
apm install https://github.com/software-architects/timecockpit-agents
# equivalent: short form, pin a version, single skill:
apm install software-architects/timecockpit-agents
apm install software-architects/timecockpit-agents#v0.1.7
apm install software-architects/timecockpit-agents/skills/timecockpit-mcp-setup
# without argument: install everything from apm.yml (e.g. after cloning):
apm install
Resolving software-architects/timecockpit-agents ... v0.1.7 (cf12563)
Package type: skill_bundle · 7 skills · 1 MCP server declaration
✔ Installed to apm_modules/software-architects/timecockpit-agents
✔ Deployed 7 skills → .claude/skills/, .agents/skills/
timecockpit-mcp-setup, timecockpit-time-tracking, timecockpit-reporting, timecockpit-tcql,
timecockpit-model-discovery, timecockpit-record-management, timecockpit-lists-and-actions
✔ MCP server 'timecockpit' (https://mcp.timecockpit.com) written to .mcp.json, .codex/config.toml
[i] Skipped MCP config for copilot, cursor (active targets: claude, codex)
✔ Updated apm.yml and apm.lock.yaml · added apm_modules/ to .gitignore
What is written where:
| Content | Target |
|---|---|
Skills (skills/<name>/SKILL.md + references/) |
.claude/skills/<name>/ (target claude), .agents/skills/<name>/ (codex, copilot, cursor, agent-skills) |
MCP server declaration timecockpit (https://mcp.timecockpit.com) |
per target: .mcp.json (Claude Code), .codex/config.toml (Codex, only if .codex/ exists), .vscode/mcp.json (VS Code), .github/mcp.json (Copilot CLI), .cursor/mcp.json (Cursor) |
| Package cache | apm_modules/software-architects/timecockpit-agents/ (gitignored) |
| Lock file | apm.lock.yaml (commit) |
| User-wide instead of per project | apm install -g … → ~/.apm/, skills to ~/.claude/skills/ or ~/.agents/skills/, MCP to ~/.claude.json / ~/.codex/config.toml |
Note
The MCP entry written by APM contains no client ID (and no tenant) — the package cannot know them. After apm install, add the client ID to the respective client configuration (Claude Code, Codex, VS Code), or re-register the server once via CLI with --client-id / --oauth-client-id. Then restart the client so it picks up skills and server.
Update and Remove
apm update --dry-run # shows available new versions
apm update --yes # updates according to apm.yml constraints
apm deps list # installed packages and primitives
apm uninstall software-architects/timecockpit-agents
Without a pin (#v0.1.7) the package follows the default branch and receives updates on the next apm install / apm update. For customer projects, pinning to a release tag is recommended.
Other Installation Routes
- Claude Code plugin marketplace: The repository is also a Claude Code marketplace (
.claude-plugin/marketplace.json). Install with/plugin marketplace add software-architects/timecockpit-agentsand/plugin install. This route also installs the agents. - ChatGPT (Business/Enterprise): A workspace administrator imports the repository as a marketplace (source
https://github.com/software-architects/timecockpit-agents, release tag). The MCP server must be registered once as a custom MCP app in the workspace — see ChatGPT. - Manual: Copy the
skills/andagents/folders into.claude/,.agents/or.github/of your project.