Skip to main content

Tenx assessment CLI

Project description

assessment-cli

CLI client for Tenx hiring assessments.

Highlights

  • Uses the Claude Agent SDK for local interactive coding sessions.
  • Appends each REPL turn to .tenx/assessment_turns.jsonl (when a session id is present).
  • tenx-submit uploads pending turns to assessment-proxy, then runs the FRQ phase and saves free-response rows.

Setup

python -m venv .venv
.venv\Scripts\activate
pip install -e ".[dev]"
copy .env.example .env

Set ANTHROPIC_API_KEY in .env before running.

Run

tenx-ai

The CLI starts a 60-minute assessment timer when the process starts. Use /time to display the remaining time.

Set TENX_ASSESSMENT_DURATION_SECONDS in .env to override the timer length.

Or:

python -m assessment_cli

Edit approval mode

Set TENX_EDIT_APPROVAL=true in .env to review proposed Write, Edit, and Bash tool actions before they run.

  • TENX_EDIT_APPROVAL=false (default): similar to Claude Code acceptEdits for file edits.
  • TENX_EDIT_APPROVAL=true: similar to Claude Code default mode for these tools.

Approval keys:

  • y accept
  • n reject
  • d show full diff
  • ? show key help

Compared to Claude Code, this is a focused terminal subset of the same permission model concepts. For full Claude Code mode controls, see the CLI reference.

Submit changes

Run this from your assessment workspace to stage, commit, and push:

tenx-submit

Optional commit message:

tenx-submit --message "Assessment submission"

By default, after a successful push, tenx-submit:

  • Uploads any pending lines from .tenx/assessment_turns.jsonl to the proxy (then clears that file on success).
  • Starts an FRQ phase: generates questions from your most recent commit (HEAD), prompts for answers, and saves rows to assessment-proxy.

For local development, set ENV=local in .env to skip git add / commit / push and go straight to upload + FRQ (workspace must still be a git repository for FRQ context).

Chat history persistence

Set these in .env to enable persistence:

  • ASSESSMENT_PROXY_URL (for example http://localhost:8000)
  • ASSESSMENT_PROXY_TOKEN (must match the proxy’s PROXY_BEARER_SECRET)

When ASSESSMENT_PROXY_URL is unset, there is no session id and no JSONL logging to the proxy. FRQ persistence also requires the URL and token.

With ASSESSMENT_PROXY_URL set, the first tenx-ai run creates a session and writes .tenx/assessment_session_id; later runs reuse it until tenx-submit succeeds (which clears the JSONL upload and that file so the next assessment gets a new session).

Breaking change (Phase 0)

The proxy path and JSON shape changed: see assessment-proxy/README.md.

Security notes for Codespaces

  • Do not store the Supabase secret API key in the CLI.
  • Use only proxy URL and bearer token in CLI env.
  • Treat ASSESSMENT_PROXY_TOKEN as sensitive and rotate if leaked.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tenx_ai-0.1.8.tar.gz (29.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tenx_ai-0.1.8-py3-none-any.whl (34.8 kB view details)

Uploaded Python 3

File details

Details for the file tenx_ai-0.1.8.tar.gz.

File metadata

  • Download URL: tenx_ai-0.1.8.tar.gz
  • Upload date:
  • Size: 29.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for tenx_ai-0.1.8.tar.gz
Algorithm Hash digest
SHA256 4dc6f341458745f8e4a7531d3663b349393d28ce66e4fc07ae369c03e15b1cf9
MD5 5cd1e74626965eab0e713b8772bbc4aa
BLAKE2b-256 71a54dc3df26a6699dc84f354f059e24eb182006cecfbbff96910848cf9564ec

See more details on using hashes here.

File details

Details for the file tenx_ai-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: tenx_ai-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 34.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for tenx_ai-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 029737f9eb13bbf654d96caa394780b88cea8e4980a6e0f76440d2a3abed97d6
MD5 c1aea2ada0c56e44dbfca9753864e8c0
BLAKE2b-256 6b60c3042625fc5c97b7c632126ec6c1e7c4be5dec0e76b6aa33d1048447ef93

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page