A pomodoro timer that runs inside Vim. It can help you track your tasks in an simple (or stupid) way.
Python Vim script
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Skuld is a pomodoro timer that runs inside Vim. It can help you track your tasks in an simple (or stupid) way.

Skuld Screenshot

Please send pull requests to https://github.com/l04m33/vim-skuld


Skuld depends on +python or +python3, as well as +clientserver. Nothing else is needed.


Vundle is recommended.


After a successful installation, these commands are available:

  • SkuldStartTimer <task_id> : Start the pomodoro timer
  • SkuldStopTimer : Stop the pomodoro timer
  • SkuldStartTask <task_id> : Switch current task. The timer will be started if it's stopped
  • SkuldSwitchTask <task_id> : Switch current task
  • SkuldGetState : Display current timer state
  • SkuldBufOpen : Open the buffer containing the task list ([Skuld Tasks])
  • SkuldTaskUpdate : Update the internal task list according to [Skuld Tasks] buffer

SkuldBufOpen is mapped to <leader>sb by default. You can open a scratch buffer called [Skuld Tasks] using this command, and then write down your tasks in that buffer, one task per line. Whenever you leave insert mode, or leave the [Skuld Tasks] buffer, your tasks will be set automatically. Each task will be assigned an ID. The IDs start from zero.

Once the tasks are set, you can press <cr> on a task to start the timer. You don't need to keep the [Skuld Tasks] buffer open while the timer is running.

When the pomodoro timer times out, there will be a Vim message signifying the change of timer state. You can start working or have a break accordingly. Skuld will append a pomodoro completion symbol, which defaults to *, after the current task, when a working period ends.

If you invoked SkuldStopTimer during a working period, a squash symbol, which defaults to x, will be appended instead.

You can edit [Skuld Tasks] buffer while the timer is running. Edited tasks will be synchronized automatically once you leave insert mode or leave the buffer.


    nnoremap <leader>sb :SkuldBufOpen<cr>
    nnoremap <leader>ss :SkuldGetState<cr>


These variables can be set in you .vimrc to override the defaults:

    " Pomodoro completion symbol
    let g:skuld_progress_symbol = '*'

    " Pomodoro squashed symbol
    let g:skuld_squash_symbol = 'x'

    " Pomodoro working period (in minutes)
    let g:skuld_work_period = 25

    " Pomodoro resting period (in minutes)
    let g:skuld_rest_period = 5

    " Pomodoro long resting period (in minutes)
    let g:skuld_long_rest_period = 15

    " Max working streak before long resting
    let g:skuld_max_work_streak = 4

    " Notification command
    let g:skuld_notify_cmd = 'notify-send'

    " Mapping for opening the task buffer
    let g:skuld_buffer_map = '<leader>sb'

    " Mapping for displaying the current state
    let g:skuld_state_map = '<leader>ss'

    " Default line width for the task buffer
    let g:skuld_line_width = 29


This Vim plugin is licensed under the terms of the MIT license.