Skip to main content

TKO

Distribuição de tarefas de programação com Git, desenvolvimento na IDE do aluno e análise contínua do processo de aprendizagem.

Tests PyPI version Python Downloads License: MIT Repo Stars

O TKO é um ecossistema de ensino de programação centrado em prática, versionamento e evidências de aprendizagem. Ele distribui atividades via Git, permite desenvolvimento na IDE local e acompanha progresso de turmas com dados reais de evolução.

Visão Geral

O TKO resolve o problema de acoplar ensino de programação a ambientes artificiais de navegador. Em vez disso, o aluno trabalha no próprio fluxo profissional: editor, terminal, compilador e controle de versão.

Para o professor, o sistema viabiliza distribuição de tarefas personalizadas e acompanhamento de execução com sinais de desenvolvimento, como tempo de resolução, histórico de versões e progresso por atividade.

Fluxo rápido:

  1. Professor cria ou publica repositórios de questões.
  2. Aluno baixa a atividade e desenvolve na própria IDE.
  3. Aluno executa os testes localmente e itera com feedback imediato.
  4. Aluno envia para o professor via Git, normalmente por um repositório compartilhado no GitHub.
  5. Professor acompanha evolução, métricas de aprendizado, tentativas e progresso da turma.

Quick Start

Ubuntu / WSL / Codespaces

curl -fsSL https://raw.githubusercontent.com/senapk/tko/main/install.sh | bash
tko --version
tko --help

Saída esperada:

  • O comando tko --version deve mostrar a versão instalada.
  • O comando tko --help deve listar os comandos principais (task, repo, config, run, ...).

No repositório Git do aluno, tko git sync confirma e salva alterações locais, recebe atualizações de origin/main e envia os commits. Em caso de conflito, resolva os arquivos indicados e execute o comando novamente. Para substituir cópias locais pelo remoto, tko git reset-to-remote descarta alterações e commits locais e apaga arquivos não rastreados e ignorados.

Se tko não for encontrado, adicione ~/.local/bin ao PATH e abra um novo terminal:

export PATH="$HOME/.local/bin:$PATH"

Instalações existentes via pipx continuam suportadas:

pipx install tko

Windows

Use o guia recomendado para setup com VS Code, WSL e Ubuntu:

Comandos principais

tko
├── open, review, run, update, uninstall
├── task       show, open, down, check
├── repo       init, list, migrate, profile, source, audit
├── build      task, index, download
├── tests      convert, list, update-outputs
├── git        sync, reset-to-remote
├── collect    repo, tasks, skills
├── config     set, list, reset [cache|settings|languages]
└── tool       timeline, unpack, mdpp, older, diff, rebase, filter, html
# No repositório do aluno
tko task down course@labs/fila
tko task show course/labs/fila
tko task open course/labs/fila

# Dentro da pasta da atividade, o caminho é implícito
tko task show
tko run --language py --side

# Escolher outra atividade explicitamente
tko task open --fzf

# Diretório efetivo para qualquer comando
tko -C caminho/do/repositorio repo migrate --dry-run
tko -C caminho/do/repositorio repo migrate

task show e task open aceitam caminhos existentes. Sem caminho, usam a atividade da pasta atual ou abrem um seletor quando não há atividade atual. task down recebe uma chave, pois a atividade ainda não foi baixada. --fzf/-f abre o seletor; --filter/-F filtra código antes da execução. O idioma da interface usa --ui-language pt|en antes do comando; a linguagem de programação usa --language/-l em init, run e collect skills.

Veja a referência da CLI para parâmetros e exemplos completos.

Para revisar uma pasta com um repositório TKO por aluno, use tko review PASTA. Na interface, n e N alternam entre alunos, mantendo a tarefa selecionada, as quests expandidas e o painel. Com uma tarefa selecionada, m abre a tabela da turma para comparar avaliação, execuções, versões, tempo e último evento de todos os alunos; Enter abre o aluno destacado e e exporta um CSV. As ações normais do TKO continuam disponíveis; o comando não executa reset-to-remote automaticamente. Repositórios que precisem de migração são migrados ao serem abertos na revisão.

