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.6.tar.gz (28.8 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.6-py3-none-any.whl (34.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tenx_ai-0.1.6.tar.gz
  • Upload date:
  • Size: 28.8 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.6.tar.gz
Algorithm Hash digest
SHA256 088686fbe4f12cd8ab4c5dbefa71b136ee732862b0cc0739fcead322b96110a5
MD5 a29d226ce7e9c842d0cb0b49f8901a92
BLAKE2b-256 d215e8c3c1ed5515477b1cf1a49ad6089f94481c832483accb8e552d68e806fe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tenx_ai-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 34.4 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 5edab1a1c3d25805b60389de48dc97d23a9df4c2eaf4fa8575d1bab85a2d2a84
MD5 0d598af9a1472b1a001c7e6ec926be54
BLAKE2b-256 c33ecb12a352d6059b82fa9b116346d1efa8ff09b6016131ac9dcec2b125e763

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