Casos de Uso

  • Distribuição de listas e atividades de programação via Git.
  • Desenvolvimento local na IDE do aluno, sem dependência de browser.
  • Correção automática com testes e iteração rápida.
  • Acompanhamento docente com indicadores de progresso e histórico.

Documentação por Perfil

Repositórios de referência:

Instalação

Uso do TKO pelos alunos

Uso pelos professores

Uso pelos desenvolvedores

Ferramentas

Referência e suporte

Atualizando o TKO

Para a instalação recomendada, use:

tko update

Para instalações existentes via pipx, use:

pipx upgrade tko

Contribuição

Contribuições são bem-vindas via pull request.

Fluxo mínimo para validar mudanças localmente:

uv run pytest -q

Se possível, mantenha mudanças pequenas, com descrição clara do problema e da solução no PR.

Licença

Este projeto está sob a licença MIT. Veja LICENSE.

Metadata

Release files for tko 12.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tko 12.5.0
File Size Uploaded
tko-12.5.0.tar.gz 284.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tko 12.5.0
File Interpreter ABI Platform
tko-12.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 648.8 kB

Release files / tko-12.5.0.tar.gz

Download URL tko-12.5.0.tar.gz
Size 284.7 kB
Tags Source
SHA-256 checksum
How to use checksums
8d6b5eeb794c8a8237f0f020d1ce7aa93e0199fdce13720c4e3b43bde2b0e577
BLAKE2b-256 checksum
How to use checksums
f72074d5622bf981955e96f813b388920d4e334567421de3225548fba9882c2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / tko-12.5.0-py3-none-any.whl

Download URL tko-12.5.0-py3-none-any.whl
Size 364.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
970ee3a8bffc7794a34e8575a6445dcb9e03ba6bad22458854e9199c32c312cb
BLAKE2b-256 checksum
How to use checksums
71ce7bd9b2c4f66631526311db963e54ac7b4ff042b5d266d32ce378e9b526b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

12.5.0 This release

2 release files

12.4.3

2 release files

12.3.6

2 release files

12.3.4

2 release files

12.3.3

2 release files

12.3.2

2 release files

12.3.1

2 release files

12.3.0

2 release files

12.2.0

2 release files

12.1.0

2 release files

12.0.9

2 release files

12.0.8

2 release files

12.0.7

2 release files

12.0.6

2 release files

12.0.5

2 release files

12.0.4

2 release files

12.0.3

2 release files

12.0.2

2 release files

12.0.1

2 release files

12.0.0

2 release files

11.0.1

2 release files

10.2.0

2 release files

10.1.0

2 release files

10.0.5

2 release files

10.0.4

2 release files

10.0.3

2 release files

10.0.2

2 release files

10.0.1

2 release files

10.0.0

2 release files

9.22.0

2 release files

9.21.0

2 release files

9.17.9

2 release files

9.17.8

2 release files

9.17.7

2 release files

9.17.6

2 release files

9.17.5

2 release files

9.17.4

2 release files

9.17.3

2 release files

9.17.2

2 release files

9.17.1

2 release files

9.17.0

2 release files

9.16.0

2 release files

9.15.0

2 release files

9.14.8

2 release files

9.14.7

2 release files

9.14.6

2 release files

9.14.5

2 release files

9.14.4

2 release files

9.14.3

2 release files

9.14.2

2 release files

9.14.1

2 release files

9.14.0

2 release files

9.13.5

2 release files

9.13.4

2 release files

9.13.3

2 release files

9.13.2

2 release files

9.13.1

2 release files

9.13.0

2 release files

9.10.1

2 release files

9.10.0

2 release files

9.9.1

2 release files

9.9.0

2 release files

9.8.3

2 release files

9.8.2

2 release files

9.8.1

2 release files

9.8.0

2 release files

9.7.5

2 release files

9.7.4

2 release files

9.7.3

2 release files

9.7.2

2 release files

9.7.1

2 release files

9.6.7

2 release files

9.6.6

2 release files

9.6.5

2 release files

9.6.4

2 release files

9.6.3

2 release files

9.6.2

2 release files

9.6.1

2 release files

9.5.6

2 release files

9.5.5

2 release files

9.5.4

2 release files

9.5.2

2 release files

9.5.1

2 release files

9.5.0

2 release files

9.4.2

2 release files

9.4.1

2 release files

9.4.0

2 release files

9.3.4

2 release files

9.3.3

2 release files

9.3.1

2 release files

9.3.0

2 release files

9.2.3

2 release files

9.2.2

2 release files

9.2.1

2 release files

9.2.0

2 release files

9.1.2

2 release files

9.1.1

2 release files

9.1.0

2 release files

9.0.8

2 release files

9.0.7

2 release files

9.0.5

2 release files

9.0.4

2 release files

9.0.3

1 release file

9.0.2

2 release files

9.0.1

2 release files

9.0.0

2 release files

8.5.3

2 release files

8.5.2

2 release files

8.5.1

2 release files

8.5.0

2 release files

8.4.3

2 release files

8.4.2

2 release files

8.4.1

2 release files

8.4.0

1 release file

8.3.2

2 release files

8.3.1

2 release files

8.3.0

2 release files

8.2.3

2 release files

8.2.2

2 release files

8.2.1

2 release files

8.2.0

2 release files

8.1.0

2 release files

8.0.0

2 release files

7.9.0

2 release files

7.8.1

2 release files

7.7.0

2 release files

7.6.0

2 release files

7.5.1

2 release files

7.5.0

2 release files

7.4.6

2 release files

7.4.5

2 release files

7.4.4

2 release files

7.4.3

2 release files

7.4.2

2 release files

7.4.1

2 release files

7.4.0

2 release files

7.3.2

2 release files

7.3.1

2 release files

7.2.4

2 release files

7.2.3

2 release files

7.2.2

2 release files

7.2.1

2 release files

7.2.0

2 release files

7.1.0

2 release files

7.0.0

2 release files

6.5.1

2 release files

6.5.0

2 release files

6.4.0

2 release files

6.3.3

2 release files

6.3.2

2 release files

6.3.1

2 release files

6.3.0

2 release files

6.2.0

2 release files

6.1.2

2 release files

6.1.1

2 release files

6.1.0

2 release files

6.0.6

2 release files

6.0.5

2 release files

6.0.4

2 release files

6.0.3

2 release files

6.0.2

2 release files

6.0.1

2 release files

6.0.0

2 release files

5.2.14

2 release files

5.2.13

2 release files

5.2.12

2 release files

5.2.11

2 release files

5.2.10

2 release files

5.2.9

2 release files

5.2.8

2 release files

5.2.7

2 release files

5.2.6

2 release files

5.2.5

2 release files

5.2.4

2 release files

5.2.3

2 release files

5.2.2

2 release files

5.2.1

2 release files

5.2.0

2 release files

5.1.5

2 release files

5.1.4

2 release files

5.1.3

2 release files

5.1.2

2 release files

5.1.1

2 release files

5.1.0

2 release files

5.0.14

2 release files

5.0.13

2 release files

5.0.12

2 release files

5.0.11

2 release files

5.0.10

2 release files

5.0.9

2 release files

5.0.8

2 release files

5.0.7

2 release files

5.0.6

2 release files

5.0.5

2 release files

5.0.4

2 release files

5.0.3

2 release files

5.0.2

2 release files

5.0.1

2 release files

5.0.0

2 release files

4.8.1

2 release files

4.8.0

2 release files

4.7.2

2 release files

4.7.1

2 release files

4.7.0

2 release files

4.6.4

2 release files

4.6.3

2 release files

4.6.2

2 release files

4.6.1

2 release files

4.6.0

2 release files

4.5.0

2 release files

4.4.0

2 release files

4.3.0

2 release files

4.2.0

2 release files

4.1.5

2 release files

4.1.4

2 release files

4.1.3

2 release files

4.1.2

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.9.6

2 release files

3.9.5

2 release files

3.9.4

2 release files

3.9.3

2 release files

3.9.2

2 release files

3.9.1

2 release files

3.9.0

2 release files

3.8.1

2 release files

3.8.0

2 release files

3.7.1

2 release files

3.7.0

2 release files

3.6.5

2 release files

3.6.4

2 release files

3.6.3

2 release files

3.6.2

2 release files

3.6.1

2 release files

3.6.0

2 release files

3.5.6

2 release files

3.5.5

2 release files

3.5.4

2 release files

3.5.3

2 release files

3.5.2

2 release files

3.5.1

2 release files

3.5.0

2 release files

3.4.1

2 release files

3.4.0

2 release files

3.3.1

2 release files

3.3.0

2 release files

3.2.0

2 release files

3.1.3

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.9.0

2 release files

2.8.6

2 release files

2.8.5

2 release files

2.8.4

2 release files

2.8.3

2 release files

2.8.2

2 release files

2.8.1

2 release files

2.8.0

2 release files

2.7.1

2 release files

2.7.0

2 release files

2.6.8

2 release files

2.6.7

2 release files

2.6.6

2 release files

2.6.5

2 release files

2.6.4

2 release files

2.6.3

2 release files

2.6.2

2 release files

2.5.1

2 release files

2.5.0

2 release files

2.4.3

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.5

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.9.3

2 release files

1.9.2

2 release files

1.9.1

2 release files

1.9.0

2 release files

1.8.6

2 release files

1.8.5

2 release files

1.8.4

2 release files

1.8.3

2 release files

1.8.2

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.3

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.0

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.32.1

2 release files

0.32.0

2 release files

0.31.0

2 release files

0.30.0

2 release files

0.29.0

2 release files

0.28.0

2 release files

0.27.0

2 release files

0.26.0

2 release files

0.25.1

2 release files

0.25.0

2 release files

0.24.5

2 release files

0.24.4

2 release files

0.24.3

2 release files

0.23.4

2 release files

0.23.2

2 release files

0.23.1

2 release files

0.23.0

2 release files

0.22.7

2 release files

0.22.5

2 release files

0.22.4

2 release files

0.22.3

2 release files

0.22.1

2 release files

0.22.0

2 release files

0.21.4

2 release files

0.21.3

2 release files

0.21.1

2 release files

0.21.0

2 release files

0.20.8

2 release files

0.20.7

2 release files

0.20.6

2 release files

0.20.5

2 release files

0.20.4

2 release files

0.20.3

2 release files

0.20.2

2 release files

0.20.1

2 release files

0.20.0

2 release files

0.19.6

2 release files

0.19.5

2 release files

0.19.4

2 release files

0.19.3

2 release files

0.19.2

2 release files

0.19.1

2 release files

0.19.0

2 release files

0.18.9

2 release files

0.18.8

2 release files

0.18.6

2 release files

0.18.5

2 release files

0.18.4

2 release files

0.18.3

2 release files

0.18.2

2 release files

0.18.1

2 release files

0.18.0

2 release files

0.17.9

2 release files

0.17.8

2 release files

0.17.7

2 release files

0.17.6

2 release files

0.17.5

2 release files

0.17.4

2 release files

0.17.2

2 release files

0.17.1

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.7

2 release files

0.14.3

2 release files

0.14.2

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.6

2 release files

0.13.5

2 release files

0.13.4

2 release files

0.13.3

2 release files

0.13.2

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.9

2 release files

0.12.7

2 release files

0.12.6

2 release files

0.12.5

2 release files

0.12.4

2 release files

0.12.3

2 release files

0.12.2

2 release files

0.12.1

2 release files

0.12.0

2 release files

0.11.9

2 release files

0.11.8

2 release files

0.11.7

2 release files

0.11.6

2 release files

0.11.5

2 release files

0.11.4

2 release files

0.11.3

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.9

2 release files

0.10.8

2 release files

0.10.7

2 release files

0.10.6

2 release files

0.10.4

2 release files

0.10.3

2 release files

0.10.2

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.7

2 release files

0.8.6

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.13

2 release files

0.6.12

2 release files

0.6.11

2 release files

0.6.10

2 release files

0.6.9

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page